8 软件测试学习体会

软件测试在整个软件周期中的重要性,它存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个项目的走向,成败与否全在于开始阶段的决策。

体会一:软件测试的真正意义在于发现错误,而不在于验证软件是正确的。

再严密的测试也不能完全发现软件当中所有的错误,但是测试还是能发现大部分的错误,能确保软件基本是可用的,所以在后续使用的过程中还需要加强快速响应的环节。结合软件测试的理论,故障暴露在最终客户端之前及时主动的去发现并解决。这一点就需要加强研发队伍的建设。

体会二:在系统性能测试方面需要重视。

经过这次培训中多个案例的讲解,让我了解到系统在上线之后会有很多不能预知的性能问题,需要在上线之前实现进行模拟,以规避风险,包括大数据量访问,高并发数等等。

当然也有很多应对手段,没有哪种手段可称为最完美,只有最合适的,需要灵活掌握,综合运用以达到最优程度,这是个很值得研究的领域。

在设计有效测试用例之前,测试工程师必需理解软件测试的基本原则,包括:

1 、所有的测试都应追溯到用户需求。正如我们所知:软件测试的目标在于揭示错误。而最严重的错误(从用户角度来看)是那些导致程序无法满足需求的错误。   
2 、应该在测试工作真正开始前的较长时间内就进行测试计划。测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始。因此,所有测试应该在任何代码被产生前就进行计划和设计。   
3 、 Pareto 原则应用于软件测试。简单地讲, Pareto 原则暗示着测试发现的错误中的 80 %很可能起源于程序模块中的 20 %。当然,问题在于如何孤立这些有疑点的模块并进行彻底的测试。   
4 、测试应从 " 小规模 " 开始,逐步转向 " 大规模 " 。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。 
5、为了达到最佳效果,应该由独立的第三方来构造测试。 " 最佳效果 " 指最有可能发现错误的测试(测试的主要目标),所以创建系统的软件工程师并不是构造软件测试的最佳人选。  
6、 不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现.。

还有就是关于软件测试的分类:从是否需要执行被测软件的角度,可分为:  -静态测试  -动态测试  
从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为 :  -白盒测试  -黑盒测试

关于静态测试和动态测试

(1)静态测试是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。  其中包括代码测试、界面测试和文档测试3个方面。对于代码测试,主要测试代码是否符合相应的标准和规范。对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。对于文档测试,主要测试用户手册和需求说明是否符合用户的实际要求。  (2)动态测试是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以,我们判断一个测试属于动态还是静态测试 ,唯一的标准就是看是否运行程序。    关于黑盒测试和白盒测试 : (1)黑盒测试  指的是把被测软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子,只关心软件的输入数据和输出结果。  黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误: • 是否有不正确或遗漏了的功能?   • 在接口上,输入能否正确地接受? 能否输出正确的结果?  • 是否有数据结构错误或外部信息(例如数据文件)访问错误?  •性能上是否能够满足要求?  • 是否有初始化或终止性错误?    用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。 但这是不可能的。  黑盒测试的测试用例设计 •等价划分法 •边界值法 •错误推测法 •因果图法 (2)白盒测试    指的是把盒子盖打开,去研究里面的源代码和程序结构。

(2)白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。 使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。

白盒测试的主要方法:

•逻辑驱动测试

•基本路径测试

主要用于软件验证。    使用程序设计的控制结构导出测试用例。   逻辑驱动测试:  主要是测试覆盖率,以程序内在逻辑结构为基础的测试。

包括以下6种类型:  •语句覆盖  •判断覆盖  •条件覆盖  •判定-条件覆盖  •条件组合覆盖  •路径覆盖

白盒测试的主要目的  • 保证一个模块中的所有独立路径至少被执行一次;  •对所有的逻辑值均需要测试真、假两个分支;  •在上下边界及可操作范围内运行所有循环; •检查内部数据结构以确保其有效性   测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right);第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。  经过这一门课程的学习和老师的给我们的讲座,意识到测试并非是我想像的从客户角度任意使用软件产品,从而发现有无质量问题,它有它的理论和实践体系。

时间: 2024-11-10 07:26:50

8 软件测试学习体会的相关文章

SEO艺术——使用高级搜索 学习体会

前言: 在这个信息大爆炸的时代,网上的信息鱼龙混杂,有的时候我们费尽体力脑力也得不到自己想要的结果.在这个环境下,学习一个高级的搜索技术是一个现代人越来越需要掌握的一门技术和方法.于是,自己利用自己的业余时间,学习SEO的艺术,学会使用高级搜索技巧的同时,也学习影响网站搜索排名的重要因素和提高网站搜索排名的重要方法. 这是一门非常有用的技术,对于一个即将走向IT行业岗位的人来说,学习SEO技术可以大大提高自己对IT这个行业的认识和理解.借来了SEO的艺术这本书,进行初步的学习,现在整理一下高级搜

入职体验--linux学习体会

