Test Automation Pyramid?
Book Succeeding with Agile: Software Development Using Scrum coined the importance of approaching the Test Automation in a systematic way, do’s and don’s..
In essence, the idea here is approach Test automation in a meaningful way that offers ROI.
Sadly, in many places, Tools steal attention when it comes to automation. Precisely, those GUI automation tools steal much attention as those places got Testers who prefer to sit on top of the application and just automate to test the functionality. Those who hate record and replay tools, get obsessed with other set of tools which programmatically talk to the web browsers and other GUI technologies and help automating GUI tests.
While these approaches offer great value compared to manual testing, the real road to success could be in potential risk and raise the need to look at Test Automation strategically.
For example, awareness towards Unit testing which tests the lowest level unit of the product does exist, many frameworks exist and teams invest time in writing unit tests. While the quality is relative, there are other tools like Sonar could help injecting thoughts around continuous inspection and emphasis on continuous quality inspection vs one time quality audit. In reality, knowingly/unknowingly many teams extend their unit tests to be functional tests and suffer from side effects.
On top of Unit tests, many teams just right into GUI automations. There are zillion tools out there to help with record and replay, efficient techniques to spy the GUI, automatically spin up different browsers and run tests.
Pyramid becomes a cone..adding the manual test effort on top, it’ll look like an ice-cream cone
So, what do we do, how to get back to basics and align with the Pyramid.. First of all, Is the Pyramid important, meaningful, does one size fit for all? The book definitely offers answers for most of your questions. In my opinion, aligning to Pyramid will increase the ROI, reliability, trust and help hitting go to market timeline. Approaching test automation strategically is mission critical to gain the best of out of automation which could increase the possibility of delivering value to our customers.
Too heavy GUI automation might work initially. Over time, when product grows, functionalities gets changed for a business goal, GUI automation will require lot of attention, rework to make sure test failures make sense. Because these automations depend on the GUI, these tend to break when a simple change occurs on the GUI and needs careful coordination between team members to deliver value. industry standard GUI automation tools don’t offer the capability of automated detention and correction when something changes in GUI. GUI automation needs completed GUI and hence they always lag behind, sometimes, n-2 or 3 sprints behind the code. When automating functionalities lag behind, late feedback to the development team is a biggest challenge. Another critical side effect could be that end-end test is at great risk, below picture says the rest.