单 元 测 试
步 骤 对 比 |
|
手工方式,假设使用某个开源UT框架xUnit |
使用VU |
工作方式 |
框架负责测试组织与结果显示,测试代码与框架联编成一个可执行文件。 |
VU根据VU工程的配置解析代码,自动生成测试工程,测试工程只执行测试,其他由VU处理。 |
工程 |
建立一个基于xUnit的测试工程 |
VU工程的配置(如果从产品工程文件或makefile文件导入数据,以下设置通常会自动完成) |
测试目标 |
把被测文件加入工程,编译 |
在测试目标页,把被测文件设为T |
头文件 |
一般会提示头文件找不到,设置头文件搜索目录 |
在头文件页,设定常规头文件搜索目录 |
编译条件 |
如果产品项目使用了编译条件,会产生大量编译错误,设置相同的编译条件 |
编译页,设定预编译条件 |
引入库 |
编译通过,产生大量的链接错误,查看产品项目所链接的库,链接相应的库 |
在头文件页,设定库头文件目录
,对于个别位于常规头文件目录下的库头文件,需设为L,在链接页加入要链接的库 |
外围文件 |
由于相关源文件未加入,仍有大量链接错误,将相关源文件加入编译 |
在测试目标页,把相关文件设为N |
隔离文件 |
相关源文件又有相关源文件,无法隔断,其他链接错误用桩来解决,编写大量的桩 |
在测试目标页,其他文件设为X(缺省),自动打桩 |
工程建立完成,编译链接通过后,开始测试。VU在生成测试工程的过程中,已经自动为后续的测试做好了大量准备工作。 |
驱动 |
手工为每个类每个函数编写测试驱动 |
自动生成驱动 |
虚基类 |
虚基类无法实例化,难以测试,想办法解决 |
自动解决 |
私有成员 |
私有函数无法测试,私有成员无法访问,想办法解决 |
自动解决 |
用例 |
建立用例 |
在数据表格中建立用例 |
失真 |
打桩造成失真,大量测试难以进行,想办法解决 |
点几下鼠标就可以在表格中直接设置底层输入 |
不可控 |
因底层不可控(如访问硬件、网络),更多测试难以进行,想办法解决 |
同上 |
程序行为 |
期待:要是每个用例能看到执行了哪些代码,产生了什么输出... |
自动显示 |
白盒覆盖 |
期待:要是能看到哪些语句、条件、分支、路径已覆盖,哪些未覆盖... |
自动统计并显示,自动绘制逻辑结构图 |
白盒用例 |
期待:覆盖率到后面很难提高,要是有工具解决这个问题... |
用例设计器基于现有用例找出遗漏用例 |