linux白盒测试流程(3)

发表于:2015-03-25来源:uml.org.cn作者:不详点击数: 标签:linux
现在分析下测试用例的成功率。这里用check作为搜索的关键字。这个关键字是在gdb脚本中自己定义的。 $grep - r check calnumber . res check number == 8 $1 = 1 check su

  现在分析下测试用例的成功率。这里用check作为搜索的关键字。这个关键字是在gdb脚本中自己定义的。

$grep -r "check" calnumber.res
"check number == 8" $1 = 1
"check sum == 0" $2 = 1
"check quit == 0" $5 = 1
"check i == 5" $6 = 1
"check sum == 10" $7 = 1
"check i == 9" $8 = 1
"check sum == 36" $9 = 1
"check quit == 1" $10 = 1

$grep -r "check" calnumber.res | cut -f2
$1 = 1
$2 = 1
$5 = 1
$6 = 1
$7 = 1
$8 = 1
$9 = 1
$10 = 1

  说明用例的10个比较均是正确的,成功率为100%。

  2.用gcov得到代码覆盖率。

  上一步结束后,在当前目前下会产生两个文件:calnumber.gcda和calnumber.gcno。 这里不关注它们。

  直接执行gcov calnumber.c 得到

  $gcov calnumber.c

  File `calnumber.c'

  Lines executed:100.00% of 14

  calnumber.c:creating `calnumber.c.gcov'

  说明覆盖率文件已经产生了,我们看下calnumber.c.gcov文件:

  $cat calnumber.c.gcov

-: 0:Source:calnumber.c
-: 0:Graph:calnumber.gcno
-: 0:Data:calnumber.gcda
-: 0:Runs:2
-: 0:Programs:1
-: 1:#include <stdio.h>
-: 2:
-: 3:int main()
function main called 2 returned 100% blocks executed 100%
2: 4:{
2: 5: int i,sum,number;
2: 6: int quit;
2: 7: number = 8;
2: 8: sum = 0;
16: 9: for(i = 0; i <= number; i++)
-: 10: {
14: 11: sum += i;
-: 12: }
-: 13:
2: 14: if(sum != 36)
-: 15: {
1: 16: quit = 0;
1: 17: printf("sum = %d\n", sum);
-: 18: } else
-: 19: {
1: 20: quit = 1;
1: 21: printf("sum is 36\n");
-: 22: }
-: 23:
2: 24: if(quit) printf("Finish!\n");
-: 25:
2: 26:

原文转自:http://www.uml.org.cn/Test/2009021210.asp