Gone are the days when the testers worked in silos – banished behind the closed doors of supposed test labs, where the phone and email are the only means of communication with the rest of the BA and development world. There has been a drastic shift in the role and responsibilities of testers in the Agile space from being the last team to be engaged to early involvement – sometimes as early as the Concept or Discovery phase of a project.
Testers no longer simply test; they need to wear different hats and juggle different roles during the course of the iterative project life cycle.
Different roles that a tester can perform
From my experience in a company which did Agile really well, I have witnessed the following roles being performed by Agile testers:
Business Analyst (BA): Let’s take the example of a Waterfall project. The project kicks off and BAs get involved in eliciting requirements and drafting the Requirement specifications based on their analysis. These specifications are passed down to the Test team and form the basis of test design. The Test team review the specifications, seek clarification from BAs if required and continue scripting and executing the tests.
Now let’s switch to an Agile project. The initial sprint commences, then the BAs get involved in capturing user stories and involving testers for review and feedback. The Agile testers play an important role in ensuring the thoroughness of Acceptance Criteria of a story, which unlike the Requirement specifications, covers both positive and negative scenarios. Together, the BAs and testers refine the user stories before development is kicked off. The benefit of a tester jumping into the role of a BA not only provides thorough user stories with all scenarios documented, but potentially reduces defects and back-and-forth between development and test teams.
Agile testers have more hands-on knowledge of the project and can be ideal candidates to showcase developed functionality to stakeholders, which would be something done by the BA in a more traditional project environment. The value add of this approach is that the tester, having tested all possible flows of the application, can present the functionality more thoroughly and promptly answer stakeholder questions not directly tied to the functionality developed. They can also talk about how they tested it and the coverage they were able to achieve.
User Experience (UX): UXers look at interactions of the end-users with the system and work on ways to improve it. Agile testers play an important role in incorporating quality early in the iterative life cycle by providing input to the designs based on their hands-on testing using different personas. Testers can review wireframes and designs, provide valuable feedback and identify potential usability and accessibility issues. Agile testers can act as a middleman between BAs and UXers to make sure that the requirements and designs align.
Developer: A functional Agile test practitioner has a basic understanding of the automated test and development framework, unlike functional testers working in the Waterfall methodology. Agile companies predominantly follow continuous integration and use Test Driven Development (TDD) or Behaviour Driven Development (BDD) whereby a suite of regression tests are automated. The Agile testers can provide input to the automation tests. They can continuously improve the test suite (both functional and automated) with every enhancement made to the code base. Pulling the code from the central repository, running the code and automation tests suite locally prior to major releases are some typical developer tasks that the tester can take ownership of. Functional testers with no technical experience can pair with developers and use their testing skills to establish stable candidate builds based on the check-ins made and functionality tested. Testers, when working with developers, can coach them on testing ensuring that they are thinking about testing earlier.
Scrum Master: Agile testers can assist the Scrum Masters in facilitating standups, retrospective, prioritisation and planning meetings. They can also liaise with Product Owners for testing-related tasks. In some cases, the tester may become the Scrum Master if they have enough knowledge of Scrum practices and are able to facilitate team activities.
Coordinator: As a Coordinator, an Agile tester can:
- coordinate releases to test environments and production (the tester has knowledge of the functionality and defects);
- coordinate dress rehearsals for production releases (as they know the deployment process and what to check post deployment); and
- coordinate and facilitate User Acceptance Testing (UAT) and training of stakeholders.
DevOps: Testers play an important role in the testing framework setup for DevOps. Testers can initiate the build process and validate that automated tests have successfully executed. In instances where the automated tests have not run successfully, they can do root cause analysis to identify if the potential cause of a build failure is code-related or environment-related and triage the issue accordingly.
Tester: Agile testers are involved in the delivery of the software from iteration 0. They help bring quality to the software initially by ensuring completeness of the stories. Then they make sure that stories are up to date and complete in terms of Acceptance Criteria and wireframes. They participate in all Agile rituals like story kick offs, where all team members (developer, tester, BA, UX, Scrum Master) discuss what needs to be implemented as part of the story and handovers. The team looks at what has actually been implemented and assesses if the story requirements have been achieved.
Testers perform exploratory testing and documentation of session sheets, regression testing, automation (if they have technical skills), smoke testing, etc. Testers manage defects by raising them in the Defect tracking tool or cards and retest the fix once provided and retest the fix once provided. They also help the stakeholders perform UAT, in which testers educate them on testing principles which includes creation of test artefacts and their execution. They also facilitate defect triage and ensure all high priority/severity defects are fixed, which gives confidence to the business before deployment.
A tester’s role is no longer limited to testing in Agile teams, but is about wearing different hats and juggling different roles. Testers have great opportunities to upskill; to be more technical, have more analytical skill and learn new techniques. Planit provides training courses across a whole range of disciplines which can advance tester’s skillsets not only in testing, but also in Agile and Business Analysis.