In this article, I (J.B.Rajkumar) have shared my experience about Implementing Automated Regression Testing in the Agile Environment.
Recently, when I wanted to start my new Automated Testing Project with four resources, I thought of applying any one of the Agile methodologies. But I was not able to continue because a series of questions were raised in my mind.
The questions are like “Is it possible to use Agile methodologies in Automated Testing?”, “Can I use traditional tools”, “Should I have to go for open-source tools”, “What are the challenges I have to face if I am implementing automation in the Agile Environment”. In this article let us analyze some of the challenges we face while implementing Automation with Agile methodologies. Automated testing in the Agile environment stands as a risk of becoming chaotic, unstructured and uncontrolled.
What You Will Learn:
Agile Projects present their own challenges to the Automation team. Agile methodology emphasizes on team collaboration and frequent delivery of a product. Factors like unclear project scope, Multiple iterations, Minimal documentation, early and frequent Automation needs and active stakeholder involvement, etc., demand a lot of challenges from the Automation Team.
There are several Agile challenges to the Automation team. However, few of them are briefed below.
Test Automation developer captures the requirements in the form of “user stories”, which are brief descriptions of the customer-relevant functionality.
Each requirement has to be prioritized as follows:
High: These are mission-critical requirements that absolutely needs to be done in the first release
Medium: These are the requirements that are important, but can be worked around until implemented.
Low: These are the requirements that are nice-to-have but not critical to the operation of the software.
Once priories are established, the release “iterations” are planned. Normally, each Agile release iteration takes between 1 to 3 months to deliver. Customer/software folks take the liberty to make too many changes to the requirements. Sometimes, these changes are so volatile, that the iterations are bumped off. These changes are greater challenges in implementing Agile Automation testing process.
Traditional, test-last tools with record-and-playback-features force teams to wait until after the software is done. Moreover, traditional test automation tools don’t work for an Agile context because they solve traditional problems which are different from the challenges facing Agile Automation teams.
Automation in the early stages of an agile project is usually very tough, but as the system grows and evolves, some aspects settle and it becomes appropriate to deploy automation. So the choice of testing tools becomes critical for reaping the efficiency and quality benefits of agile.
Automation testers, developers, business analysts and project stakeholders altogether contribute to kick-off meetings where “user-stories” are selected to the next sprint. Once the “user-stories” are selected for the sprint, they are used as the basis for a set of tests.
As the functionality grows with each iteration, regression testing must be performed to ensure that existing functionality has not been impacted by the introduction of new functionality in each iteration cycle. The scale of the regression testing grows with each sprint and ensures that this remains as a manageable task and the test team uses the test automation for the regression suite.
The Agile approach requires a mixture of testing skills, that is, test resource will be required to define unclear scenarios and test cases, conduct manual testing alongside developers, write automated regression tests and execute the automated regression packages. As the project progresses, specialist skills will also be required to cover further test areas that might include integration and performance testing.
There should be an appropriate mix of domain specialists who plan and gather the requirements. The challenging part in the Resource management is to find out test resources with multiple skills and allocate them.
Good communication must exist among Automation testing team, developers, business analysts and stakeholders. There must be the highly collaborative interaction between client and the delivery teams. More client involvement implies more suggestions or changes from the client. And it implies more bandwidth for communication.
The key challenge is that the process should be able to capture and effectively implement all the changes and the data integrity needs to be retained. In traditional testing, developers and testers are like oil and water, but in an agile environment, the challenging task is that they both must work together to achieve the target.
Daily Scrum Meeting is one of the key activities in the Agile Process. Teams do meet for 15 minutes stand up sessions. What is the effectiveness of these meetings? How far these meetings help Automation practice Developers? etc., are discussed in this meeting.
The aim of the Agile project is to deliver a basic working product as quickly as possible and then to go through a process of continual improvement. This means that there is no single release phase for a product. The challenging part lies in integration testing and acceptance testing of the product.
If we can meet these challenges in a well-optimized manner, then Automated Regression Testing in the Agile environment is an excellent opportunity for the QA to take up leadership of the agile processes. It is better placed to bridge the gap between the users and developers, understand what is required, how it can be achieved and how it can be assured prior to deployment.
Automation practice should have a vested interest in both, the result, as well as continuing to assure that the whole evolving system meets business objectives and is fit for the purpose.
About the Author:
J.B.Rajkumar has more than 15 years of experience in both Academics and Software Testing. He has worked as a Corporate Trainer, Test Lead, QA Manager and QC Manager. He is a frequent speaker for International Conferences, Colleges, Universities and Software Industries. Presently he is with Automation Practice, in one of the top MNCs.
Let us know your comments/suggestions about this article.