"VcTester是一款专为Visual C++(VC)开发环境设计的白盒测试工具,适用于VC6、VC7、VC8、VC9等多个版本。它能够在被测程序中植入CSE脚本解释器,使得测试脚本能够直接控制变量读写和函数调用,从而进行深入的代码测试。"
VcTester的技术架构主要分为以下几个方面:
1. **调测代理**:在被测程序内部嵌入一个带有CSE脚本解释器的代理,这个代理负责将程序中的变量和函数映射到脚本系统,使得测试人员可以通过编写调测脚本来直接操纵这些元素。
2. **在线调试与测试**:用户可以在操作终端编写和执行调测脚本,实现对被测程序的在线调试和测试。
3. **覆盖率统计**:通过插装技术,VcTester可以跟踪代码执行情况,统计代码覆盖率,帮助评估测试完整性。
4. **代码分析**:VcTester能够分析VC的符号文件,提取相关信息,用于辅助代码编辑、测试设计以及自动生成测试脚本。同时,它还具备源码语法分析功能,能识别代码风险,评估代码复杂度,并生成API文档。
5. **自动化测试**:支持表格驱动方式的封装,实现ActionWord与数据驱动的自动化测试,提高测试效率。
VcTester提供了两种操作终端:一是内嵌于被测程序的控制台终端,二是集成开发环境(CseWin.exe)的GUI终端,两者通过共享内存与被测程序通信。
在应用场景上,VcTester主要用于C/C++工程的测试,尤其适用于那些能在VC环境下正常编译和运行的项目。对于无法在Windows平台或VC环境下运行的代码,建议先进行移植,确保其能在VC下编译并通过,即使某些非测试关注的函数缺失,也可以通过"/force"编译指令来生成被测程序。
VcTester不仅支持单元测试,还涵盖了集成测试、API接口测试、协议测试等多种源代码可见的软件测试阶段。此外,还有正在研发的VcAuto工具,它将扩展VcTester的在线测试和持续测试能力,进一步支持数据驱动和ActionWord测试策略。