2.2 组网与系统架构

  VcTester只支持与VC编译工具(包括VC6、VC7与VC8)配套使用,它使用CSE集成界面编写用例、调试用例。如图1,IDE与被测系统是两个独立的EXE程序,动态运行时两者是以共享内存通信方式连接的两个进程。被测系统中驻留一个代理模块,该模块接受用户界面(CseWin.exe)的操作指令,并完成相关测试。

图1:VcTester组网图

  在一次测试中我们关注被测单元的特性,被测单元作为整体,它在特定环境下运行(比如某些全局变量取特定值、某些依赖的线程或任务已启动等)、具有特定的输入输出,并且,被测单元若能正确运行,还依赖它调用的子函数提供正常功能。我们将一项测试依赖的上述内容分成3类:测试驱动、被测单元与测试桩,如图2:

图2:测试分层结构

  被测单元UUT(Unit Under Test)是测试对象,测试中我们尽量维持原状以保证测试可信度,测试驱动(包括构造测试环境及启动测试)与测试桩是我们要用CSE脚本模拟。

  2.3 组合应用

  VcTester支持外部工具嵌到它的IDE中使用,比如VC的Build与BuildAll命令可集成进来,外部命令的运行信息能截获到IDE的打印输出区,用户还可以为外部命令指定快捷热键。这一机制大大方便了VcTester与其它测试工具配合使用,常见的集成应用有:

  1)将VSS或CVS版本机的Checkin、CheckOut集成到VcTester的IDE平台

  2)与ANT自动构建工具集成

  3)集成pclint工具

  4)集成源码行统计工具

  VcTester在覆盖测试方面具有独特优势,我们建议VcTester与如下商用工具组合使用,形成优势互补,测试效果会更好:

  1)使用CodeTest进行性能测试

  2)使用Purify或BoundCheck进行内存越界或内存泄漏检查

  3)使用Logiscope的Audit评估代码可维护性与复杂度,使用RuleChecker检查编码规则

  4)与商用ASN.1工具(如OSS的编解码工具,RedPacket的OneDecoder、OneViewer等调测工具)配合使用,实现基于消息收发的通信协议测试。