What is the difference between UI/GUI testing, functional testing and E2E testing?
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.
You have two ways to access systems in your test:
- You have a local service. For example an in memory database instead of the real database
- 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.
lmiguelvargasf
I enjoy solving problems. I like math, science, philosophy and technology. LinkedIn
Updated on July 29, 2022Comments
-
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 over 7 yearsThe 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 about 5 yearsFunctional testing is the same as e2e testing also called browser testing