软件缺陷
1.1、软件测试的目的
(1)确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明——在某种意义上与ISO9001是同一种思想。
(2)确保产品满足性能和效率的要求。
(3)确保产品是健壮的和适应用户环境的。
1.2导致软件缺陷的原因
Ø可以从软件自身特点、团队工作和项目管理等多个方面进行分析,找出导致软件缺陷的一些原因,这可以归纳为如下3个方面。
(1)软件开发过程自身的特点造成的问题
需求不清晰;系统结构非常复杂;系统运行环境的复杂
(2)团队工作的问题
不同阶段的开发人员相互理解不一致;项目组成员技术水平参差不齐
(3)软件项目管理的问题
缺乏质量文化,不重视质量计划;开发周期短
1.3 软件缺陷到底是什么
Ø(测试执行阶段的问题)
–Defect---------Requirements&Design
–Error-----------Development
–Bug------------Testing
–Failure---------Postproduction
–用于描述软件故障、软件失败的术语有很多,比如说,缺点(defect)、偏差(variance)、谬误(fault)、 失败(failure)、问题(problem)、矛盾(inconsistency)、错误(error)、毛病(incident)、异常(anomaly)、缺陷(bug)等等。
Ø广义上来说,缺陷定义:
–软件或程序或其相关的文档 的运行结果与用户需求不一致的地方。
–一般来说,判定依据是用户需求规格说明书。
Ø软件缺陷的定义:
(1)软件未达到产品说明书中已经标明的功能;
(2)软件出现了产品说明书中指明不会出现的错误;
(3)软件未达到产品说明书中虽未指出但应当达到的目标;
(4)软件功能超出了产品说明书中指明的范围;
(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。
1.4 缺陷案例
Ø比如说,日常使用的计算机的产品需求规格说明书一般描述如下:–计算器通过用户输入要计算的数字,能准确地完成加、减、乘、除的数学运算,并在显示屏上准确显示计算的结果。–在任何时候计算机都不会出现显示错误结果的情况,不会出现“死机”无响应的情况,不会出现崩溃无法恢复的情况。
–假设,测试员发现,按要求输入了两个数字1和2,并且按下了“+”键,要求进行加法数学运算,但是,最终计算器并没有在显示屏上显示结果,又或者是计算器在显示屏上显示的是错误的结果,比如显示结果是4,而不是正确结果3。那么,根据第1条规则,这就是一个软件缺陷。
–假设,测试员对计算器的键盘随意敲击(猴子测试),发现计算器“死机”了,对任何操作都无响应,那么,根据第2条规则,这就是一个软件缺陷。
–假设,测试员发现,计算器在电池电力不足的情况下,会丢失运算处理后显示的结果,那么,根据第3条规则,这就是一个软件缺陷。
–假设,测试员发现,计算机除了能够进行加、减、乘、除的数学运算,还能够进行sin、cos等科学运算,虽然,运算处理的结果是正确的,但是,根据第4条规则,这就是一个软件缺陷。因为,很可能这个计算器就是为小学的学生开发的,而加入这样的科学运算会造成小学生学习混乱。
–假设,测试员和最终的用户都认为,计算器的按键太小了、按键间距太密了、按键上的数字和运算符号显示不清晰,那么,根据第5条规则,这些都算是一个软件缺陷。

