by Muhammad Ramzan
Test Strategy for Scrum
In this section you will learn how to prepare a test strategy or perform testing in Scrum environment. The following are a few assumptions:
- Development Scrum consists of many sprints of 2 weeks each
- The software is a web-based with certain data in the database. The role of tester will include testing software in a “QA environment”, while developers are still doing unit tests in their environment.
- The QA Environment is closed to client staging environment. In some cases testing can be performed in Dev. environment as well.
- The build and deployment process may take up to 30-60 minutes.
- Build responsibility is of Dev. side but QA can also build the release in case if resources are not available.
- There two build process
- Manual Build
- Auto build, once per night (nightly build)
Using the assumptions above, I have divided a sprint into following segments from a QA perspective:
Day 1: Sprint Planning Day
On first day of a sprint, QA will be involved in the sprint planning meeting. Get knowledge of all user stories which are part of sprint. Ask questions if requirements are not clear. The following are main points which QA should focus on during the first day of a sprint.
- Participate in the planning meeting.
- Analyze and clarify the requirements which are mentioned in user stories selected for the current sprint.
- Divide the tasks for each user story. For example:
- Test Case Preparation
- Test Case Execution
- Add estimates for each divided tasks. Then add it to the final estimation of a user story.
- Prepare the test environment (this should also be added as a task in backlog as well).
- There may be some user stories which need more testing efforts and a few may have no detailed testing required. So estimate the tasks accordingly.
Day 2: Test Cases Development
The second day of a sprint should be spent developing test cases for all the selected user stories. Try to cover all user stories which are in scope of the current sprint. If all user stories coverage is not possible, then prioritize the user stories by discussing it with the development team. For example there are 15 user stories in the current sprint. Discuss with developers which user stories will be developed first. Try to cover the test cases for those user stories for which you will receive the first build. Since we are using the Exploratory Testing technique, during the whole sprint the test development and testing cycle will be executed. Try to peer review your test cases with Scrum Master or Product Owner.
Day 3 – 8: Development & Testing
Since development is started from Day1, there might be chances that on day 3 QA receives a release with developed user stories. Coordinate with the development team, and if they have developed a few user stories, ask them to provide you the release or simply build the release and install it on the QA environment.
The following should be the daily activities of QA during this period:
- Coordinate with the development team and decide the release pattern. Daily release or when a few user stories are developed.
- If you have not received a release , complete the test cases which were not completed in Day2
- If any user story is updated, update your test cases accordingly
- If the release process is automated every night, then every day QA will pick the release, deploy the release and then start testing
- If the release process is manual there may be three cases:
- If some team member completed user stories he/she will provide the build to QA. QA deploys the release and starts testing.
- If a single release which includes user stories is developed by development team, QA deploys the release and start testing.
- If the development team members are busy in development, QA coordinates with development team members if there are some newly developed or updated user stories Then they build the release on QA environment and start testing.
- When you start testing, first perform sanity test if the release is stable. If critical issues are found, coordinate with the development team to get fixes and perform testing.
- Try to complete the testing tasks as much as you can because on the last days of a sprint, there may be pressure on QA, (as many development team members will be developing user stories) and QA will receive many builds or a single build having vast implemented functionality.
- Report all bugs/defects which you found during development on time so that they can be fixed on time.
- During functional testing, also focus on bugs fixes. Follow-up the reported bugs and verify the bugs that are fixed.
- Participate in daily Scrum meetings.
Day 9: QA Day
The ideal scenario is that on Day9, no new development should be accomplished. Focus should be to close all issues and re-test bugs. QA should try to close all reported issues on this day.
- Try to close all open bugs.
- Perform regression testing.
- Go through the sprint backlog and note down the missed user stories for the retrospective meeting day.
- Discuss with development teams if bugs are still open.
Day 10: Retrospective Meeting
In order to demonstrate a feature in the retrospective meeting, it should be implemented, tested and all the bugs should either be fixed or assigned to the Product Owner for clarification (otherwise feature is postponed to next sprint). The tester should demonstrate that features meet acceptance criteria and demonstrate the issues assigned to the product owner (if any)
- Participate in retrospective meeting
- Discuss what is tested and what is not tested
- Explain the reason why few features are not tested
- Explain why all bugs are not closed
- Close all bugs or assign to Product Owner for next approval
- Discuss the next plan in meeting
In an ideal environment on retrospective meeting day, development and testing should be closed. However in some scenarios on the retrospective meeting day we closed many items. So be prepared for such scenarios. In this case, before of the end of the business day of the retrospective meeting, you should close all items and a deliverable package should be available that can be pushed to client environment for UAT.