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.
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 −
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 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 involves preparation activities before the first sprint. A tester needs to collaborate with the team on the following activities −
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 −
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.