By Megha Kuchroo on Jun 10, 2016 5:39:15 AM
Quality Assurance & Software testing over the years has mostly been treated as an isolated function in project development. However, in agile methodology, testing is an integral part of the software or system development lifecycle.
Agile methodology involves continuous iterations of both the development and software testing activities for a project. It requires the involvement of all the developers working on a project to work in parallel with the testing team, to ensure that the business requirements of the customer are met on schedule.
Among teams that do not adhere to the agile manifesto, the role of the tester is limited to writing test cases, executing them, logging the defects and verifying them. But in agile methodology the tester works as a part of the development team and ensures that software quality assurance is built into the end product by working closely with the development team.
With the agile methodology gaining popularity, system testing or application testing as a process, has transformed and testers today play a key role in the overall project development process. This requires testers to not only have strong testing skills but also good domain knowledge. Testing engineers, therefore, need to get adjusted to this new test strategy of rapidly changing requirements.
Key attributes of testers working on an Agile model are as follows:
Testers need to do a lot more than just building test cases:
The testers in the traditional waterfall model are involved at the end of the project when the coding is complete when the QA is expected to execute the test cases to verify if the built features match the requirements or not.
But in the Agile model the QA adds more value to the project. Her role is not just restricted to the building and execution of the test cases but works closely with the developers, BA, Product Owner and so forth. In this scenario, the QA can write acceptance test cases for the Product Owner and work and interact with the Product Owner in order to ask questions and clarifications regarding the business requirements.
Testers need to collaborate and coordinate with the developers and the end customer:
In Agile model the QA tester needs to continuously provide the testing feedback to the customer and in turn collect feedback from them after each sprint. Agile testers need to look from different perspectives i.e. end user, business, developer, support and in order to achieve this, the quality assurance needs to coordinate with all of them. In some cases the QA tester works as the Proxy Product Owner too to help them to develop the acceptance criteria for their user stories.
In the Agile model, developers and testers at times collaborate to write test cases as the acceptance criteria. The coordination among the team especially quality assurance and developers reduces doubts and ensures that all are on the same page. Also it saves the coding time of developers.
Testers need to have automation testing skills:
It is always an add-on if a tester knows about automation testing tools. Testers with automation skills can help prepare the test scripts and test plans for better coverage which helps in an agile project with a sprint of 2-4 weeks. Automation also helps during the regression testing of the project by providing quick feedback.
Every time a new build is given for testing the QA can run the automation scripts and provide rapid feedback on whether the new features as well as the old features are working correctly or not.
Testers help in estimation:
The QA always writes the test cases/scenarios for an application which covers both the happy path and unhappy paths. This helps for accurate estimation of user stories based on the clarity they have after identifying the positive and negative flows.
Testers needs to participate in demos:
After the completion of each sprint, a demo is given to the customer and other stakeholders of all the features completed in that sprint. As we know, a typical sprint lasts for 2-4 weeks and in such a short span all the people involved are busy in completing their own things; the developers are busy in developing the assigned user stories and the QA is busy testing the released items, clarifying the questions from Product Owners and automating the same. In such a short span the developers sometimes find it difficult to finish the complete functionality of the assigned user stories. So the developers sometimes consult the QA as they have a better understanding of the application. Hence it would be a good practice if the demo to the client is carried out by the QA and thereafter quality assurance can answer all the business related questions coming from the client. This way the developers can take care of technical queries from the customer.
Testers need to analyze the requirements:
The QA in the Agile model, is in a good position, after the BA to analyze requirements because the application is always used by the QA from the end user’s point of view. Hence the QA helps the customer by providing them timely feedback based on their testing experiences.
The QA should be a part of all the retrospectives and review meetings to contribute to overall process improvement and requirement understanding.
To summarize, the QA is an important and integral part of the team who is involved in all phases of the software development cycle. To put it in the right perspective, testers do more than "Just Testing"!