C test的单元测试 (CTEST的优缺点和优势)
本文目录导航:
C++test的单元测试
C++Test是一个C/C++单元级测试工具,自动测试C/C++类、函数或部件,而不需要编写测试用例、测试驱动程序或桩调用代码。
C++Test能够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试)。
C++Test是一个易于使用的产品,能够适应任何开发生命周期。
通过将C++Test集成到开发过程中,您能够有效地防止软件错误,提高代码的稳定性,并自动化地实现单元测试(这是极端编程过程的基础)。
著名测试专家Boris Beizer博士认为:软件开发历史上最臭名昭彰的错误都是单元错误--即通过适当的单元测试可以发现的错误。
他引证了Voyager的错误(将探测器发送到太阳)、AT&T和DCS的错误(曾造成美国三分之一的电话瘫痪)以及Intel奔腾芯片错误,都能够通过全面的单元测试排除掉。

单元测试有什么特点
单元测试的特点包括:独立性、高效性、可重复性、集中性和易于自动化。
1、独立性:
单元测试是在隔离环境中进行的,不依赖于其他部分的代码或外部资源,包括数据库,以确保测试结果的准确性和可靠性。
2、高效性:
由于单元测试只关注最小功能单元,它们可以迅速执行并提供快速反馈。
这有效地减少了整体测试周期和调试时间。
3、可重复性:
单元测试应当是可重复执行的,不论何时何地执行都应该得到相同的结果。
这样可以减少因为环境差而导致的测试结果不确定性。
4、集中性:
单元测试主要集中在特定功能单元上,使得错误跟踪和定位更加容易。
当出现问题时,可以快速定位并修复。
5、易于自动化:
元测试通常可以通过自动化测试工具来执行,这样可以提高测试效率,减少人工测试的成本和错误。
尽管单元测试通常不直接链接数据库或访问外部资源,但可以使用模拟器、桩、伪造对象等技术来模拟数据库的行为,以确保对相关代码逻辑的测试覆盖。
单元测试主要内容及应用领域:
单元测试主要内容:
在一种传统的结构化编程语言中,比如C,要进行测试的单元一般是函数或子过程。
在C++这样的面向对象的语言中,要进行测试的基本单元是类。
对Ada语言来说,开发人员可以选择是在独立的过程和函数,还是在Ada包的级别上进行单元测试。
单元测试的应用领域:
输入数据是测试用例的核心,对输入数据的定义是:被测试函数所读取的外部数据及这些数据的初始值。
外部数据是对于被测试函数来说的,实际上就是除了局部变量以外的其他数据,把这些数据分为几类:参数、成员变量、全局变量、IO媒体。
IO媒体是指文件、数据库或其他储存或传输数据的媒体。
目前国内常用的C++测试工具有哪些?
1. 在白盒测试工具方面,目前国内较为流行的包括CppUnit、VisualUnit、C++Test以及Cantata++等。
2. CppUnit是一款开源的C++单元测试框架,而C++Test则是Parasoft公司的一款产品,试用过程可能较为繁琐,且价格较高,个人经验有限。
3. VisualUnit是一款国内的C/C++单元测试工具,我个人使用过并认为其表现优秀,其技术支持团队也提供了出色的服务,能够及时解决用户在使用过程中遇到的问题。
目前VisualUnit的最新版本为2.1,部分功能列表如下: - 提供完善的桩功能,能够对代码进行任意层次和范围的分割测试,覆盖编码到维护的各个阶段; - 能够自动生成测试代码和用例框架; - 支持可视化编辑测试用例,使用简单语法判断输出,并能自动判断中间变量; - 允许在测试用例中模拟和控制子函数行为,包括设置返回值、输出参数、成员变量和全局变量值,且可针对多次调用以不同方式设置子函数行为; - 能够自动统计语句、条件、分支和路径覆盖率; - 显示测试用例的输入输出数据; - 显示每个用例执行的代码覆盖情况; - 自动生成逻辑结构图,并显示每个用例的执行路径; - 允许在逻辑结构图中自由裁剪语句块、分支、分支结构和路径,并支持删除/恢复操作; - 用例设计器能够帮助识别遗漏的用例,实现全面的语句、条件、分支和路径覆盖; - 能够自动描述程序行为,辅助整理和验证编程思路,提高编程效率并快速定位程序错误; - 增强调试功能,支持后退、重复、可视化输入选择以及调试过程中的输入切换; - 能够自动生成HTML格式的测试报告。