软件缺陷和软件缺陷种类

5.1. 软件缺陷的定义
软件缺陷,常常又被叫做Bug,从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。

格蕾丝·赫柏(Grace Murray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。而代表电脑程序出错的“bug” 这名字,正是由赫柏所取的。1947年9月9日,赫柏对Harvard Mark II设置好17000个继电器进行编程后,技术人员正在进行整机运行时,它突然停止了工作。于是他们爬上去找原因,发现这台巨大的计算机内部一组继电器的触点之间有一只飞蛾,这显然是由于飞蛾受光和热的吸引,飞到了触点上,然后被高电压击死。所以在 告中,赫柏用胶条贴上飞蛾,并把“bug”来表示“一个在电脑程序里的错误”,“Bug”这个说法一直沿用到今天。
5.2. 软件缺陷的种类划分
按照软件缺陷的产生原因,可以将其划分为不同的缺陷类别:
  1、功能不正常
  简单地说就是所应提供的功能,在使用上并不符合产品设计规格说明书中规定的要求,或是根本无法使用。这个错误常常会发生在测试过程的初期和中期,有许多在设计规格说明书中规定的功能无法运行,或是运行结果达不到预期设计。最明显的例子就是在用户接口上所提供的选项及动作,使用者操作后毫无反应。

2、软件在使用上感觉不方便

只要是不知如何使用或难以使用的软件,在产品设计上一定是出了问题。所谓好用的软件,就是使用上尽量方便,使用户易于操作。如微软推出的软件,在用户接口及使用操作上确实是下了一番功夫。有许多软件公司推出的软件产品,在彼此的接口上完全不同,这样其实只会增加使用者的学习难度,另一方面也凸显了这些软件公司的集成能力不足。

3、软件的结构未做良好规划

这里主要指软件是以自顶向下方式开发,还是以自底向上方式开发。如果是以自顶向下的结构或方法开发的软件,在功能的规划及组织上比较完整,相反以自底向上的组合式方法开发处的软件则功能较为分散,容易出现缺陷。

4、提供的功能不充分

这个问题与功能不正常不同,这里指的是软件提供的功能在运作上正常,但对于使用者而言却不完整。即使软件的功能运作结果符合设计规格的要求,系统测试人员在测试结果的判断上,也必须从使用者的角度进行思考,这就是所谓的“从用户体验出发”。

6、使用性能不佳

被测软件功能正常,但使用性能不佳,这也是一个问题。此类缺陷通常是由于开发人员采用了错误的解决方案,或使用了不恰当的算法导致的,在实际测试中有很多缺陷都是因为采用了错误的解决方法,需要加以注意!

7、为做好错误处理

软件除了避免出错之外,还要做好错误处理,许多软件之所以会产生错误,就是因为程序本身对于错误和异常处理的缺失。例如被测软件读取外部的信息文件并已做了一些分类整理,但刚好所读取的外部信息文件内容已被损毁。当程序读取这个损毁的信息文件时,程序发现问题,此时操作系统不知该如何处理这个情况,为保护系统自身只好中断程序。由此可见设立错误和异常处理机制的重要性!

8、边界错误

缓冲区溢出问题在这几年已成为 络攻击的常用方式,而这个缺陷就属于边界错误的一种。简单来说,程序本身无法处理超越边界所导致的错误。而这个问题,除了编程语言所提供的函数有问题之外,很多情况下是由于开发人员在声明变量或使用边界范围时不小心引起的。
9、计算错误

只要是计算机程序,就必定包括数学计算。软件之所以会出现计算错误,大部分出错的原因是由于采用了错误的数学运算工时或未将累加器初始化为0.

10、使用一段时间所产生的错误

这类问题是程序开始运行正常,但运行一段时间后却出现了故障。最典型的例子就是数据库的查找功能。某些软件在刚开始使用时,所提供的信息查找功能运作良好,但在使用一段时间后发现,进行信息查找所需的时间越来越长。经分析查明,程序采用的信息查找方式是顺序查找,随着数据库信息的增加,查找时间自然会变长。这就需要改变解决方案了!

11、控制流程的错误

控制流程的好坏,在于开发人员对软件开发的态度及程序设计是否严谨。软件在状态间的转变是否合理,要依据业务流程进行控制。例如,用软件安装程序解释这类问题最方便直观。用户在进行软件安装时,输入用户名和一些信息后,软件就直接进行了安装,未提示用户变更安装路径、目的地等。这就是软件控制流程不完整导致的错误问题。

12、在大数据量压力下所产生的错误

程序在处于大数据量状态下运行出现问题,就属于这类软件错误。大数据量压力测试对于Server级的软件是必须进行的一项测试,因为服务器级的软件对稳定性的要求远比其它软件要高。通常连续的大数据量压力测试是必须实施的,如让程序处理超过10万笔数据信息,再来观察程序运行的结果。

13、在不同硬件环境下产生的错误

这类问题的产生与硬件环境的不同相关。如果软件与硬件设备有直接关系,这样的问题就是数量相当多。例如有些软件在特殊品牌的服务器上运行就会出错,这是由于不同的Server内部硬件了不同的处理机制。

14、版本控制不良导致的错误

出现这样的问题属于项目管理的疏忽,当然测试人员未能尽忠职守也是原因之一。例如一个软件被反映有安全上的漏洞,后来软件公司也很快将修复版本提供给用户。但在一年后他们推出新版本时,却忘记将这个已解决的bug-fix加入到新版本中。所以对用户来说,原本的问题已经解决了,但想不到新版本升级之后,问题又出现了。这就是由于版本控制问题,导致不同基线的merge出现误差,使得产品质量也出现了偏差。

15、软件文档的错误

最后这类缺陷是软件文档错误。这里所提及的错误,除了软件所附带的使用手册、说明文档及其它相关的软件文档内容错误之外,还包括软件使用接口上的错误文字和错误用语、产品需求设计PD、UI Spec等的错误。错误的软件文档内容除了降低产品质量外,最主要的问题是会误导用户!
5.3. 软件缺陷的属性
1.1.14. 按照严重程度分:

一般分为5个等级:
系统崩溃,严重,一般,次要,建议

1.1.15. 按优先级分:
修正优先级:高,中,低

1.1.16. Bug定级示例

6. 测试用例执行和故障管理流程图

软件缺陷和软件缺陷种类

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月20日
下一篇 2020年10月20日

相关推荐