领测科技专注于复杂软件的C/C++产品测试领域,我们自行研发的测试工具包括:Visual Code Smith(VcSmith)、Visual Code Tester(VcTester)、Visual Code Automatic(VcAuto),这些工具都与Visual C/C++开发环境配套使用,在编码、单元测试、集成测试、接口测试、自动化测试与市场问题诊断等各个阶段使用。这3款软件属于同一系列产品,其中,VcSmith与VcAuto是共享软件,可自由获取、免费使用。
理解本技术体系的途径
首先了解本系列工具适用的业务领域,然后查阅软件增强需求(Software Enhancement Proposal,SEPs),SEP是本公司研发团队与外界进行信息互交的重要途径,SEP文档既描述即将开发的软件特性,以便征求用户反馈意见,也公开许多用户关心的,与研发过程相关信息,如:产品架构、应用场景、使用建议、可用性与易用性注意事项等。
如果想深入理解本系统产品遵循的测试理念,测试方法,单元测试、集成测试、自动化测试的推行方法、经验总结等,不妨查阅我司几位专家的技术博客。与常规个人博客不同,我们的技术博客更注重严谨性、完整性与实用性,另外,我们还尽避免SEP已描述的内容在博客中重复出现。
本技术体系还依赖CSE脚本提供的语言映射能力,详情请参考CSE语言官方网站。
产品架构

在被测程序中驻留一个带CSE脚本解释器的调测代理,然后将被测系统中的变量或函数映射到脚本系统,使调测脚本可以直接控制变量读写与函数调用。被测程序启动后与用户操作终端建立连接,操作终端可以实现:
- 编写调测脚本,实施在线调试或测试
- 对被测代码进行插装,实现覆盖率统计
- 分析VC符号文件,提取相关信息用于辅助代码编辑、辅助测试设计、测试脚本自动生成
- 对源码进行语法分析,识别代码风险、评估代码复杂度、生成API说明书
- 提供表格驱动方式封装,实现基于ActionWord与数据驱动的自动化测试
VcSmith/VcTester/VcAuto提供3类操作终端选择:内嵌于被测程序的控制台终端,提供集成IDE环境的GUI操作终端,基于表格驱动的Excel表格终端。其中,GUI终端与表格终端以共享内存方式与被测程序建立通信连接。

操作终端还可以借助“远程通信代理”拉远,使用Telnet超级终端进行远程问题诊断。

核心技术
本技术体系涉及如下核心技术:
- 基于智能推导的语法分析技术
- 测试覆盖率插装技术
- 通用脚本引擎技术
- 语言映射与语言仿真技术
- 测试脚本自动生成技术
- 支持调试操作自动生成脚本的检视器技术
- 代码复杂度评估与代码风险检测技术
- 基于测试重用与表格驱动的高效自动化测试技术
- 基于ActionWord关键字驱动与基于ADB数据驱动的自动化用例设计技术
- 安全可控的远程诊断技术
本技术体系以“在线语言映射技术”为基础,融合其它技术,在各研发阶段延伸调测功能,它与以“离线语言映射体系”为基础的扁平语言技术体系一起,构成高效、强大、具有良好发展前景的一系列研发辅助工具。参见SEP 104:在线与离线语言映射技术简述。
 第4代白盒测试方法
第4代白盒测试方法(4GWM,The 4th Generation White-box-testing Methodology),是我们在长期实践中,尤其是积累了十余年通信行业白盒测试工具开发与推广实施经验的基础上,所提出的一套久经市场考验的测试方法论。
第4代白盒方法的3个关键领域与9项关键特征如下:
- 第一关键域:在线测试
- 在线测试驱动
- 在线脚本桩
- 在线测试用例设计、运行,及评估改进
- 第二关键域:灰盒调测
- 基于调用接口
- 调试即测试
- 集编码、调试、测试于一体
- 第三关键域:持续测试
- 测试设计先行
- 持续保障信心
- 构测试设计
第4代白盒测试方法(4GWM)针对前几代测试方法不足提出,许多理念仍继承第2代与第3代测试方法。下表简要的列出第1代到第4代白盒方法的主要差别:
|
是否评估测试效果 |
是否自动测试 |
是否持续测试 |
是否调测一体 |
第1代白盒测试方法 |
否 |
否 |
否 |
否 |
第2代白盒测试方法 |
是 |
是 |
否 |
否 |
第3代白盒测试方法 |
是 |
是 |
是 |
否 |
第4代白盒测试方法 |
是 |
是 |
是 |
是 |
第4代白盒方法有效解决了以下瓶颈问题:
- 首先,4GWM尝试解决测试效率的瓶颈问题。该方法论要求在线测试实施测试,使用脚本语言高效的开发测试用例,测试脚本在线编写、在线运行,在线查看测试结果,并在线的根据覆盖率与测试程度报告,补充改进测试设计。除了在线测试,4GWM还要求最大幅度重用各项工作,测试脚本能够重用,调试过程也能重用,多数调试操作都能方便的转换为自动脚本,另外,该方法论要求的持续集成模式让被测系统能随时稳定运行,其稳定性在测试设计、快速问题定位与解决中,都得到了高度重用。
- 其次,4GWM尝试解决测试有效性问题。许多时候测试人员反映白盒测试缺少效果,发现问题不多,测试无法深入,这些多半是测试方法不恰当造成的。比如测试者只按可见代码做测试,忽略了对不可见代码(如缺省的else分支、遗漏的处理过程)的测试,受限于惯性思维做测试,而未按接口规格做测试。4GWM引入测试先行方法,同时克服了XP相关实践中,未见代码先写用例,不够直观与难以实施的缺点,让复杂软件的白盒测试能真正深入的推动起来。
- 还有,4GWM还解决测试有效性评估问题。除了代码覆盖率,本方法论还引入用户覆盖度评估标准,可以有效防止不经意测试带来覆盖率虚高,导致测试效果评估失准的情况出现。
- 最后,在软件持续集成过程中,4GWM还要求遵循一套简明的红绿灯通行机制,保证源码不断修改后白盒测试能有效跟进,并持续、平稳的维持运作。
有关4GWM的更详细介绍请见《第4代白盒测试方法介绍(理论篇)》与《第4代白盒测试方法介绍(VcTester实践篇)》,《第4代白盒测试方法通俗释义》,请查阅Wayne的专家博客。
我们专业免费提供软件测试工具,免费开发平台,C/C++单元测试工具,C/C++集成测试工具,C/C++白盒测试工具,VC单元测试工具,VC白盒测试工具,持续集成测试工具,基于表格驱动的AW自动化测试工具,ActionWord自动化测试工具,市场诊断工具。
|