Nikolaj Tolkaciov, head of the testing practice at Devbridge, talked about full-stack test automation in terms of using each of the levels under our control to get the best automation solution.
The Test Automation Pyramid and its Alternative
The original Test Automation Pyramid consists of:
- UI tests;
- Service;
- Unit.
These are the levels at which we can build our automation consisting of UI, API, integration, component, and unit tests.
There is another approach to automated testing – Bug Filter. The idea is that there is an endless set of different bugs. First, you run unit tests and find all bugs which can be found with the unit test. Then move on to integration testing, only those bugs that cannot be found by unit testing get here. And then move on to E2E and user testing. Thus, only functionally undetectable bugs get into production!
This approach has another advantage. Usually, when developers complete their work, testers write UI E2E tests, assuming that the unit test does not cover anything, and you need to do everything from scratch by duplicating efforts. The Bug Filter brings a focus on the correct order of test automation and thus reducing duplicated test coverage.
This brings us to automating full-stack testing.
The Essence of Full-Stack Test Automation
In software testing, there is a responsibility division. Developers do unit/integration testing, and the rest is for test engineers. And there is a huge gap between them.
How to avoid it? There are several options for the events’ development.
The developer writes unit/integration, API, and UI tests.
The developer writes unit/integration tests and then defines what to test by the API and UI tests. Test engineers write API and UI tests according to these specifications.
The developer writes unit/integration tests. The test engineer analyzes what is covered by the unit/integration test layer then writes API and UI tests to cover gaps missed by the unit/integration test.
Conclusion
Treat test automation layers as bug filters, learn how to implement unit testing, take care of the full test automation stack. This will eliminate all bottlenecks and increase ROI for test automation.