题
我对WhiteBox测试的世界相对较新,需要帮助我为我目前正在从事的一个项目设计测试计划。目前,我只是在寻找可测试的代码,然后为此编写一些单元测试。我以某种方式觉得这不是应该做的。请您可以给我建议如何为自己的测试做好准备吗?我可以使用的任何工具或测试计划模板吗?使用的语言是C ++,如果它会有所不同。
解决方案
白盒测试的目标之一是覆盖代码语句的100%(或尽可能接近)。我建议找到一个C ++代码覆盖工具,以便您可以查看测试执行的代码以及错过了什么代码。然后设计测试,以便测试尽可能多的代码。
另一个建议是查看IF仪,环,循环等的边界条件。并测试这些“灰色”区域,假阳性和虚假负面因素。
您还可以设计测试以查看重要变量的生命周期。测试他们的定义,用法和破坏,以确保它们被正确使用:)
有三个想法可以让您入门。祝你好运
其他提示
目前,我只是在寻找可测试的代码,然后为此编写一些单元测试。我以某种方式觉得这不是应该做的。
人们说,测试驱动的开发``它是您要牢记可测试性的组件设计的:它使您的组件更具测试。
我的个人(非TDD)方法如下:
- 了解所需的功能和实现:“先验”(即通过阅读/了解软件功能规范),以及通过读取源代码来反向工程器的功能
- 实现所有已实施/必需功能的黑匣子测试(例如,请参见'一个测试内部实施或仅测试公共行为?').
因此,我的测试不是完全“白色盒子”,除了我对正在测试的功能进行反向工程。然后,我测试了反向工程的功能,并避免使用任何无用(因此未经测试)代码。我可以(但经常)使用代码覆盖工具来查看黑匣子测试对源代码进行了多少。
尝试“有效地使用旧代码”: http://www.amazon.com/working-fective--legacy-michael-fethers/dp/0131177052
这很重要,因为“遗产”是指没有测试的代码。这也是一本相当不错的书。
相关工具是: http://code.google.com/p/googletest/ 和 http://code.google.com/p/gmock/可能还有其他单位测试和模拟框架,但我对此有所熟悉,我高度推荐它们。