Answer the question
In order to leave comments, you need to log in
What is end-to-end testing?
Sorry for the stupid question, but I don't really understand what end-to-end testing means.
Answer the question
In order to leave comments, you need to log in
The concept of end-to-end means only the classification of tests according to the level at which the system is tested, and, in itself, does not say anything about what these tests should be specifically, or about what role they play in the overall quality assurance/quality assurance strategy and is also not a testing methodology. (Method is a completely different concept.)
To understand the essence of this concept, it is good to compare it with modular ("lower" level) and integration ("middle") testing on a specific example. Let's consider a spherical webshop in a vacuum. Suppose it has 50 classes and unit tests are written for most of them. They only check the functionality of a specific module (most often, a class), i.e. one that depends only on the module itself and nothing else. Then there are integration tests. They check the correct operation of individual "modules" when put together according to the architecture. For example, does the "Basket", which, in turn, consists of 10 classes (previously checked by unit tests), or the "Basket", connected to the "Webmord" work correctly, etc. Somewhere higher in this hierarchy there are such integration tests that check the specific functionality of the entire system. For example, whether a copy of a paid order is sent to the user by email...
And here the most interesting thing begins to understand what end-to-end testing is! One can imagine a test that checks that the appropriate mail is generated and dropped to the SMTP server. If the SMTP server is not considered as part of the system being developed, then this test can be called an end-to-end test (we sent a bunch of HTTP requests through Webmorda and checked the reset of the soap on SMTP - all hurt!). However, if the settings and operation of the SMTP server are part of the project (for example, a turnkey development of a webshop is ordered), it may turn out that this soap will be filtered out by some spam filter, exceed the user's mailbox limit ... in short, it will not reach before him. Then the same test can no longer be considered end-to-end, but it would be necessary to write a test that checks the arrival of soap in the POP3 / IMAP mailbox. (Yet again, if you really need it! For, depending on the specific functional and non-functional requirements, the architect and QA engineer may well find it possible to provide adequate quality control without such a test.)
Thus, end-to-end tests are integration tests that act on the system through its most external interfaces and test the expected response of the system through these same interfaces. Why integration? Because that's the only thing you can say for sure about them: by definition, they can't be unit tests. And everything else: whether they are at the same time acceptance, load, or something else - depends only on the general plan / testing strategy and the role that these tests play in them.
You, if you are about professional tests, have a test - a set of actions. In this case, end-to-end will mean that the test started with the end user who initiated the script and ended with him, or started with one user and ended with another (for example, at the beginning - the subscriber user ( first end ), the "account replenishment" scenario, at the end - a billing system that counts all changes on the account (second end)).
Optional - such a test is called a sanity test, or a smoke test, and for such a test the end-to-end condition is optional.
More similar, but strictly speaking, at the beginning of such a test there should be a check that, for example, the user requested an authorization page, and for example, at the end, the server considered the session ended, in which case the server is the second "end", and the first one is user.
I would say that this is more than testing - it is a methodology. Typically, this methodology is used to make sure that the program meets the requirements from start to finish. The main goal of this methodology is to make sure that the program works correctly and if it has dependent systems, then the data is transferred correctly.
Usually, for this type of testing, a scenario is developed that is as close as possible to the actual operation of the program. For example, the script includes connections to the database, getting data from the database, sending data to the database, interacting with the network, and much more.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question