Using automation to overcome Agile testing challenges


Using automation to overcome Agile testing challenges

Organizations globally are adopting the Agile development methodology for enhanced collaboration and faster delivery. Agile is a set of software development principles that lays emphasis on individuals over processes and tools, working software over documentation, collaboration over contracts and responding to change over following the plan. Through Agile, organizations can collaborate with their customers by delivering live and working software to them. Despite its benefits, embracing Agile in the Testing practice is not an easy task and fraught with challenges.

Challenges in adopting Agile in Testing

While selecting appropriate tools that are usable as well as flexible is an issue, encouraging the entire team to contribute towards the tests is another problem. Enabling open-source integration and promoting test-driven development are some of the other concern areas in Agile testing.

Agile also brings with itself a few technical problems like difficulties on account of distributed teams and obstacles faced by individual testers within the Agile team. In the case of Agile development methodology, it often becomes tough to keep track of the number and speed of changes in user stories, requirements or the code.

Another issue with Agile is frequently changing requirements. Due to this, the code is refactored quite often.  Agile testing can be further bogged down by the fact that the testing team has to continuously collaborate with other cross-functional and geographically scattered teams.

How Test Automation can help

Test Automation can help organizations resolve the challenges associated with Agile testing.  Test Automation ensures that the application is and continues to be in a good shape with each new sprint. It encourages the Agile development team to collaborate with the testing team, seeing it as a  partner, rather than as Quality Police. Running the tests over and over again gives the development team an assurance that the new code, which was added to the system, does not break or destabilize anything.  It also certifies that the system is working and the new code is doing what it is supposed to do. As Agile teams need to test continuously, Test Automation provides the required speed, and helps ascertain that the feature implemented during a given iteration or sprint is actually deployed.

Think, before starting

Overall, Test Automation is useful in addressing and fulfilling critical testing demands and essential for Agile projects due to their need for frequent regression testing. At the same time, while Test Automation may be needed, just deploying an automation tool is not the solution for an organization.  What companies also need is a proven automation testing strategy and a skilled test team. This involves designing an effective automation solution that supports quicker maintenance, faster ramp-up time and distributed ownership.

Do look at Jim’s comments to complete reading

7 thoughts on “Using automation to overcome Agile testing challenges

  1. Vipul,
    Regarding “test automation” in agile there are some things you forgot to mention or really emphasize. The type and level of automation can be important. Unit Test harnesses are the automation strategy & tool of choice for TDD. As part of this it requires the Developers to “bake in” the automation and to maintain it for Regression style tests during build & refactoring. BUT, they have to want to put it in place and maintain it. That is the key, Test/QA can recommend it but they cannot enforce it. Also, you cannot automate new functionality at higher levels until it is somewhat stable. Unit Tests allow them (Developers) to do some upfront automation during initial coding, but they need to use TDD (build test first and write code to pass test) methods to get any headway on that. In this respect this is where Test/QA can help development in focusing on what to automate and the types of tests to put in place for Unit Test. It can’t all be happy path/Pass only, there needs to be Negative/Fail condition tests too to make sure the code is robust.
    Finally, don’t look at automation as being for ‘speed’. That is a by product of using a machine. It needs to be looked at as the method to create a reliable and reproduceable test method so that troubleshooting errors can be focused on the code itself. Automation for automations sake is a bad plan. It is a tool only, and not the end all solution. That needs to be emphasized. It’s automation, not automagic.

    Jim Hazen

    Like

    1. Jim,

      I totally agree with the last line that you mentioned “It’s automation, not automagic”. Though I have added the last section with the same intent, but your comment clarifies it more 🙂

      Regards
      Vips

      Like

  2. Great! Thank you for sharing this post related to automated software testing on agile. I understand that Software test autoamtion is in great demand however, the need for manul testing giving it a human touch will always be there.

    Like

    1. Thanks for your comments. I am not sure if you it was misinterpreted, but I never mentioned in my article that test automation will take over manual testing. Test automation can be used as an addendum so that Testers can focus on testing.

      Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.