软件缺陷

缺陷定义


现在我们习惯性的统称bug,但软件测试使用各种术语描述软件出现的问题,通用的术语如下:

软件错误(software error)

软件缺陷(software defect)

软件故障(software fault)

软件失效(software failure)

区分这些术语很重要,它关系测试工程师对软件失效现象与机理的理解程度。

软件失效机理可描述为:软件错误 -> 软件缺陷 -> 软件故障 -> 软件失效


软件错误:在软件生存期内不希望或不可接受的人为错误,一种外部行为。强调由人为引起的错误。

软件缺陷:是存在于软件(文档,数据,程序)之中那些不希望或不可接受的偏差,如少一逗点,多一语句等。

其结果是软件运行在某一特定条件下出现故障,这时软件缺陷被激活。

软件故障:软件运行过程中出现不希望或不可接受的内部状态,如软件执行一个多余循环,软件故障是一种动态行为。

软件失效:是软件运行时产生的不希望或不可接受的外部行为。

软件错误是一种人为错误,一个错误会产生一个或多个软件缺陷,当缺陷被激活时,便产生软件故障,同一个软件缺陷

在不同的条件下被激活,可能产生不同的故障。软件故障如果被容错处理,便导致软件失效。


以下5种情况都可认为是软件出现缺陷:

1,软件未达到产品说明书中标明的功能

2,软件出现了产品说明中指明的不会出现的错误

3,软件功能超出了产品说明书指定的范围

4,软件未达到产品说明书虽示指出但应达的目标(隐藏的)

5,软件测试人员认为软件难以理解,不易使用,运行慢,或最终用户认为不好使用。


缺陷分布


实践表明,大多数软件缺陷产生的原因并非来自编程错误,主要来自于需求阶段和设计阶段没。

软件缺陷来源分布为 需求占56%,设计占27%,代码占7%,其他(沟通,环境,管理等)占10%。


缺陷严重性与优先级



给软件缺陷与错误划分严重性和优先级的通用原则:

1,严重性

1)严重:系统崩溃,数据丢失,数据毁坏

2)较严重:操作性错误,错误结果,功能遗漏

3)一般:小问题,错别字,UI布局,罕见故障

4)建议:不影响使用的瑕疵或更好的实现


2,优先级

1)高:立即修复,停止下一步测试

2)次高:在产品发布之前必须修复

3)中:如果时间充许应该修复

4)低:可能会修复,不影响发布


软件测试只能证明软件存在错误,而不能证明软件没有错误。软件公司对软件项目的期望都是在预计的时间

,合理的预算下,提交一个可交付的产品,虽然软件的目的是为了发现软件中存在错误,但最终是为了提交软件质量。

所以对项目组而言,就是要把软件错误控制在一个可以产品交付(发布)的程度,可以交付的产品并不是

没有错误的产品。因此对软件错误划分严重和优先级就显得非常重要了。


国内普遍存在的一个现象是,针对某些软件问题,测试人员与开发人员往往意见不一致,而项目经理大多数情况下都很“忙”,

没有时间管理这些问题,这也是发布后,测试人员有时背黑锅埋下伏笔。

归根到底是没有从公司级或部门级定义好严重性与优先级的参考标准。而另一个普遍问题是即使有标准也不执行或执行不到位。


该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友

 

 

粤ICP备19116230号
友情链接: 码农藏书阁 天天链