代码覆盖率分析
上一篇 / 下一篇 2007-04-24 11:01:28 / 个人分类:Testing
代码覆盖率分析Code Coverage Analysis
o;x/Q u{u'W6e051Testing软件测试网/FG[A~)\!T p Ay8g\1. 语句覆盖 Statement Coverage,SC51Testing软件测试网:Zv8h`(n
语句覆盖是指通过选择足够的测试用例,使得运行这些测试用例时,被测程序的每个语句至少被执行一次。51Testing软件测试网Uo6aYOO
"K5IIM
L02. 判定覆盖 Decision Coverage,DC
2^E/iy1Jc0 是指通过足够的测试用例,使得程序中的每一个判定至少都获得一次“真值”和“假值”的机会,或者说使得程序中的每一个分支都至少通过一次。51Testing软件测试网-A cPY:[%x0Z
1gr(mX$mj[$wk J03. 条件覆盖 Condition Coverage,CC51Testing软件测试网^6Ve;c)i;R
对于每个判定中所包含的若干个条件,应设计足够多的测试用例,使得判定中的每个条件都至少取到一次“真值”和“假值”的机会,也就是说判定中的每个条件的所有可能结果至少出现一次。51Testing软件测试网G2P4| N!wX!D
4. 判定/条件覆盖 Decision/Condition Coverage,CDC51Testing软件测试网-}a9W Q"[c"GAv
通过设计足够多的测试用例,使得运行这些测试用例时,判定中的每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次。51Testing软件测试网h9B:k@
EI,~)^(CU
5. 条件组合覆盖 Multiple Condition Coverage,MCC51Testing软件测试网&}%y*q7w,U^l~7DB
通过设计足够多的测试用例,使得运行这些测试用例时,每个判定中条件结果的所有可能组合至少出现一次。
6. 修正的判定/条件覆盖 Modified Decision/Condition Coverage,MCDC51Testing软件测试网*a[5ky\w#h2i_8lt
这个覆盖度量标准需要足够的测试用例来确定各个条件能够影响到包含的判定的结果。它要求满足两个条件:a.每一个程序模块的入口和出口都要考虑至少被调用一次,每个程序的判定到所有可能的结果至少转换一次;b.程序的判定被分解为通过逻辑操作符连接的布尔条件,每个条件对于判定的结果值是独立的。
S$zq3|t8z+LBAq A07. 路径覆盖 Path Coverage,PC51Testing软件测试网Dv*`!Xn]l5T9ueN7Y
通过设计足够多的测试用例,使得运行这些测试用例时,程序的每条可能执行到的路径都至少被经过一次(如果程序中有环路,则要求每条环路至少经过一次)。51Testing软件测试网Vj%s
exR~
$T#UvxWGz#yY0
^/qf&i!OCOed] t0其它的覆盖度量标准:
R] W:H!S{$B051Testing软件测试网:OW N`&b| u1. 函数覆盖 Function Coverage
$F%__S:GF02. 调用覆盖 Call Coverage
4j,btnS0Dls03. 线性代码顺序及跳转覆盖 Linear Code Sequence and Jump Coverage
^1UBI7Q6l5z&P04. 数据流覆盖 Data Flow Coverage51Testing软件测试网Hq,G3t\ Gc~$o
5. 目标代码分支覆盖 Object Code Branch Coverage
zbj5X7x,dm06. 循环覆盖 Loop Coverage51Testing软件测试网-}nUt4P
J^a2J
7. 竞争覆盖 Race Coverage51Testing软件测试网8L(g2|Y$]0[
n
8. 关系操作符覆盖 Relational Operator Coverage51Testing软件测试网-Fa&_0S+WZ~I
9. 若变化覆盖 Weak Mutation Coverage