本是计划先写一系列关于入职前学习的基础的东西,不过,入职一个多月,感悟比较深刻,还是先穿插一篇新入职的体会吧. 入职体验--linux学习 新入职以来,由于公司的产品算是起步阶段,很多东西还不成型,很多东西都需要调研,要命的是,天天看各种官网.全英文的官网.这对于我来说,是一个小小的挑战和进步,百度惯了的人,面对看不懂的英文官网,真的需要勇气呢.除此之外,体会最深的就是linux的基本功了. 经过长达半个月的各种调查,我还是没有得到公司想要的东西,这点让我感到比较受挫,也认识到自己上升与进步的空

飞机大战c语言编程学习体会

#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <time.h>#define N 35void print(int [][N]);//输出函数void movebul(int [][N]);//子弹移动函数void movepla(int [][N]);//敌机移动函数void setting(void);//设置函数void menu(void);//菜单函数int scr[

写测试感悟,获取软件测试学习视频资料

大家好,我是TT,互联网测试行业多年,没有牛逼的背景,也没有什么可炫耀的,唯独比他人更努力,在职场打拼.遇到过的坑,走过的弯路,愿意与大家分享,分享自己的经验,少走弯路.首发于个人公众号[测试架构师] 原文如下: 今天重新系统的整理了一些学习资料,电子书,视频教程等!以活动参与方式发放. 活动规则: 从个人角度,简单聊聊软件测试,自己对软件测试的思考.通过文章底部的评论区留言(微信公众号测试架构师),活动结束将发送给点赞最高的前10名读者.   获取方式有两种: 1.文章底部评论区留言方式,点赞

(转).net开发者对android第二周的学习体会

这一周相对没有春节时这么闲了,白天也比较多的工作要做,每天晚上又要被我三岁的女儿折腾到十点, 实在没有多少时间学习.在前一周的基础上,这周我试着自己练习写了一个个人管理的android的程序,主要实现万年历,日程,随手便贴,短信群发等一些功能.下面总结一下自己在其过程中的一些心得和体会,都是一些没技术含量的活,我只写下自己的思路,不贴具体的代码了.苦于周围没有人可交流,大部分功能都是自己闭门造车或参考网上的资料实现,也不知道是否合理,望高手能加以指正. 1.   页面布局技巧 页面布局是andr

(转).net开发者对android开发一周的学习体会

春节期间,相对比较闲,上班时也没什么事情做.利用这一周的时间,简单的学习了一下移动方面的开发.主要是针对android,其实我对IOS更感兴趣 (因为我用iphone),苦于暂时没有苹果电脑,只能把它放到以后学习.我的工作中暂时没有用到移动方面的开发,自己以前也一直做.net方面的应用.在这里以一个.net开发人员的思维记一下对android开发学习中的一点自己的心得和体会.初学者的胡言乱语,高手请一笑而过. 开发环境搭建 先下载JDK安装.对于android的SDK和eclipse,可以直接到

C++学习体会--引用方式复制类对象

C++学习体会--引用方式复制类对象 引用的重要性实际体现在函数的形参和函数的返回值.一般引用也只是出现在这两个地方. 引用方式的好处,如果是体现在形参,在使用函数的时候,实参必定会初始化形参,如果不加引用,系统会创建实参的副本将值传递给形参,这样会造成资源额外的占用.为了节省资源的占用,通过一种引用的方式,达到这个效果,因为引用知识将实参的地址给了形参,处理形参,如同处理实参. 下面将给出程序使用的例子:引用的重要性体现在形参上 #include <iostream> using names

2019我要学软测:软件测试学习路线

软件测试好学么?软件测试学习路线如下: 你要具备软件测试常识.软件测试行业就像一个围城,很多围城外的人想要进来,一没有高人指点,领你进去:二没有人借梯子给你让你走进去.所以说,如果你是跨专业或者是换职业来做软件测试工程师,是难度非常大的! 所以作为小白,如何入行?那么这个就是我们今天要做的. 第一步:具备软件测试常识. 1)什么是软件测试 2)软件测试的分类 3)软件测试常用的一些用例设计方法 4)如何做需求分析 5)如何写软件测试用例 6)什么是bug&bug的管理工具 7)软件测试计划&

软件测试最全的视频源码,最新软件测试学习路线图分享

随着越来越多的企业关注软件质量,软件测试人员重要性进一步凸显,但精英人才却高薪难觅.权威报告显示,中国软件测试人才缺口高达30多万,并且仍在以每年20%的速度增加. 分析软件测试人才紧缺的原因,还在于国内高校教育和企业培养都还没有跟上.很多人想要学习软件测试却不得其法,接下来千锋小编就给大家分享最新最全软件测试学习路线,帮助大家快速入行软件测试. 第一阶段 为软件测试环境配置与管理,你需要熟练掌握在物理机.虚拟机.容器下的快速部署测试环境的方法,完成SVN文件配置服务器搭建.LAMP环境搭建配置