功能测试和端到端测试的区别

25
什么是功能测试和端到端测试的区别? Techopedia表示,端到端测试是一种方法,用于测试应用程序从开始到结束的流程是否按设计执行。进行端到端测试的目的是识别系统依赖关系,并确保各个系统组件和系统之间传递正确的信息。 Techopedia还提到了以下关于功能测试的内容:
功能测试是软件开发中使用的软件测试过程,用于测试软件是否符合所有要求。功能测试是一种检查软件以确保其具有其功能要求中指定的所有所需功能的方法。
阅读以上两段文字后,我仍然对它们之间的区别感到困惑。
我有一个接受请求的Node.js应用程序,然后解析请求,最后将解析的数据发送到数据库。
        requests               parse requests and send data to the database  

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

我该如何为我提到的node.js应用编写端到端测试和功能测试?
我认为在这两种类型的测试中,我应该将node.js应用视为黑盒子。然后向其发送请求。然后检查黑盒子的输出是否正确。
在我的情况下,似乎功能测试和端到端测试之间没有区别。
3个回答

33

据我所了解,两者之间最大的区别在于端到端测试要求测试将系统组件设置为生产环境中的状态。包括真实的数据库、服务、队列等。这样做是为了确保你的系统连接正确(数据库连接、配置等)。

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


11

我认为功能测试和端对端测试的定义可能会因项目上下文而异。我见过不同的人使用这些术语来描述不同的事情。话虽如此,通常这两个术语的含义是-

功能测试 - 这指的是基于需求测试系统功能。通常侧重于系统的不同需求并确保其正常运作。例如-登录应用程序-可以是一个需求,然后人员可以手动或自动地测试这种功能。同样,将产品添加到购物车中可能是一个功能,然后能够进行付款以购买产品可能是另一个功能。

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


3
我们所遵循的方法略有不同,当然团队对待它们的方式也不同。为了更加清晰明了,以下是需要翻译的内容:
1. 功能测试:测试一个功能,比如登录,从数据库验证登录数据是否正确,验证是否接收到预期事件,或者发送到消息总线或任何外部活动,像在类似于演示环境的真实环境中。您在真实环境中测试特定功能。
2. 端到端测试:测试完整功能,例如登录应用程序,在查看页面上查看产品,选择产品,结账并付款。这可能涵盖多个微服务,或者可能涉及多个团队。如果此流程中断,我们可以确定哪些功能测试失败。
3. 集成测试:测试多个组件之间的集成,从多个类到多个系统的广泛光谱。比如,UI能否连接到某个外部登录服务,后端能否连接到数据库。如果一个功能测试失败,我们可以观察哪个集成测试失败,以此类推进行单元测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接