Evaluate the Effectiveness of Test Suite Prioritization Techniques Using APFD Metric
使用APFD度量评估测试集优先级技术的有效性
背景
随着软件的发展,测试用例的大小往往会增加,这使得执行整个测试用例的成本太高.为了降低回归测试的成本,要对测试用例进行优先级划分。
什么是APFD?
Average Percentage of Fault Detected,平均故障检测率
APFD测量测试用例中检测到的故障百分比的加权平均值。APFD值的范围从0到100,数字越高故障检测率就越快。即越大越好
APFD原理
定义:
T: 测试用例集
T1,T2: 是对T进行某种排序后得到的测试用例集
m: 测试用例中包含的与预期结果相反的(错误的)测试用例数量
n: 测试用例总数和
TFi: 测试用例集中,错误的测试用例所对应的下标
APFD公式为
APFD
=
1
−
TF
1
+
T
F
2
+
⋯
+
T
F
m
n
m
+
1
2
n
\text { APFD }=1-\frac{\text { TF } 1+\mathrm{TF} 2+\cdots+\mathrm{TFm}}{\mathrm{nm}}+\frac{1}{2 \mathrm{n}}
APFD =1−nm TF 1+TF2+⋯+TFm+2n1
例子说明
假设一次实验中:
m (number of faults) = 19
n (number of test cases) = 97T1: TC-001, TC-002, TC-003 …………TC-081, TC-082, TC-101, TC-102, TC-103 …… TC-115
T2:TC-001, TC-002, TC-113, TC114, TC-003----TC-023, TC-026, TC-025, TC-024, TC-102—TC-107, TC-028,TC-029, TC-027, TC-101, TC-108----TC-112, TC-030----TC-045, TC-055, TC-056, TC-058, TC-057, TC-046----TC-054, TC-059----TC-082, TC-115
(TC-xxx是某个具体的测试用例,Tx指的是对测试用例的某种排序,)
Test Cases which contain faults are as:
TC-026, TC-029, TC-030, TC- 055, TC-058, TC-101, TC-102, TC-103, TC-104, TC-105, TC-106, TC-107,TC-108, TC-109, TC-110, TC-111, TC-112, TC-113, TC-114
(这里是发现了错误的测试用例,共有19个即n=19
将T1带入公式,计算APFD得:
KaTeX parse error: \cr valid only within a tabular/array environmentA P F D = 1 – 0.924 + 0.005 A P F D = 1.005 – 0.92 APFD = 1 – 0.924 + 0.005\\ APFD = 1.005 – 0.92\\ APFD=1–0.924+0.005APFD=1.005–0.92
(解释: 这里的分子代表着Tfx,就是测试用例中,错误的测试用例出现的位置,比如错误用例中,第一个是TC-026,它在T1中位置是第26个,因此分子的第一个数是26)
将T2带入公式,计算APFD得:
26 + 36 + 44 + 60 + 62 + 38 + 29 + 30 + 31 + 32 + 33 + 34 + APFD = 1 − 39 + 40 + 41 + 42 + 43 + 3 + 4 19 × 97 + 1 2 × 97 \begin{aligned} 26+36+44+60+62+38+\\29+ 30+31+32+33+34+\\ \text { APFD }=1-\frac{39+40+41+42+43+3+4}{19 \times 97} &+\frac{1}{2 \times 97} \\ \end{aligned} 26+36+44+60+62+38+29+30+31+32+33+34+ APFD =1−19×9739+40+41+42+43+3+4+2×971APFD = 1 − 667 1843 + 1 194 APFD = 1 − 0.361 + 0.005 APFD = 1.005 − 0.361 APFD = 0.64 \text { APFD }=1-\frac{667}{1843}+\frac{1}{194} \\ \text { APFD }=1-0.361+0.005 \\ \text { APFD }=1.005-0.361 \\ \text { APFD }=0.64 APFD =1−1843667+1941 APFD =1−0.361+0.005 APFD =1.005−0.361 APFD =0.64
(解释: 同上,错误用例中,第一个是TC-026,它在T2中位置是第26个,因此分子的第一个数是26,第二个是TC-29,在T2中位置是36,因此第二个数的36)