如果把calnumber.gdb中第二个用例删掉,我们再来看看结果。
$./flow.sh calnumber Generate VER file successfully! Generate RPT file successfully! $cat calnumber.ver --------------------------------------- Test Results Summary Total Number of Comparisons : 5 Total Number of Comparisons Failed : 0 Total Number of Comparisons Passed : 5 Total Number of Test Cases Included : 1 Percentage of Comparisons Passed : 1 --------------------------------------- $cat calnumber.rpt File `calnumber.c' Lines executed:85.71% of 14 calnumber.c:creating `calnumber.c.gcov' -: 0:Source:calnumber.c -: 0:Graph:calnumber.gcno -: 0:Data:calnumber.gcda -: 0:Runs:1 -: 0:Programs:1 -: 1:#include <stdio.h> -: 2: -: 3:int main() function main called 1 returned 100% blocks executed 82% 1: 4:{ 1: 5: int i,sum,number; 1: 6: int quit; 1: 7: number = 8; 1: 8: sum = 0; 6: 9: for(i = 0; i <= number; i++) -: 10: { 5: 11: sum += i; -: 12: } -: 13: 1: 14: if(sum != 36) -: 15: { 1: 16: quit = 0; 1: 17: printf("sum = %d\n", sum); -: 18: } else -: 19: { #####: 20: quit = 1; #####: 21: printf("sum is 36\n"); -: 22: } -: 23: 1: 24: if(quit) printf("Finish!\n"); -: 25: 1: 26: return 0; -: 27:} |
显然没有第二个用例,代码的20-21行就没有覆盖到,覆盖率只有85.71% 所以测试用例的多少和好坏直接影响程序的覆盖率。gcov的用法可以参见man,网上也有很多资料,我就不多说了。
以上就是linux白盒测试流程,希望对大家有帮助。