Over the last decade “Agile Development” has been a widely practiced methodology amongst software companies. It increases collaboration with customers and management team with the technical team. It helps to build the right product and makes software delivery very fast. In this blog post, I will explain why “Test Automation” is an integral part of “Agile Development”.
In an agile environment due to frequent deployments, testers get very less time to do regression testing. As we complete more and more iterations testing efforts also increase. Testing may become a bottleneck if we have the large number of test cases to be executed before deployment. Straight away we can perform all tests manually, but it is not time and cost effective. The flip side, we can do deployment without performing regression testing, but this does not give confidence, quality code and increase the business risk. The situation becomes worse when multiple agile teams do development in parallel to achieve the same goal.To quickly perform regression testing and get faster feedback Test Automation is the only solution.
In agile, multiple team works in parallel to develop system components. We can not wait for all the components to be developed and integrated together then start testing. It will be very expensive to fix the bug at this stage. We need quick feedback as it developed without waiting for other components to be ready.
Comparison of Traditional Test approach over Agile Testing.
In the diagram, It is clearly shown the disadvantages of the performing tests at the end. Now the question comes why not manual tests, performing in parallel can solve the problem?
Here is the answer, Firstly manual testers has the mindset of more on the usability front rather than at system architectural or component level. Let’s even consider tester possess those skills, however, we need to perform such testing at a very fast pace and repetitively. Performing such task manually is not cost and time effective.Humans are more prone to error. Automation can perform the scenarios which manual testing can not for e.g. simulation of thousand users interacting over a network. We can find concurrency, network latency type of issues.
The conclusion is that for hustle free continuous delivery, automation testing is the key. My suggestion for small or mid-size organizations is to start with little investment on robust automation testing.