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

我的理解是,单元的测试测试各种可能性的一个特定的代码从其最原子的形式。但是,有关功能测试?

这听起来好像只有测试,如果该码作品,但是它作为可靠的,因为单元的测试?

我已经告诉有两个学校的想法,对该问题。某些会喜欢单元的测试,其他功能测试。

是否有任何良好的资源、链接、书籍,任何参考资料或一个你所有谁可以解释和elighten我的道路上的主题?

谢谢!

有帮助吗?

解决方案

Jason的答案是正确的。不同类型的试验有不同的目的,可分层的最佳结果(良好的设计,会议的规格,减少缺陷)。

  • 单元测试=驱动的设计(用 测试驱动的发展, 或TTD)
  • 集成试验=做所有的作品一起工作
  • 客户接受性测试=它是否满足客户的要求
  • 手工测试=经常涵盖的用户界面;专门的测试可以找到什么错过自动化
  • 载荷测试=如何系统执行与现实量的数据

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

还有其他人;超过大多数人在乎知道,看 软件的测试.

一点人们错过的是,单元的测试,正在测试的代码 在隔离.好的单元的测试,不要撞的数据库,例如。这有两个好处:它使得测试的运行速度快,所以你就会跑他们往往更多,它迫使你写的松散耦合的课程(更好的设计)。

你要的资源;我建议伊Osherove的书 艺术单元的测试与的实例中。净.虽然没有一本书是完美的,这个给很多优秀的指针编写良好测试。

编辑:并用于编写测试对现有的软件,没有什么比迈克尔羽毛'的书 工作有效地与传统的代码.

其他提示

单元测试与功能测试不是xor,而是一个and。单元测试应该是隔离测试台,而功能测试是对整个集成测试(做所有正确单位一起工作?)。

两者都是良好的软件工程实践必需的组件。

单元测试测试你的代码单位(方法,等等),以确保他们做什么你期待他们。

功能测试测试你的系统的设计来确保所件进行互动的正确。如果你写一命令,采取和int和返回串并测试它完全的,你可以确信它的工作。但如果你没有系统的测试,你可能永远不会注意到,其余的代码,认为它可以接受一空,但它不能。

这两种类型的测试是重要的。

编辑:添加一个稍微不同的看到什么gbjbaanb说:

  • 单元测试=我的代码作品
  • 功能测试=我的设计工作
  • 集成试验=我的代码是使用你的3方的东西正确地(数据库等)
  • 工厂验收测试=我系统的工作
  • 网站的验收测试=代码很烂,这完全不是我想要!?!
  • 单元测试=最低、颗粒水平。
  • 功能测试=中等模块化水平。
  • 集成试验=应用更高的水平。
  • 工厂验收测试=看到它所有的工作
  • 网站的验收测试=看到这一切会失败:)

所有上述是有用的,但他们并不相互排斥的。你应该做的他们中的大多数,但数量的时间花费在每个部分取决于你得到的结果从他们,这就是全部。如果你的代码是太模块化是很容易单元的测试,然后花你的努力的功能测试。如果你正在写一个图书馆的小组成,花费的时间上的单元测试他们,如果你写入控制系统用于军事导弹你应该肯定是网站的验收测试他们(作为爆炸即使当它失败的乐趣:))

功能测试,也称为系统测试时,旨在测试完整的系统,以及验证功能需求得到满足。

单元测试旨在测试“单元”,即,函数或方法的系统从的在隔离建。它有时也被称为开发者测试。事后单元测试是很难,这就是为什么 TDD 代码之前写测试。

这些是<强>互补当集成一起的单元可以独立地和不工作,或者它们可以通过单元测试,并不能满足所有的产品的要求。

单元测试和功能测试具有两个不同的结果。

单元测试验证一小块的代码按预期方式工作。它通常是由开发商完成,以确保代码正常。它们通常通过一个测试的框架,以及自动化。

功能测试验证一个功能通过执行程序通过一定途径去按预期方式。它们通常是由一个人的软件保证计划将他们的工作方式,它应该是为用户执行。它,因此,是较高的水平,并因此在一次测试的若干单元。

我觉得两者都很重要。如果您的资源有限,不过,一定要选/选择的技术,并且我认为这取决于你创造的产品,但我做什么(通过一些按钮被人类汽车控制产品)功能测试是最重要的。它检查,并确保,当用户得到的产品,它做的事情是应该做的。这并不意味着我们应该退出的单元测试,但如果推来对推,功能是最重要的,以确保良好的用户体验,并把产品出了门。

如果你生产,也就是说,一个数据库引擎(或其他一些产品不一定是面向用户的),单元测试可能是你真正应该做的。

一个单元测试测试一块代码的,并确认该另一段代码是做什么的假设给程序员。在测试驱动开发,单元测试写入第一和观察到失败,被写入的代码之前导致测试通过。程序员有兴趣的单元测试。单元测试是快执行。

一个功能测试测试黑箱要求,并表明了一块用户功能是在适当位置。例如,如果我按大红色按钮,钟开始响。功能测试甚至可能不会测试代码。或许有一个机械的过程,使具有按压铃响的按钮。客户感兴趣的功能测试,因为他们证实,高水平的过程,如果以这样的方式,他们理解的工作。它们往往是缓慢执行。

有对于两个在多数的开发工作的地方。

单元测试是有测试的代码小单位,以查看它们正常工作。

功能测试是在那里测试该系统的整体功能是作为预期。

它们是在不同级别和两者都应该被使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top