4 Reasons Why I Think We Should Invert The Test Automation Pyramid For Continuous QA
And Reevaluate our core competencies
Primarily, it seems outdated and developer-centric.
The Test Automation Pyramid designed by Michael Cohn convinced us that test automation is best carried out with lots of Unit Tests, some Integration/Service Tests and very few UI/End to End Tests.
Thanks for reading Vaibhav’s Newsletter! Subscribe for free to receive new posts and support my work.
It talks about the volume of the tests and not about their effectiveness.
What does Inverting the Test Pyramid mean?
In simple terms, it means to design tests on their effectiveness with strictly necessary Unit Tests, the irreplaceable Integration/ Service Tests and finally an emphasis on the End to End Business Logic relevant tests.
It will arguably enable a much more effective method to implement continuous QA.
Here are 4 reasons to embrace the "Ice-Cream Cone Approach":
- A working code at the Unit Level is not sufficient:
As the title says it all, a code working at the unit level is not sufficient and obviously not deliverable. A 100% pass percentage of unit tests does not provide a strong reflection on the quality of the product.
Bloating the pipelines with unit tests slows down the overall continuous integration process.
- It helps in creating a cohesive Test Strategy
A Test Strategy allows a QA team to plan and design their tests keeping in mind the final deliverable. It also allows them a free hand to break down the automation of those tests and at different levels in the pyramid.
It reduces the bloating of pipelines at the development branch.
- The Test of a Microservice-Based Architecture
A microservice-based architecture enables a development team to develop small functionalities and features for quick feedback. It typically requires testing to be done at multiple levels for the feedback to be relevant.
The ability to do unit, integration, UI and business logic tests at each microservice level is a major advantage.
- Need for clear distinction of testing responsibilities
The test automation pyramid puts a lot of emphasis on unit tests. A unit test is a clear responsibility of a developer but testing the application is the responsibility of the QA team.
Enabling each team to work on their core competency maximizes the output for the team in general.
In conclusion, a test pyramid is a good place to start but to get the best out of agile, cross-functional teams, there is a need to re-evaluate and redistribute the responsibilities according to the core competencies.
Thanks for reading Vaibhav’s Newsletter! Subscribe for free to receive new posts and support my work.