QA Role in Agile, a guide/strategy for QA professionals to work in Agile environment

What is Agile Development?

Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle (Wikipedia).
Before the Agile methodology, methods of software development tended to be slow, bureaucratic and inconsistent. This created the need for a more adaptive method of software development.   A large number of IT project failures lead toward a new way of thinking and delivering the project:  IT teams around the world adapting the new ideas and getting them to work and deliver the success to their respective clients.
Agile methodologies encourage teamwork, self-organization, and accountability. Most agile development teams comprise 5-9 team members and a single customer representative. These teams normally work in a single open office to promote teamwork and cooperation. The following are few agile methods currently being used in the IT industry.

style="display: block;">
  • Scrum
  • Kanban
  • Agile Modeling
  • Agile Unified Process (AUP)
  • Agile Data Method
  • DSDM
  • Essential Unified Process (EssUP)
  • Extreme Programming (XP)
  • Feature Driven Development (FDD)
  • Getting Real
  • Open Unified Process (OpenUP)
  • Lean Software Developmen

In Agile there are two type type of test strategies

  • Out of Cycle
  • In Cycle

Out of Cycle

In this strategy, development is one sprint ahead of QA. For example development completed sprint/iteration1 and delivers to QA for testing and starts working on iteration2.

In Cycle

In this strategy , both development and QA are working in same iteration/sprints. Development is completing their tasks and QA is doing testing on the same iteration

QA Activities in Agile


The concept of multitasking and teamwork is very strong in Scrum, but there is not such a thing as ‘specialist in everything’ as people are always better in one area. Even if they know many other areas, they will never have time to do everything. Therefore, there are Developers and there are Testers.
In Scrum there is no separate phase of testing. Rather it is continuous development and testing. In Scrum, nobody is allowed to sit and wait for a delivery. Testers need to be an active member from the sprint’s start and everyone is expected to contribute.
The following are a few suggestions to a be good, proactive tester:
  • Find what requirements mean and discuss the understanding with the development team
  • Start to collect all information and learn. Capture the domain and analyze all the user stories
  • Conduct sessions when you feel there is any confusion. You should have clarity of the business and all user stories
  • Think like a QA, but behave and work like a Scrum Team member. Your  focus should always be on the quality of the product.
  • You should have the skills to know how to build a release and how to deploy the release.
  • Don’t consume much time on formal documentation like a Formal Test Plan or QA Plan.
  • Just prepare a simple Test Plan if all activities are planned in your project.
  • While developing test cases, always focus on business processes. Your test case must cover “Acceptance Criteria” of every user story.
  • Write Test Cases as fast you can, do not waste time on long elaborations / clarifications.
  • Reuse old Test Cases if possible, this can be part of a regression test
  • If daily (or personal) build is possible, start testing and probe the developed functions. If Dev. resource is not available to provide you build/release, do not wait. Build the release and start testing.
  • Make sure that for every task to be executed there is also Test Case to be written and executed.
  • Test coverage is important, so create a model
  • Remember that the sprint has an end time, so make all efforts to fulfill the time line.
Requirements Review
Participate in the planning meeting.
Analyze and clarify the requirements which are mentioned in user stories selected for the current sprint.
Review the user stories
Define in scope points
Define the out of scope points
Identify  Product risk /Issue
Initialize the test planning ( identify test types, test environment details, Automation feasibility)

Review Sprint Back log and all supporting documents
Add estimates for each divided tasks. Then add it to the final estimation of a user story.
Create Test Plan if required (Test levels, types, strategy ,entry exit criteria). Test plan is not necessary but it depends on your project nature if you want to create
Finalize the In Scope , out of Scope items
Create the test environment requirements and setup your test environment. Identify all test date and every thing you need in up coming phases
Divide the tasks for each user story.  For example:

    Test Case Preparation
    Test Case Execution
Define risks and mitigation plan
Define automation feasibility
Test Designing
Create Test Design document
Create Requirement Tractability Document some ALM have this feature in agile, so use those tools
Identify test conditions
Create detailed test cases. If you don't have enough time you can create abstract level test cases.
Do the peer review
Prioritize and Categorize you test cases into Smoke Test, Sanity Test, Integration Test, System Test, Shipment Assurance Test
Get review with team and approval on your test cases
Test Execution
Install received builds on your test environment
Create test execution plan, your main reference is your test plan.
Start execution of your test cases accordingly to the priority and categorization
Create and update your defect logs
Update your execution logs
Update the tractability matrices
Create quality metrics to measure the quality of release's
Manage your execution plan
Test Closure
Evaluate execution results
Evaluate exit criteria  you defined in your test plan
Evaluate Product risk /Issue
Create quality metrics to measure the quality of release
Prepare Test closure report
Review your deliverables
Create sign - of  certificate