1

我对 WhiteBox 测试世界比较陌生,需要帮助为我目前正在从事的 1 个项目设计测试计划。目前我只是在四处寻找可测试的代码,然后为此编写一些单元测试。我不知何故觉得这不是应该做的方式。请你给我一些建议,告诉我如何最好地为测试这个项目做好准备?我可以使用任何工具或测试计划模板吗?使用的语言是 C++,如果它会有所作为的话。

4

3 回答 3

3

白盒测试的目标之一是覆盖 100%(或尽可能接近)的代码语句。我建议找一个 C++ 代码覆盖工具,这样你就可以看到你的测试执行了哪些代码,以及你错过了哪些代码。然后设计测试,以便测试尽可能多的代码。

另一个建议是查看 if 语句、for 循环、while 循环等中的边界条件,并测试这些条件是否存在任何“灰色”区域、误报和误报。

您还可以设计测试来查看重要变量的生命周期。测试它们的定义、使用和销毁,以确保它们被正确使用:)

有三个想法可以帮助您入门。祝你好运

于 2010-05-24T08:22:04.103 回答
2

尝试“有效地使用旧代码”:http ://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

这是相关的,因为“遗留”是指没有测试的代码。这也是一本相当不错的书。

相关工具有:http ://code.google.com/p/googletest/和http://code.google.com/p/gmock/ 可能还有其他单元测试和模拟框架,但我对这些和我强烈推荐他们。

于 2010-05-24T08:51:15.800 回答
2

目前我只是在四处寻找可测试的代码,然后为此编写一些单元测试。我不知何故觉得这不是应该做的方式。

人们说“测试驱动开发”的主要好处之一是它鼓励您在设计组件时考虑到可测试性:它使您的组件更具可测试性。


我个人(非 TDD)的方法如下:

  • 了解所需和实现的功能:“先验”(即通过阅读/了解软件功能规范)和通过阅读源代码对功能进行逆向工程
  • 为所有已实现/必需的功能实施黑盒测试(例如,请参阅“应该测试内部实现,还是只测试公共行为? ”)。

因此,我的测试并不完全是“白盒”,只是我对正在测试的功能进行了逆向工程。然后我测试逆向工程的功能,并避免使用任何无用(因此未经测试)的代码。我可以(但不经常)使用代码覆盖工具来查看黑盒测试执行了多少源代码。

于 2010-05-24T08:20:03.010 回答