软件测试中单元测试极大地提高C/C++应用质量
作者:网络转载 发布时间:[ 2015/6/25 16:35:21 ] 推荐标签:单元测试 软件测试
下一步是设计和建立合适的测试用例。为了彻底地测试类的结构和功能性,你应该设计两中类型的测试用例:黑盒和白盒。
黑盒测试用例基于说明和规格文档。特别地,至少应该为规格文档的每个入口建立一个测试用例;更好的是这些测试用例能够测试每个入口的各种边界条件。还需要为发现的每一个错误增加另外的测试用例,以及任何你认为必要的其它测试。
白盒测试用例通过各种不同的输入充分地执行类的所有方法以发现缺陷。对于手工测试来说这是非常困难的。为了建立有效的白盒测试用例,你必须研究类的内部结构,然后编写测试用例尽可能完全地覆盖类的所有方法,以及覆盖所有可能引起类崩溃的输入。要达到较高的测试覆盖性,需要有效的白盒测试用例它们能够执行相当多数的路径。例如,一个典型的1万行的程序,大约有1亿条可能的路径;手工建立能够执行所有这些路径的输入几乎是不可行的。
在建立这些测试用例以后,你将要执行整个测试用例并分析结果,确定在那里出现了错误、崩溃和薄弱环节。你还需测量这些测试的覆盖性,以确定类被测试的程度以及需要追加的测试用例。
任何时候一个类被修改后,你应该执行回归测试,保证没有引入新的错误和/或原来的错误已经被更正了。回归测试包括白盒和黑盒测试用例,并且分析结果以确定类的质量是否得到的改善。
C++Test:一个自动化的单元测试解决方案
ParaSoft认识到了C/C++单元测试内在的的价值和难度,开发了C++Test,一个自动的C/C++单元测试工具,增强了ParaSoft的自动错误防止和错误检测产品线。C++Test自动执行所有可能的单元测试过程。特别地,它能够自动:
建立每个被测类的测试驱动程序。
建立任何必要的桩函数,并允许你定制这些桩函数的返回值或加入自己的桩函数。
单键执行白盒测试的所有步骤。
生成黑盒测试用例的基础集合。
运行黑盒测试用例。
生成黑盒测试的输出结果。
执行回归测试。
跟踪测试覆盖性。
C++Test能够测试所有类型的C/C++项目;C++Test甚至能够支持COM对象,允许你对调用COM对象方法的类和方法执行自动的单元测试。
C++Test还是高度可定制的;例如,你可以改变测试用例的生成参数,过滤一定的文件、类或方法,在任何层次上(从这个项目到单个方法或测试用例)进行测试。
另外,C++Test很容易与你目前的开发过程合作。C++Test直接安装在DevStudio环境中,因此你能够立即测试任何正在开发中的类。只要在Developer Studio的工具栏上按下Test File或Test Project按钮,那么C++Test会自动在C++Test图形用户界面中打开你的文件,为每个类建立一个测试驱动程序并自动测试每个类。
图3:C++Test图形用户界面
通过自动化单元测试过程,C++Test使得单元测试切实可行,即使对时间非常紧张的项目和开发人员也是如此,并且比手工单元测试具有更好的精确行和正确行。这一切将转化成更高质量的应用,并且以更短的时间以及更低的开发、支持和维护成本。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
iOS单元测试mocha、chai、sinon和istanbul实现百分之百的单元测试覆盖率关于单元测试的总结及思考编写更好的Java单元测试的7个技巧Android单元测试框架Robolectric3.0介绍(一)使用Kiwi单元测试总结单元测试如此重要,为什么你不知道Python单元测试??使用装饰器实现测试跳过和预期故障对Controller的单元测试写好单元测试的10个技巧单元测试的重要性Angular单元测试系列??Component、Directive、Pipe 以及ServiceAndroid单元测试的整理提升单元测试体验的利器--Mockito使用总结iOS UnitTest单元测试Vue的单元测试探索(二)
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南