The Agile Tester is who understands the values and principles of Agile project, who is an integral part of the “Power of Tree” whole team approach and, who communicates early and frequently to remove defects and develop a quality product.
To understand what Agile Tester is, we must understand the Agile Manifesto first. The Agile Manifesto has basically 4 concepts:
- Individuals and Interactions over Process and Tools
- Working software over Comprehensive Documentation
- Customer Collaboration over Contract Negotiation
- Responding to change over Following a plan
So, how does a Tester fit in an Agile Team?
In order to deliver a quality product, the Agile Tester must work closely to Developers and Business Representatives, collaborate and support business representatives to create acceptance test and, decide the test automation projects that will fit perfectly into the Agile Team.
Now, let’s look at the main differences between a Traditional model (waterfall) and Agile Testing model.
Testing & Development Activities
When we compare to a waterfall project, in the Agile testing we got:
- Short Iterations
- Deliver features of value to business stakeholders
- Testing activity occurs throughout the iteration
- Changes may occur throughout the project
- The “Power of Tree” has a role in testing: Developers must run unit testing, the testers must feature testing and automated integration testing and, the Business Stakeholders must run features testing and provide feedback to the team.
Project Work Products
- Avoid too many documentation
- Focus on working software with automation tests that show the requirement
- Teams make decisions during release planning for the required work product documentation
- A Business work product will be: User Stories & Acceptance criteria
- A Developer work product will be: Code & Unit Tests
- A Tester work product will be: Automated Tests, Test Plans, Quality Risk Catalogue, Manual tests, Defect reports & Test Results
These are basically the activities that the Agile Tester performs.
- Test activities logically related to the item under test
- Test activities overlap as changes occur throughout the iteration
- Parallel Regression Testing with Unit Testing, Automated Verification Testing & Validation Testing occur sequentially throughout the iteration.
Testing and Configuration Management
- Automated tools are used to Develop, test and manage software development.
- Configuration Management tools are used to automate builds, run a static analysis, unit test, code coverage, automated functional test repeatedly.
Organisations options for Independent Testing: Independent Testers are much more efficient in terms of Agile Team to find effective bugs.
There are 3 options of Independent Testing:
Option 1: Developers are testers – The developer writes his own code, he writes his own unit test and he also made the automation tests
Option 2: Fully independent test team – At the end of the sprint or at the end of the iteration, the testing team acts and test the features.
Option 3: Independent test team as part of the Agile Team
In terms of Agile, we really need constantly collaboration and communication between teams, so option 3 would be the ideal one.
Status of Testing in Agile
In order to achieve a successful iteration by the end of each sprint, we must communicate to the team the test status, the progress and the product quality.
We communicate the status by doing the Daily Standups, where we should talk about the automation tests results, check the progression of tasks (e.g. testing tasks, depth tasks) and update the Kanban Board (In progress, Doing and Done). On the Daily Standups, we also check the Burndown chart, which allows us to see if we will be able to deliver the tasks on time and finally, some companies also perform a Customer Satisfaction Feedback Surveys.
As the code change and is daily updated (Extensive code churn), the Agile Tester must manage regression risk with evolving Manual and automated test cases in order to maintain velocity and reduce technical depth. The Agile Tester will update unit, automated and manual tests and perform accurate test data.
The more the company adopt an Agile Mindset, the more the company will demand certain skills and capabilities for Agile Testers. An Agile Tester must be able to code, as well as write test cases and perform tests manually.
Let’s have a look in the skills required to perform well as an Agile Tester
Skills of an Agile Tester:
- Be positive and solution-oriented with team members & stakeholders
- Display critical, quality-oriented, skeptical thinking about the product
- Actively acquire information from stakeholders
- Accurately evaluate and report test results, test progress, and product quality
- Work effectively to define testable user stories, especially acceptance criteria, with customer representatives & stakeholders
- Collaborate within the team, working in pairs with programmers and other team members
- Respond to change quickly, including changing, adding, or improving test cases
- Plan and organize their own work
The Agile Tester differentiates itself from a normal tester, by being able to perform different roles in the organization.
Roles of an Agile Tester:
- Understand, implement, and update Test strategy
- Measure & report test coverage across all applicable coverage dimensions
- Ensuring proper use of testing tools
- Configure, use, and manage test environments and test data
- Report defects and working with the team to resolve them
- Coach other team members in relevant aspects of testing
- Ensure the appropriate testing tasks are scheduled during release and iteration planning
- Actively collaborate with developers & business stakeholders to clarify requirements, especially in terms of testability, consistency, and completeness
- Participate proactively in team retrospectives, suggesting and implementing improvements