.net - 单元测试还是功能测试?

标签 .net unit-testing functional-testing testdrivendesign

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




我最近听说过单元测试的功能测试。

我知道单元测试从最原子的形式测试给定代码段的每一种可能性。但是功能测试呢?

对我来说,这听起来像是只测试代码是否有效,但它是否与单元测试一样可靠?

有人告诉我,对于此事有两种不同的看法。某些人更喜欢单元测试,其他人更喜欢功能测试。

是否有任何好的资源、链接、书籍、任何引用资料或你们中的一个可以解释和启发我在这个主题上的道路?

谢谢!

最佳答案

杰森的回答是正确的。不同类型的测试有不同的目的,可以分层以获得最佳结果(良好的设计、满足规范、减少缺陷)。

  • 单元测试 = 驱动器设计(使用 Test-Driven Development 或 TDD)
  • 集成测试 = 将所有部分协同工作
  • 客户验收测试=是否符合客户要求
  • 手动测试 = 经常覆盖 UI;专门的测试人员可以找到自动化遗漏的地方
  • 负载测试 = 系统在实际数据量下的表现如何

  • 这些类别之间有一些重叠;例如,单元测试可以指定行为。

    还有其他人;要了解大多数人不知道的更多信息,请参阅 Software Testing .

    人们忽略的一点是单元测试是测试代码片段隔离 .例如,好的单元测试不会影响数据库。这有两个优点:它使测试运行得更快,因此您将更频繁地运行它们,并且它迫使您编写松散耦合的类(更好的设计)。

    您要求提供资源;我推荐 Roy Osherove 的书 The Art of Unit Testing with Examples in .NET .虽然没有一本书是完美的,但这本书为编写好的测试提供了许多极好的指导。

    编辑:对于针对现有软件编写测试,没有什么比 Michael Feathers 的书 Working Effectively with Legacy Code 更好的了.

    关于.net - 单元测试还是功能测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230286/

    相关文章:

    c# - 刷新 Windows 窗体中的 list 框

    c# - 仅在 IE 10 中无效的 ViewState

    java模拟自定义对象

    c# - 单元测试内的方法内断言

    c# - DPI 意识 - 在一个版本中没有意识到,在另一个版本中有系统意识

    unit-testing - Android NDK 上的单元测试

    grails - Windows 7 命令提示符使用 geb 和 spock 运行 grails 功能测试

    node.js - 如何编写自己的 CasperJS 模块?

    ruby-on-rails-3 - Rails 3 功能测试 : Can't mass-assign protected attributes: controller, 操作

    c# - 带有异步 Task.Run 方法的死锁,带有来自 Synchronus 方法的 Wait 和超时