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

17,827

Solution 1

UI testing: user interface testing. In other words, you have to make sure that all buttons, fields, labels and other elements on the screen work as assumed in a specification.

GUI testing: graphical user interface. You have to make sure that all elements on the screen work as mentioned in a specification and also color, font, element size and other similar stuff match design.

Functional testing: the process of quality assurance of a product that assumes the testing of the functions/functionalities of component or system in general, according to specification requirements.

E2E testing: it needs for identifying system dependencies and ensuring that the right information is passed through multiple components and systems.

Solution 2

Please make yourself familiar with Hermetic Testing.

hermetic-testing

You have two ways to access systems in your test:

  1. You have a local service. For example an in memory database instead of the real database
  2. You mock the system.

For me UI-tests work like in above picture: All tests use local resources. They are hermetic.

But End-to-end Tests involve other systems. Example: Your SUT (system under test) creates an email. You want to be sure that this email gets send to a server and later arrives in an Inbox. For me this contradicts with "separation of concerns". This mixes two distinct topics. First: Your application creates an email and sends it to an server. This could be handled with a mocked mail server. But end-to-end tests mix it with a second concern: You want the mail server to be alive and receive and forward mails correctly. This is not software testing, this is monitoring.

My advice: Do hermetic UI-Testing of code and do check/monitor your production system. But don't mix both concepts. I think for small environments end-to-end-tests are not needed.

Share:
17,827
lmiguelvargasf
Author by

lmiguelvargasf

I enjoy solving problems. I like math, science, philosophy and technology. LinkedIn

Updated on July 29, 2022

Comments

  • lmiguelvargasf
    lmiguelvargasf over 1 year

    I would say that all three are the same, but I wonder if there is small differences between them. In the end, what I think is that you are testing user scenarios on all of them.

  • lmiguelvargasf
    lmiguelvargasf over 7 years
    The only difference between GUI and UI testing is that the former checks for styles of graphical elements while the former just checks for correctness in the functionality, isn't it?
  • Eran Or
    Eran Or about 5 years
    Functional testing is the same as e2e testing also called browser testing