With the increasing complexity of software development, more and more companies have started exploring the pros and cons of Agile, and how it can help them deliver software quickly and iteratively. In fact, the definition of Agile development says that it is centered on “delivering customer value product frequently, each time adding or enhancing a small feature”. As a result, this brings in a lot of challenges for every team member in an Agile team, especially testers.
In an Agile project, in contrast to the waterfall model, QA teams can’t wait for the software to get developed first before testing it. With Agile, testers need to be familiar with the requirements of the application and how it will be implemented by the developers. They are closely involved in each sprint and in all stages of software development.
- When the sprint starts, the QA team is involved in requirement analysis, and seeking clarifications on requirements from the client or the Product Owner.
- When developers start developing items for the sprint, the QA team prepares the scenarios to be tested and the test cases for the sprint items.
- Finally, the QA team tests the items for the sprint.
Challenges in QA for Agile Projects
Working as a QA person in an Agile team is challenging. I have handled QA for Agile projects for some time now, and faced the following challenges:
Changing requirementsLast minute changes in requirements are a very common scenario in an Agile project. But if requirements change towards the end of a sprint when there is no time left, it becomes an overhead.
One-line user stories
Absence of developer comments in a task/user story
Lack of communication
Frequent regression cycles
Agile becomes waterfall
How to Overcome These Challenges
Working in such a challenging position has taught me many lessons. Here’s how I overcame the challenges I was facing:
- No doubt the QA person in an Agile project needs to be able to respond to changing requirements, but there are few things that can be of great help. First, the QA person should perform risk analysis and test the highest priority functionalities first. Secondly, automation scripts can help in running regression tests to see if other areas of code are affected.
- QA people need all the minute details of each requirement to start testing. So, start with high level scenarios first, and then approach the test cases. Ask as much questions as you need to, and clear your doubts rather than waiting to get full clarification about the feature.
- In team retrospectives, communicate the importance of dev comments to all team members. If comments are still missing sometimes, keep reminding the developers. In this way, slowly it will become a habit for developers to assign tickets with comments to QA.
- Ensure effective communication with the team. Engage with developers and the product owner on a continuous basis.
- Automation skills can be a great help in an Agile project. Automating regression tests can save you a lot of time. Selenium is the most popular browser automation tool. Jmeter is another tool which is easy to learn.
It’s easy to see that being a QA person, especially in an Agile project, takes a lot of dedication and courage. What have your experiences been like? Share your learnings with us in the comments below.