Agile Development is team-centric and developers and testers take part in all the project and development activities. The Teamwork maximizes success of testing in Agile projects.
A Tester in Agile team has to participate and contribute to all the project activities and at the same time has to leverage the expertise in testing.
An Agile tester should have traditional testing skills. In addition, Agile tester needs β
- Good interpersonal skills.
- Ability to act positive and solution-oriented with team members and stakeholders.
- Ability to display critical, quality-oriented, skeptical thinking about the product.
- Aptitude to be pro-active to actively acquire information from the stakeholders.
- Skills to work effectively with customers and stakeholders in defining testable User Stories, the Acceptance Criteria.
- Talent to be a good team member working with developers in producing quality code.
- Usability of testing skills to have the right test cases at the right time and at the right level and executing them well within the duration of the sprint.
- Ability to evaluate and report test results, test progress and the product quality.
- Openness to respond to changes quickly, including changing, adding or improving test cases.
- Potential to self-organize work.
- Enthusiasm to continuous skill growth.
- Competency in Test Automation, Test-driven Development (TDD), Acceptance Test-driven Development (ATDD), Behavior Driven Development (BDD) and experience based Testing.
Role of Tester in Agile Team
Tester in Agile Team participates in all the project and development activities to contribute the best of the testing expertise.
Agile Tester Activities include β
- Ensuring proper use of testing tools.
- Configuring, using and managing the test environments and the test data.
- Mentoring other team members in relevant aspects of testing.
- Ensuring that appropriate testing tasks are scheduled during the release and sprint planning.
- Understanding, implementing and updating test strategy.
- Collaborating with developers, customer and stakeholders in clarifying requirements, in terms of testability, consistency and completeness.
- Performing the right tests at the right time and at right test levels.
- Reporting defects and working with the team in resolving them.
- Measuring and reporting test coverage across all applicable coverage dimensions.
- Participating in sprint retrospectives, proactively suggesting and implementing improvements.
In the Agile Lifecycle, a tester plays a significant Role in β
- Teamwork
- Test Planning
- Sprint Zero
- Integration
- Agile Testing Practices
Teamwork
In Agile Development, teamwork is fundamental and hence requires the following β
- Collaborative Approach β Working with cross-functional team members on Test Strategy, Test Planning, Test Specification, Test Execution, Test Evaluation, and Test Results Reporting. Contributing the testing expertise in conjunction with other team activities.
- Self-organizing β Planning and organizing well within the sprints to achieve the targets of testing by amalgamating expertise from other team members as well.
- Empowerment β Making appropriate technical decisions in achieving the teamβs goals.
- Commitment β Committing to understanding and evaluating the productβs behavior and characteristics as required by the customers and stakeholders.
- Transparent β Open, Communicating and Accountable.
- Credibility β Ensuring the credibility of the test strategy, its implementation, and execution. Keeping the customers and stakeholders informed on the test strategy.
- Open to Feedback β Participating in sprint retrospectives to learn from both successes and failures. Seeking customer feedback and acting quickly and appropriately to ensure quality deliverables.
- Resilient β Responding to changes.
Test Planning
Test Planning should start during the release planning and update during each sprint. Test planning should cover the following tasks β
- Defining test scope, extent of testing, test and sprint goals.
- Deciding on the test environment, test tools, test data and configurations.
- Assigning testing of features and characteristics.
- Scheduling test tasks and defining frequency of tests.
- Identifying test methods, techniques, tools and test data.
- Ascertaining prerequisites such as predecessor tasks, expertise and training.
- Identifying dependencies such as functions, code, system components, vendor, technology, tools, activities, tasks, teams, test types, test levels and constraints.
- Setting priorities considering the customer/user importance and dependencies.
- Arriving at the time duration and effort required to test.
- Identifying tasks at each sprint planning.
Sprint Zero
Sprint Zero involves preparation activities before the first sprint. A tester needs to collaborate with the team on the following activities β
- Identifying scope
- Dividing user stories into sprints
- Creating system architecture
- Planning, acquiring and installing tools (including testing tools)
- Creating the initial test strategy for all the test levels
- Defining test metrics
- Specifying the acceptance criteria, also called the definition of βDoneβ
- Defining exit criteria
- Creating Scrum board
- Setting the direction for testing throughout the sprints
Integration
In Agile, a quality working product should be ready for release at any point of time in the development lifecycle. This implies continuous integration as a part of development. An Agile tester needs to support continuous integration with continuous testing.
To accomplish this, a tester needs to β
- Understand the integration strategy.
- Identify all dependencies between functions and features.
Agile Testing Practices
An Agile tester needs to adapt Agile practices for testing in an agile project.
- Pairing β Two team members work together at the same keyboard. As one of them tests, the other reviews/analyzes testing. The two team members can be
- One tester and one developer
- One tester and one business analyst
- Two testers
- Incremental Test Design β Test cases are built from user stories, starting with simple tests and moving to more complex tests.
- Mind Mapping β A mind map is a diagram to organize the information visually. Mind mapping can be used as an effective tool in Agile testing, using which information regarding the necessary test sessions, test strategies and test data can be organized.