4

好的,所以我一直在尝试查看有关测试的信息,不同的测试库等等。

在我看来,人们总是将这些测试的区别明确定义为一个是高水平的,一个是低水平的。并且经过适当测试的应用程序将包含样式测试以及集成测试等。

但似乎每篇关于测试类型的文章都以“在实践中可能很难看出实际有什么区别”之类的结尾。我觉得很奇怪,人们似乎如此说教,以至于您必须同时进行测试才能达到任何类型的完整代码覆盖率,同时又没有任何关于每个可能是什么样子的好的信息/示例。

我之所以这么问,是因为我正在开始一个新项目,该项目有望比我过去所做的任何事情都更大、更多参与。我想在我的测试中保持良好的工作流程,并确保我不会在我的测试中造成差距(过去的项目很小,我可能有的任何差距似乎都不会导致任何重大问题在生产中不是简单的 t0 正确的)

我知道这似乎是一个很好的验收测试,自然会引导你进行单元测试,一旦你得到它,就会发生这种神奇的事情,你的开发生活会更加幸福。

无论如何,有没有人知道关于开始一个好的测试工作流程的任何好的讨论,一个讨论在你的验收/集成测试到你的单元测试之间移动以及什么不是的。

.net 的示例会很棒,但由于大多数测试框架 cucumber(gherkin)/rspec 等都意味着相当可读,因此任何示例都应该是好的。

4

2 回答 2

3

"in practice it could be hard to see what the difference actually is"

我只能给出一般测试建议。大型软件项目通常涉及某种层次结构。

  • 在开发阶段,开发人员通常对小单元进行白盒测试(单元测试)。这里可以使用内部知识来减少测试用例的数量(如果两个函数是正交的,则不需要测试所有可能的组合)。这是测试层次结构中的低端。
  • 在集成中,软件组件被放在一起,不同的人(测试人员)只测试接口处的行为(黑盒测试)。这些人不了解内部结构,只了解接口的规格。
  • 系统集成结合了更大的系统。
  • 等等。

为了使测试有效,每个级别都依赖于在较低级别测试的完全预测试的组件。否则更高的测试级别必须包括其组件的基本功能,但只能使用黑盒测试(必须假设最坏的情况,即要测试的功能之间的依赖关系)。因此,测试用例的数量呈指数级增长,使得完全覆盖的测试变得不可能。

分层方法在这里优化了测试工作。

于 2011-07-13T19:59:02.190 回答
3

请参阅有关不同类型测试的视频。不同类型的测试技术用一张表进行比较。

于 2011-07-14T02:25:50.130 回答