集成测试和功能测试有什么区别?

Mis*_*thi 123 testing

功能测试和集成测试是否相同?

您通过单元测试开始测试,然后在完成单元测试后,您将进行集成测试,从而对整个系统进行测试.功能测试与集成测试相同吗?您仍然将整个系统作为一个整体并对其进行功能一致性测试.

ace*_*ole 94

集成测试是指您测试多个组件以及它们如何协同工作.例如,另一个系统如何与您的系统交互,或者数据库与您的数据抽象层交互.通常这需要一个完全安装的系统,尽管它最纯粹的形式却没有.

功能测试是指您根据产品的功能要求测试系统.产品/项目管理通常会编写这些内容,QA会正式确定用户应该看到和体验的过程,以及这些过程的最终结果应该是什么.根据产品的不同,这可以是自动化的.

  • Thanx ...是的,但在功能测试中,当我们根据功能要求测试系统时,我们也把它作为一个集成系统.而在执行功能性测试时,我们也会发现不同的单元是如何工作的因此它可以作为集成测试的thoght ... (7认同)
  • 特别是在我们的环境中,我们一直认为单元测试是针对单个类编写的nunit测试,集成测试是nunit测试或需要多个类,数据库或其他系统的sql脚本测试(通常需要完整安装)和功能测试是QA运行或自动UI测试的测试. (3认同)

小智 19

功能测试:

是的,我们在功能上测试产品或软件是否在功能上正常工作(测试按钮,链接等)

例如:登录页面.

您提供用户名和密码,您可以测试它是否带您到主页.

集成测试:

是的,您只测试集成软件,但是您测试数据流发生的位置,并且数据库中是否发生了任何更改.

例如:发送电子邮件

您向某人发送一封邮件,数据流也在数据库中更改(发送的表将值增加1)


请记住 - 单击链接和图像不是集成测试.希望你理解为什么,因为只需点击一个链接就没有数据库的变化.

希望这能帮到你.

  • 数据库是程序状态的实现细节。单击链接也可以更改程序状态。 (4认同)

小智 7

功能测试:这是一个测试模块的每个组件的测试过程.例如:如果网页包含文本字段,则需要检查无线电按钮,按钮和下拉等组件.

集成测试:检查2个模块之间的数据流的过程.


cdu*_*001 7

这是一个重要的区别,但不幸的是你永远不会找到协议.问题是大多数开发人员从他们自己的角度来定义这些.这与关于冥王星的争论非常相似.(如果它离太阳更近,它会成为一颗行星吗?)

单元测试很容易定义.它测试CUT(被测代码),没有别的.(好吧,尽可能少.)这意味着嘲笑,假货和固定装置.

在频谱的另一端,有许多人称之为系统集成测试.这是尽可能多的测试,但仍然在寻找你自己的CUT中的错误.

但是之间的广阔呢?

  • 例如,如果你只测试比CUT多一点怎么办?如果您包含Fibonacci函数,而不是使用已注入的夹具,该怎么办?我会称之为功能测试,但世界不同意我的观点.
  • 如果你包括time()rand()怎么办?或者如果你打电话http://google.com怎么办?我会称之为系统测试,但同样,我一个人.

为什么这很重要?因为系统测试不可靠.它们是必要的,但有时会由于您无法控制的原因而失败.另一方面,功能测试应该总是通过,而不是随机失败; 如果它们很快,它们也可以从一开始就用于使用测试驱动开发,而无需为内部实现编写太多测试.换句话说,我认为单元测试可能比它们的价值更麻烦,而且我的公司很好.

我将测试放在3个轴上,所有的零都在单元测试中:

  1. 功能测试:在您的调用堆栈中使用更深入和更深入的实际代码.
  2. 集成测试:越来越高您的调用堆栈; 换句话说,通过运行将使用它的代码来测试您的CUT.
  3. 系统测试:越来越多的不可重复的操作(O/S调度程序,时钟,网络)

测试可以很容易地全部3,不同程度.

  • 他们不应该随机失败。当他们失败时,他们应该每次都失败。例如,它们不应包括对其他主机的调用。也许它们应该被称为*行为测试*?我不知道最好的术语。我只知道它们是最重要的测试,而且在纯粹的、完全模拟的 *单元测试 * 和高级 *系统集成测试 * 之间的巨大差距中,它们通常被忽视。 (2认同)

小智 6

我想说两者都紧密相连,很难区分它们。在我看来,集成测试是功能测试的一个子集。

功能测试基于您收到的初始需求。您将测试应用程序的行为是否符合要求。

说到集成测试,就是模块之间的交互。如果 A 模块发送输入,B 模块是否能够处理它。