UI/GUI 测试、功能测试和端到端测试有什么区别?

What is the difference between UI/GUI testing, functional testing and E2E testing?

我会说这三个都是一样的,但我想知道它们之间是否有细微差别。最后,我认为您正在测试所有这些用户场景。

UI 测试:用户界面测试。换句话说,您必须确保屏幕上的所有按钮、字段、标签和其他元素都按照规范中的假设工作。

GUI 测试:图形用户界面。您必须确保屏幕上的所有元素都按照规范中提到的方式工作,并且颜色、字体、元素大小和其他类似的东西与设计相匹配。

功能测试:产品的质量保证过程,根据规范要求,通常承担对组件或系统的 functions/functionalities 测试。

端到端测试:需要识别系统依赖关系,确保正确的信息通过多个组件和系统。

请熟悉Hermetic Testing

您有两种方式访问​​测试中的系统:

  1. 您有本地服务。例如内存数据库而不是真实数据库
  2. 你嘲笑系统。

对我来说UI-测试如上图所示:所有测试都使用本地资源。它们是 密封

但端到端测试涉及其他系统。示例:您的 SUT(被测系统)创建了一封电子邮件。您希望确保此电子邮件被发送到服务器并随后到达收件箱。对我来说,这与“关注点分离”相矛盾。这混合了两个不同的主题。第一:您的应用程序创建一封电子邮件并将其发送到服务器。这可以通过模拟邮件服务器来处理。但是端到端测试将它与第二个问题混为一谈:您希望邮件服务器处于活动状态并正确接收和转发邮件。这不是软件测试,这是监控。

我的建议:进行封闭的 UI- 代码测试并 check/monitor 您的生产系统。但是不要混淆这两个概念。我认为对于小型环境不需要端到端测试。

我认为功能测试与 UI/GUI 测试完全不同。考虑到我们谈论的是机械领域或另一个非软件领域;对我来说功能测试,测试功能;例如如果您点击微波炉的硬按钮,它应该会开始工作。现在,如果你的微波炉没有按钮,而是有一个触摸屏和一个 OS 来管理屏幕,你点击软按钮,这个软按钮应该驱动硬按钮,以便微波炉运行。所以对我来说,功能测试意味着使用硬按钮测试微波炉,但是 UI 测试意味着使用软按钮测试微波炉,并且由于软按钮驱动硬按钮,通过测试 UI,您还做功能测试。 oy有意义吗?