功能测试与端到端测试之间的区别

时间:2018-02-13 08:40:16

标签: testing functional-testing end-to-end

功能测试与端到端测试有什么区别?

Techopedia说端到端测试是

  

用于测试流量的方法   应用程序从头到尾按设计执行。该   进行端到端测试的目的是识别系统   依赖关系并确保传递正确的信息   在各种系统组件和系统之间。

Techopedia还说了关于功能测试的内容:

  

功能测试是软件中使用的软件测试过程   开发中测试软件以确保其符合要求   满足所有要求。功能测试是一种检查方式   软件,以确保它具有所有必需的功能   在其功能要求中规定。

阅读完上述两段后,我仍然对它们之间的区别感到困惑。

我有一个接受请求的node.js应用程序,然后解析请求,然后将解析后的数据发送到数据库。

        requests               parse requests and send data to the database  

Client ---------> node.js app --------------------------------------------> Database

我如何为我提到的node.js应用程序编写端到端测试和功能测试?

我认为在两种类型的测试中,我都应该将node.js应用程序视为黑盒子。并向它发送请求。然后检查黑匣子的输出是否正确。

在我看来,功能测试与端到端测试之间没有区别。

3 个答案:

答案 0 :(得分:13)

据我了解,两者之间最大的区别是端到端测试需要测试来设置系统组件,因为它们正在生产中。真正的数据库,服务,队列等。原因是看到您的系统连接正确(数据库连接,配置等)。

功能测试可以使用应用程序端口的内存实现来设置系统,这将使测试运行更快并且可能允许测试并行运行(在某些情况下)。测试唯一关心的是功能按预期工作。这可以减少设置某些测试的开销,因为使用数据准备第三方系统可能很困难或耗时。

答案 1 :(得分:2)

我认为功能测试和端到端测试的定义可能会根据您项目的上下文而有所不同。我已经看到不同的人使用这些术语来描述不同的事物。话虽这么说,通常这就是这两个词的意思-

功能测试-这是指根据需求测试系统的功能。这通常着眼于系统的不同要求,并确保其正常运行。例如-登录到应用程序-可能是一个要求,然后一个人可以手动或以自动方式测试此功能。同样,将产品添加到购物车可能是一项功能,那么,能够付款购买产品可能就是一项功能。

端到端测试-这是指根据端到端用户流来测试系统,而不是像在单元测试或故事级测试中那样测试系统具有单独的组件。例如-登录到应用程序,然后将产品添加到购物车,然后转到结帐屏幕,然后下订单,然后注销应用程序可能是一个用户流程。

答案 2 :(得分:0)

我们遵循的内容略有不同,当然,您的团队对待每个人的方式也有所不同。为进一步清楚起见,

  1. 功能测试:测试一个功能,比如登录,从数据库验证登录数据是否正确,验证是否接收到预期事件,或发送到消息总线或 Prod 中的任何外部活动like environment like staging 环境。您在真实环境中测试特定功能。

  2. 端到端测试:测试完整的功能,例如登录应用程序、在查看页面上查看产品、选择产品、结帐和付款。这也可以涵盖多个微服务,或者多个团队。如果此流程中断,我们可以确定哪些功能测试失败。

  3. 集成测试:测试多个组件之间的集成,从广泛的多个类到多个系统。就像 UI 可以连接到一些外部登录服务,可以后端连接到数据库。如果功能测试失败,我们可以通过单元测试查看哪个 Int 测试失败等等。