发明名称 | 一种轻量级的代码分支覆盖率检测方法 | ||
摘要 | 本发明是一种轻量级的代码分支覆盖率检测方法,属于软件测试领域。本方法统计被测代码的分支总数N,在被测函数的入口插入代码,定义数组branch[N/K+1],K为机器字长;在每个分支i插入代码branch[i/K]|=1<<(i%K);在被测函数的出口插入代码,输出数组branch的值;输入测试用例集合,执行测试代码,在测试完成后,统计数组branch中所有元素对应二进制位中1的个数n,获得代码分支覆盖率为n/N。本发明使用1个比特位即可记录1个分支的执行情况,数据量被大幅度的压缩,减少了内存资源的占用,仅在测试程序运行完毕后一次性输出记录结果,大幅度提高测试的执行速度,减少测试的数据量。 | ||
申请公布号 | CN106294163A | 申请公布日期 | 2017.01.04 |
申请号 | CN201610664607.9 | 申请日期 | 2016.08.12 |
申请人 | 北京航空航天大学 | 发明人 | 李超;史晓华;王斐 |
分类号 | G06F11/36(2006.01)I | 主分类号 | G06F11/36(2006.01)I |
代理机构 | 北京永创新实专利事务所 11121 | 代理人 | 祗志洁 |
主权项 | 一种轻量级的代码分支覆盖率检测方法,其特征在于,实现步骤如下:步骤1,输入被测函数的代码,统计被测代码的分支总数N,并对各分支进行编号0,1,…,N‑1;步骤2,在被测函数的入口插入代码,定义数组branch[N/K+1],并设置数组中的元素均为0;K表示机器字长;步骤3,对于每个分支i,插入代码:branch[i/K]|=1<<(i%K),i=0,1,…,N‑1;其中,branch是整型数组;|是按位或运算符,a|=b表示将变量a和b按位或运算后的结果赋值给变量a;<<是左移位运算符,c<<d的结果是将变量c对应的二进制位向左移动d位,右边空缺部分补0;步骤4,在被测函数的出口插入代码,输出数组branch[N/K+1]的值;步骤5,输入测试用例集合,执行测试代码,在测试完成后,统计数组branch[N/K+1]中所有元素对应的二进制位为1的个数n,获得代码分支覆盖率为n/N。 | ||
地址 | 100191 北京市海淀区学院路37号 |