验收测试与单元测试示例

时间:2011-07-13 19:16:30

标签: c# .net ruby unit-testing acceptance-testing

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

在我看来,人们总是清楚地将这些测试的差异定义为高水平和低水平。并且经过适当测试的应用程序将包含样式测试以及集成测试等等。

但似乎每篇关于测试类型的文章都以“在实践中可能很难看出实际差异”这样的内容结束。我觉得很奇怪,人们似乎很有说服力,你必须同时进行测试才能达到任何类型的完整代码覆盖率,同时没有任何关于每种情况的好信息/示例。

我在问,因为我正在开始一个新项目,这个项目比我过去所做的任何事情都要大得多,也更有帮助。我希望通过我的测试保持良好的工作流程,并确保我不会在我的测试中创造差距(过去的项目很小,而且我可能遇到的任何差距似乎都没有引起任何重大问题在生产中不简单t0正确)

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

无论如何,有没有人知道有关开始一个良好的测试工作流程的任何好的讨论,一个谈论在你的验收/集成测试和单元测试之间进行的讨论。

<。> .net的例子会很棒,但由于大多数测试框架黄瓜(小黄瓜)/ rspec等都是相当可读的,任何一个例子都应该是好的。

2 个答案:

答案 0 :(得分:3)

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

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

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

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

分层方法可以优化测试工作。

答案 1 :(得分:3)

请参阅video on different types of testing。将不同类型的测试技术与表格进行比较。