功能测试和端到端测试的区别
Difference between functional test and end-to-end test
功能测试和端到端测试有什么区别?
Techopedia 表示端到端测试是
a methodology used to test whether the flow of
an application is performing as designed from start to finish. The
purpose of carrying out end-to-end tests is to identify system
dependencies and to ensure that the right information is passed
between various system components and systems.
Techopedia 还说了以下关于功能测试的内容:
Functional testing is a software testing process used within software
development in which software is tested to ensure that it conforms
with all requirements. Functional testing is a way of checking
software to ensure that it has all the required functionality that's
specified within its functional requirements.
看了上面两段,我还是搞不清楚它们的区别。
我有一个 node.js 应用程序,它接受请求,然后解析请求,然后将解析的数据发送到数据库。
requests parse requests and send data to the database
Client ---------> node.js app --------------------------------------------> Database
如何为我提到的 node.js 应用程序编写端到端测试和功能测试?
我认为在这两种类型的测试中,我应该将 node.js 应用程序视为黑盒。并向它发送请求。然后检查黑盒的输出是否正确
在我看来,功能测试和端到端测试之间没有区别。
据我了解,两者之间最大的区别是端到端测试需要测试在生产中设置系统组件。真实的数据库、服务、队列等。这样做的原因是要查看您的系统连接是否正确(数据库连接、配置等)。
功能测试可以使用应用程序端口的内存实现来设置系统,这将使测试 运行 更快,并且可能允许测试 运行 并行(在某些情况下) .测试唯一关心的是功能是否按预期工作。这可以减少设置某些测试的开销,因为用数据准备第 3 方系统可能很困难或很耗时。
我认为功能测试和端到端测试的定义可能会根据项目的上下文而有所不同。我见过不同的人使用这些术语来描述不同的事物。话虽这么说,通常这就是这两个术语的意思-
功能测试 - 这是指根据需求测试系统的功能。这通常侧重于系统的不同要求并确保其正常工作。例如 - 登录应用程序 - 可能是一项要求,然后人们可以手动或以自动方式测试此功能。同样,将产品添加到购物车可能是一项功能,然后,能够支付购买产品可能是一项功能。
端到端测试 - 这是指基于端到端用户流程测试系统,而不是像单元测试或故事级测试那样测试系统具有单独的组件.例如 - 登录应用程序,然后将产品添加到购物车,然后转到结帐屏幕,然后下订单,然后注销应用程序可能是一个用户流。
我们遵循的内容略有不同,当然,您的团队对待每个人的方式也有所不同。为了进一步说明,
功能测试 : 测试登录功能,从数据库验证登录数据是否正确,验证是否收到预期事件,或发送到消息总线或类似 Prod 的环境中的任何外部 activity,例如暂存环境。您在真实环境中测试特定功能。
端到端测试:测试完整的功能,例如,登录到应用程序,在查看页面上查看产品,select 产品,结帐并执行支付。这也可以涵盖多个微服务,或者可能涵盖多个团队。如果此流程中断,我们可以查明哪些功能测试失败了。
集成测试:测试多个组件之间的集成,从范围广泛的多个类到多个系统。比如可以UI 连接到一些外部登录服务,可以后端连接到数据库。如果功能测试失败,我们可以通过单元测试查看哪个 Int Test 失败等等。
功能测试和端到端测试有什么区别?
Techopedia 表示端到端测试是
a methodology used to test whether the flow of an application is performing as designed from start to finish. The purpose of carrying out end-to-end tests is to identify system dependencies and to ensure that the right information is passed between various system components and systems.
Techopedia 还说了以下关于功能测试的内容:
Functional testing is a software testing process used within software development in which software is tested to ensure that it conforms with all requirements. Functional testing is a way of checking software to ensure that it has all the required functionality that's specified within its functional requirements.
看了上面两段,我还是搞不清楚它们的区别。
我有一个 node.js 应用程序,它接受请求,然后解析请求,然后将解析的数据发送到数据库。
requests parse requests and send data to the database
Client ---------> node.js app --------------------------------------------> Database
如何为我提到的 node.js 应用程序编写端到端测试和功能测试?
我认为在这两种类型的测试中,我应该将 node.js 应用程序视为黑盒。并向它发送请求。然后检查黑盒的输出是否正确
在我看来,功能测试和端到端测试之间没有区别。
据我了解,两者之间最大的区别是端到端测试需要测试在生产中设置系统组件。真实的数据库、服务、队列等。这样做的原因是要查看您的系统连接是否正确(数据库连接、配置等)。
功能测试可以使用应用程序端口的内存实现来设置系统,这将使测试 运行 更快,并且可能允许测试 运行 并行(在某些情况下) .测试唯一关心的是功能是否按预期工作。这可以减少设置某些测试的开销,因为用数据准备第 3 方系统可能很困难或很耗时。
我认为功能测试和端到端测试的定义可能会根据项目的上下文而有所不同。我见过不同的人使用这些术语来描述不同的事物。话虽这么说,通常这就是这两个术语的意思-
功能测试 - 这是指根据需求测试系统的功能。这通常侧重于系统的不同要求并确保其正常工作。例如 - 登录应用程序 - 可能是一项要求,然后人们可以手动或以自动方式测试此功能。同样,将产品添加到购物车可能是一项功能,然后,能够支付购买产品可能是一项功能。
端到端测试 - 这是指基于端到端用户流程测试系统,而不是像单元测试或故事级测试那样测试系统具有单独的组件.例如 - 登录应用程序,然后将产品添加到购物车,然后转到结帐屏幕,然后下订单,然后注销应用程序可能是一个用户流。
我们遵循的内容略有不同,当然,您的团队对待每个人的方式也有所不同。为了进一步说明,
功能测试 : 测试登录功能,从数据库验证登录数据是否正确,验证是否收到预期事件,或发送到消息总线或类似 Prod 的环境中的任何外部 activity,例如暂存环境。您在真实环境中测试特定功能。
端到端测试:测试完整的功能,例如,登录到应用程序,在查看页面上查看产品,select 产品,结帐并执行支付。这也可以涵盖多个微服务,或者可能涵盖多个团队。如果此流程中断,我们可以查明哪些功能测试失败了。
集成测试:测试多个组件之间的集成,从范围广泛的多个类到多个系统。比如可以UI 连接到一些外部登录服务,可以后端连接到数据库。如果功能测试失败,我们可以通过单元测试查看哪个 Int Test 失败等等。