Agile Testing
Agile Way of Working (WoW) delivers reliable and quicker results with working software. In fast paced agile environment, an important attribute which defines success of the working software is its Quality. To achieve the quality, QA function in Agile Development has to align to Agile way of working and thinking.
Testers who have worked previously in traditional software development life cycle like iterative or waterfall sometime do not quickly adjust to the Agile WoW. They try to use the best practices used in non-agile projects into Agile project and end up in causing problems to themselves and to the Agile project team.
QA in traditional non-agile project involves good processes and have resulted in successful outcomes. Agile manifesto says that Individual and Interactions over Processes and Tools. So, QA in Agile terms should be means as Quality Assistance above Quality Assurance.
Quality Assistance in Agile project means that tester is responsible to ensure that entire Agile team is focus towards quality. Contrary to traditional non-agile projects where tester are treated as only person responsible for quality, in agile projects tester is responsible to make the Agile team responsible for the quality. This does not mean tester is delegating this work to the agile team but a quality guardian.
In agile methodology (Scrum), a scrum team will have only three roles:
-
Product Owner
-
Scrum Master
-
Scrum Team
Tester is part of Scrum Team. Any role in scrum team is responsible to achieve Sprint goals. In this process, they might have to take up each other team member's responsibility (after they completed their designated task). So, tester will have the opportunity to contribute in development or supporting in Scrum Master activities.
Some of the qualities that tester should have in order to be successful as Agile Tester

Communication​
In Agile WoW, the importance of documentation is not same as in traditional non-agile project. This sometimes limits tester to present his views or work in detailed documentation. So, ability of communicate orally at different levels is very important. Also, skills to write precise and clear information in different forum like email, wiki, defect summary etc. is essential. There is very no scope of losing time due to unclear communication in short sprints. So, tester should learn to communicate to the context and based on who the listener is. Scrum team will start valuing tester when information is shared at right time.
Collaboration with team​​
Tester should work closely with entire scrum team. Tester should be capable to work in a team or individually based on the situation.
Tester can take up supportive Scrum master role whenever opportunity or need occurs. Some scrum teams are small and scrum Master will be additional role along with their actual role (Architect or developer etc.). In such situation, sometimes scrum master might not have time do all the scrum master activities. Here, tester can contribute by supporting scrum master in his activities (after tester has met his sprint goal)
Tester also should be able to create a bond with the entire team and assist the team in achieving quality as team.
Release planner​
Agile tester should contribute for Release planning. If Release to production targeted in a sprint, tester should consolidate the list of User Stories that are ready for release and the required testing to be done. He should coordinate with Configuration manager (CM) to merge the ready of release user stories in pre-production environment for final verification. He can run the automation test suite to find any regression issues.
During verification, he can assist entire scrum team to verify the changes. Tester can prepare a sanity test that should be performed on release code and segregate it to the scrum team to perform the verification. Tester will do overall verification during this time. In this way, Agile tester can be a quality assistant to the entire scrum team.
Automation skills​
How can a tester embrace change if he is doing very manually. One of the great asset that Agile tester should have is to use automation skills. Automation does not means only functional automation of application under test but any process that reduces manual effort for repetitive activities and saves times. This saved time should be used to focus high risk or priority area.
Ability to think and identify repetitive activity which tester does or other team member does is the first quality required in automation. Second is the ability to use technology which is cost effective to automate these activities.
Tester should be able or try to use the same technology what developer are using while setting up test automation framework. This will allow the developer to share their comment on the test automation suite and also they can contribute to test automation if the tester does not have time to work on test automation in a sprint.
Tester should understand the importance of Continuous integration (CI) and should be able to contribute in make the CI effective. One way is the create automation suite and integrated with build automation. This will save time by identifying major defect early.
Quick learner​
Tester should be able to learn technology and process quickly. He should be able to adapt to new ways of working, if required.
Contribution in Sprint Planning​
Tester should actively participate Sprint planning. Tester should be very keen to understand the COS (Condition of Satisfied) of the user stories and inform the impact of the user stories to the entire software and estimate the effort for the Regression Tests. He should be able to suggest to the COS.
For this to happen, tester has to understand the business and constantly interact with Product owner to understand current business and upcoming business.
Agile testing is sometimes challenging but will always leave you satisfied at the end.