4、测试覆盖程度评估:
● 位置无关调用覆盖率(Location-independent call coverage,LICC)
LICC = (已覆盖的不重复的函数调用个数 / 全部不重复的函数调用个数) * 100%
● 位置相关调用覆盖率(Location-dependent call coverage,LDCC)
LDCC = (已覆盖的函数调用个数 / 全部函数调用个数) * 100%
案例:
void Func(int i) { call1(); if(i==2)call2(); else if((i==3)call3(); else call1(); } |
调用Func(2)和Func(3)后我们对Func()的覆盖评估如下:
LICC:3/3 = 100% LDCC:3/4 = 75% |
5、测试设计程度评估:
测试设计程度也称用例覆盖度(Test Case Coverage,TCC),以被测函数在正式测试中使用频度与其函数定义中分支总数之间关系作为依据,定义如下:
TCC = 用例中调用被测函数的总次数 / 函数定义的分支总数
其中,某函数的分支总数的定义如下:函数分支总数 = 1 + if语句总数 * 2 + while语句总数 * 2 + for语句总数 * 2 ,if语句有TRUE与FALS两个分支,原理上说应该设计两次测试才是完整的,while与for也类似,循环至少进入一次应设计一个用例,一次都不进入也应设计一个用例,所以计算出if、while与for语句总数后要乘以2,但如果一个函数没使用这3个控制语句,也应至少设计一个用例测试它,这是上面公式额外加上1的含义。
三、白盒测试推行
前提条件
● 思想上的统一
质量部门及项目责任人足够重视,将单元测试输出列为与代码输出同等重要地位。
● 完备的流程支撑
主要指设计文档的完备性,比如《详细设计说明书》,因为《详细设计说明书》是白盒测试的重要依据。
● 推行方法
1)选择相对重要复杂的模块
2)选择进度相对不紧张的项目
3)白盒测试人员一般为开发人员
● 测试工具的选择
四、 白盒测试实践
1、业界测试工具介绍
1)CodeTest
2)RTRT(Rational Test RealTime)
3)VcTester
4)CppUnit/CUnit
5)Cantata++
6)C++Test
测试工具详细介绍参见《常用嵌入式软件白盒测试工具介绍》
2、测试工具VcTester使用实践
1)VcTester简单介绍(测试原理)
2)测试环境搭建
3)脚本体系
4)被测元素的访问(类型、变量、函数)
5)测试元素构造(参数、桩、测试框架)
6)测试执行(在线测试)
7)覆盖评估(代码覆盖、测试覆盖)
8)代码编辑、编译、调试
9)测试报告
以上详细介绍可访问VcTester官方网站
相关阅读: