Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between a UI test and an E2E Test? And What's the benefits of each?

Our team is considering starting testing based on user scenarios. So, we are picking a E2E framework.

Searching for UI test lead to the following:

So, I found this this

It says

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.

I don't get the difference between UI Testing & E2E Testing.

I wrote UI Test Code in Android Studio. And I need to write a code for each and every click and view, etc. I feel why do we need this? I'd rather test with my finger directly and dynamically.

like image 883
c-an Avatar asked Jul 25 '19 09:07

c-an


People also ask

What are the benefits of UI testing?

Automated UI Testing Improves Accuracy But even the best developers and testers can make mistakes from time to time. By utilizing automated UI testing, you can help to eliminate human error and ensure all design elements and functionalities of your website or app are performing exactly how they should be.

What is the difference between end to end testing and system integration testing?

In system testing, whole software or application is tested at a time. In end-to-end testing, behavioral flow of the software is tested. System testing only tests the specific software system. It tests the software system and the connected systems both.

What is the difference between UI testing and usability testing?

Graphical user interface testing is used to determine the front-end portion of any application. Usability testing determines the extent of the user-friendliness Interface as well as overall functioning of the software.

What are the main differences between unit and end to end testing answer?

Unit testing efficiently checks for the functions or calculations that provide resulting data—a numerical value, a text string, etc. End-to-end testing tests all layers of the application at once; it's best-suited to make sure buttons, forms, changes, links, and generally entire workflows function without problems.


1 Answers

Let's start by looking at what the difference is between E2E (end to end) testing and UI testing:

  • End to end testing is checking the whole system / product behaves correctly when used in the way it will be deployed.
  • UI testing ensuring that the UI works correctly.

Essentially UI testing is focusing on the UI component of the product. It would be entirely appropriate to do this testing with a mocked backend to avoid needing to run the entire system to check the UI.

There is an amount of overlap between UI testing and E2E testing. I.E. if you test a form in UI testing I would also expect that form to be tested in an E2E scenario. The main difference would be the coverage, the E2E test would try to cover the scenario which may be one use of the form. Where as, the UI testing would cover all the things that the user can do with the form, including entering bad data.

One of the problems with E2E testing is often when a test fails you need to spend some time working out which component has caused the failure. By having tests for each component (including UI testing) there should be a corresponding failure in the tests for one of the components.

Imagine that your E2E test has failed because the login button has disappeared from the UI. Your E2E test will say user cannot log in. Is that because of the UI, the API, the credential store (e.g. database), connection to external service when using SSO (e.g. LDAP)? When looking at the UI tests it will also say user cannot log in, but now you know it's a UI problem.

I wrote UI Test Code in Android Studio. And I need to write a code for each and every click and view, etc. I feel why do we need this? I'd rather test with my finger directly and dynamically.

As with all testing the depth you go into with each type of testing is a decision based heavily on your needs. There are many cases where the manual testing you describe is entirely adequate, typically because the system is not safety critical and the cost to fix issues is low. However, if the cost of fixing issues is high, or the system is safety critical you might wish to invest in writing tests for every click or view could be useful.

If there are any points you wish me to expand on please leave comment.

like image 141
James Wilson Avatar answered Oct 06 '22 18:10

James Wilson