7.1.4 测试用例集排序的评测指标

更新于 2026年10月10日 版权声明
7.1.4 测试用例集排序的评测指标

在进行测试用例优先级排序时,最理想的情况是选择将故障检测率作为优化的目标,这样才可以优先运行能检测出故障的测试用例,但是由于实际的故障是未知的,故障检测率是没有办法在测试之前得到的,因此在实际的测试中,测试人员往往根据软件开发可能产生的影响以及实际测试的需求进行综合考虑来选取优化目标和设置适应度函数。

测试用例优先级排序的优化目标有很多,首先,为了快速检查出错误,Rotheme指出可以用测试用例和软件缺陷之间的关系进行量化,提出了缺陷检测平均百分比(Average Percentage of Fault Detection,APFD)的评价指标[6]。在对一个排序序列进行评价时,APFD指标的意义是在软件测试时可以得到检测到全部缺陷的平均累计比例。Elbaum等人对APFD进行了公式化,假设测试用例集T共有N个测试用例,被测程序中存在M个缺陷,TF i代表首次发现第i个缺陷的测试用例在该序列中所在的位置,则APFD的计算公式[1]为

图示

APFD的取值范围是0~100%,越大的APFD表示缺陷检测的速率越快。

但是测试人员未经测试无法知道测试用例的缺陷检测信息,而在实际工作中,测试人员要求在设计测试用例序列时对测试用例序列检测错误的能力有一定的判断,因此李征等人在APFD的基础上提出了模块检测平均百分比(Average Percentage of Block Coverage,APBC)、语句检测平均百分比(Average Percentage of Decision Coverage,APDC)和判定检测平均百分比(Average Percentage of Statement Coverage,APSC)等系列指标,可以判定序列对测试程序不同指标的覆盖速率,APBC、APDC和APSC等指标分别代表块覆盖率、语句覆盖率、判定覆盖率等不同覆盖率信息来量化目标[7]。这些指标的计算公式与APFD相似,以APSC为例,其计算公式为

图示

其中,TS i表示首次检测到语句i的测试用例在执行序列中的位置。(https://www.daowen.com)

在黑盒测试中,测试人员要求遵循软件规格说明的规则来设计测试用例。一般情况下,会根据一些特定的分析方法,将软件需求转化为测试需求,进而分解为测试点,因此就有针对测试点覆盖的评价指标——测试点检测平均百分比(Average Percentage of Test-point Coverage,APTC),其公式为

图示

其中,TT i表示首次检测到测试点i的测试用例在执行序列中的位置。

考虑到每个测试用例的成本不同,再引入另一种根据测试成本设计的指标测试用例序列的有效执行时间(Effective Execution Time,EET),它表示测试用例序列首次达到最大语句覆盖率时所执行的测试用例消耗的时间,其定义为

图示

其中,N′表示首次达到最大语句覆盖率时所执行的测试用例的数量,ET i表示执行第i个测试用例需要消耗的时间。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)