首页 » 软件开发 » 全程软件测试(四十四):基于缺陷分析的产品质量评估—读书笔记(测试缺陷评估软件程序)

全程软件测试(四十四):基于缺陷分析的产品质量评估—读书笔记(测试缺陷评估软件程序)

雨夜梧桐 2024-07-25 04:29:24 0

扫一扫用手机浏览

文章目录 [+]

软件评估首先是建立基准,为软件产品的质量、软件测试评估设置起点,在这个基准上再设置测试的目标,作为系统评估是否通过的标准。

缺陷评测的基准是对某一类或某一组结果的一种度量,此结果可能是常见的或典型的,例如,千行源代码(KLOC)是程序规模的一个基准,每1000行代码有3个错误是测试中错误发现率的基准。
基准对期望值的管理有很大助益,目标就是相对基准而存在的,如表1所示。

表1 某个软件项目基准和目标

全程软件测试(四十四):基于缺陷分析的产品质量评估—读书笔记(测试缺陷评估软件程序) 软件开发
(图片来自网络侵删)

基于缺陷分析的产品质量评估方法包括经典的种子公式、基于缺陷清除率的估算方法、软件产品性能评估、借助工具的方法。

经典的种子公式

米尔斯(Mills)研究出通过已知缺陷(称为种子 bug)来估计程序中潜在的、未知的缺陷数量。
其基本前提是将测试队伍分为两个小组,一个小组事先将己知的共S个种子 bug 安插在程序里,然后,让另一个测试小组尽可能发现程序的bug,若发现了s个种子bug,则认为存在以下等式。

则可推出程序的总bug数为

N=S×n/s

其中n是进行实际测试时所发现的bug数,若n=N说明所有的bug都已被找出来,同时也说明测试做得足够充分。
可使用一个信心指数来表示测试是否充分,采用百分比形式,值越大,说明对产品质量的信心越高,最大值为1。

上述方法的可操作性不强,因为种子bug很难具有完全的代表性,根据相似系统确定的bug其结果可能差别很大。
另外,人为设置程序的bug比较困难,需要将正确的程序改为错误的程序,修改过程中会引发其他的问题,即插入1个缺陷可能会引发2~3个缺陷,而且缺陷相互之间可能存在影响或关联关系,虽然事先设定插入20个种子bug,但结果可能是在程序中插入了20多个种子bug。
因此,按照上述公式进行计算会导致结果不准确。

基于缺陷清除率的估算方法

在进行本文内容讲解之前先引入几个变量。
F 是描述软件规模用的功能点数,D1是在软件开发过程中(发布之前)发现的所有缺陷数,D2是软件发布后发现的缺陷数,D是发现的总缺陷数,由此可推出,D=D1+D2。

针对一个应用软件项目,有一些计算方程式(从不同的角度估算软件的质量),具体如下所示。

质量=D2/F

缺陷注入率=D/F

整体缺陷清除率=D1/D

假设有100个功能点,即F=100;而在开发过程中发现了20个错误,即D1=20;提交后又发现了3个错误,即D2=3。
因此D=D1+D2=23。

质量(每功能点的缺陷数)=D2/F=3/100=0.03(3%)

缺陷注入率=D/F=20/100=0.20(20%)

整体缺陷清除率=D1/D=20/23=0.8696(86.96%)

有统计资料显示,美国的平均整体缺陷清除率目前只达到大约85%。
一些具有良好的管理和流程的著名软件公司,如IBM、惠普等,其主流软件产品的整体缺陷清除率可达到98%以上。

由软件测试清除软件缺陷的经验可知,清除软件缺陷的难易程度在各个阶段是不同的。
源自需求报告、规格说明、设计及错误修改的缺陷是最难清除的,如表2所示。

表2 不同缺陷源的清除效率

表3反映的是软件能力成熟度模型(Capability Maturity Model,CMM)5个等级如何影响软件质量,其数据来源于美国空军1994年委托 SPR(美国一家著名的调查公司)进行的一项研究。
从表中可以看出,CMM级别越高,缺陷清除率也越高。

表3 SEI CMM级别潜在缺陷与清除

软件产品性能评估

软件产品性能评估技术性要求相对比较强,使用此方法的基础是获取与性能表现相关的数据,如响应时间、数据吞吐量、数据流速率、操作可靠性等。
性能评估一般与测试同时进行,或是在执行测试时记录、保存各种数据,然后在评估活动中计算结果。

软件产品性能评估有以下几种途径。

动态监测:在测试执行过程中,实时获取并显示正在监测指标的状态数据,通常以柱状图或曲线图的形式提供实时显示,监测或评估性能测试执行情况。

响应时间/吞吐量:测试对象在特定条件下某个需要测量的特性的相关性能行为,用响应时间或吞吐量来进行量化评测。
这些报告通常用曲线图、统计图来表示。

百分比报告:对已收集数据的百分比评测和计算。

比较报告:比较不同性能测试的结果,以评估测试执行过程中所做的变更对性能行为的影响,从而进一步分析不同测试执行情况的多个数据集之间的差异或趋势。

追踪报告:当性能行为可以接受时或性能监测表明存在可能的瓶颈时,追踪报告可能是最有价值的报告。
追踪和配置文件报告显示低级信息,该信息包括主角与测试对象之间的消息、执行流、数据访问以及函数和系统调用等。

借助工具的方法

若软件测试评估人员不借助专门的软件工具进行数据输入任务和相应的评估活动,软件测试评估工作的进行将会非常困难,至少会导致这项工作变得繁重。
许多自动化测试工具可根据测试运行时所经历的程序路径来计算测试的覆盖率,程序能识别被测试过的程序路径、逻辑路径或输入条件,而整个程序的相应值也能确定。
例如,借助软件测试工具来获得测试的覆盖率,需要了解的覆盖率包括程序语句行的覆盖率,程序分支、条件的覆盖率,程序路径的覆盖率等。

使用Rational PureCoverage工具可自动查找出代码中未经测试的代码,保证代码测试覆盖率,还可针对每次测试生成全面的覆盖率报告,可归并程序多次运行所生成的覆盖数据,并自动比较测试结果,以评估测试进度。
当然,还可以使用Rational的其他一些工具,列举如下。

(1)TestManager:复审和评估基于需求的测试覆盖。

(2)TestFactory:评估测试覆盖,包括评估脚本和基于代码的测试覆盖。

(3)LogViewer:评估测试的执行情况。

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0