What is Agile Testing?
Increase in test case count every sprint, waiting for developers to complete the task to start testing, unable to achieve the benefits of automation and the results are likely that it’s time to switch to Agile Testing. Many of us have the same question in mind about “What is Agile Testing?”.
Agile doesn’t exactly say that what Testers and testing must do in Agile Software Development. Keeping Agile principles in mind, we need to understand that keeping Testing as one of the phases in software development doesn’t bring Agility. Testing is considered as an activity and not a phase in Agile software development practices. Just like coding, testing is just an activity to ensure quality in the product.
Test cases are magic beans, isn’t it?
Test cases are becoming an increasing risk in maintenance with the exponential pile up in sprint after sprint. It’s like sowing a magic bean and watching it rising sky high and couldn’t do anything about it. With increasing amount of test cases in the product, regression testing becomes a night mare without much automation to support. Agile testing advocates testing the behaviour of the product than spending time in writing test cases and maintaining it. Specification by example is a powerful way of testing the behaviour of the product features by automating what is necessary.
The automation pyramid clearly states that we need to spend more effort in automating the unit level, service level, Component level and integration tests than spending time on UI testing. Many of the traditional automation methods still focuses on UI automation than the service level automation. Writing down examples in agreement with business personnel and automating them even before development complete is an efficient mechanism of building Quality inside the product.
Specification by example
Behavior driven development aka BDD is an efficient way to test the functionality of the product without worrying much on the user interface. Automation is done for the specific feature and its Behavior rather than the complete UI/functional flow. Automating everything up front helps in saving time for other types of testing like exploratory testing and non-functional testing. BDD helps you eliminating more documents related to testing, even test cases. Specification by example is also called as living documentation because the examples and automation code are glued together. Updating the examples with behavioural changes needs changes in automation code as well. So, at any point of time, the key examples and the automation code will always be in sync and hence living documentation.
There are variety of testing types available and there is more non-functional testing to be done. As much as quality should be ingrained on to the product, all these testing needs to be done in a very limited timeframe. The Agile test quadrant explains what type of testing is technical, functional, helps team, helps business, when to do what, which type of testing should be automated, which type of testing should be done manually, which type of testing uses tools etc.