Introduction to Scrum and Testing in Scrum
Nowadays more and more engineers become interested in agile software development methodologies, such as Extreme Programming (XP), Scrum, Adaptive Software Development and Test-Driven Development. So this article introduces the basic concepts of the Scrum, the scrum process and testing work in scrum process.
What is Scrum?
Scrum is an iterative, incremental process for developing any product or managing any work. It produces a potentially shippable set of functionality at the end of every iteration. Its attributes are:
· An agile process to manage and control development work.
· A wrapper for existing engineering practices.
· A team-based approach to iteratively, incrementally develop systems and products when requirements are rapidly changing
· A process that controls the chaos of conflicting interests and needs.
· A way to improve communications and maximize co-operation.
· A way to detect and cause the removal of anything that gets in the way of developing and delivering products.
· A way to maximize productivity.
· Be scalable from single projects to entire organizations. Scrum has controlled and organized development and implementation for multiple interrelated products and projects with over a thousand developers and implementers.
· A way for everyone to feel good about their job, their contributions, and that they have done the very best they possibly could.
Basic Concept of the Scrum Process
Before introduce the detail scrum process, three definitions and rules need to be demonstrated.
Three Definitions and Rules
a) Backlog
Backlog is a prioritized list of all work to be completed prior to releasing a product. Only one person maintains and prioritizes the backlog list. Any interested party can request that backlog be put on the list.
b) Sprint
Sprint is a short burst of work lasting approximately 30 days or two weeks during which an executable and other deliverables are built by an engineering team. Every sprint has a specific goal. Once the sprint is underway, new backlog cannot be added to the sprint except Scrum Master added it.
c) Scrum Meetings
Scrum Meeting is a short daily one where every member the team shares status. The meetings don’t last for more than 30 minutes. A scrum master is host. The scrum master is responsible for asking every team member the following three questions:
· What have you done since the last scrum meeting?
· What has impeded your work?
· What do you plan on doing between now and the next scrum meeting?
Scrum Process
How do we apply the scrum process? The following picture is used to demonstrate the detail steps in the scrum process:
Steps:
1) Build the scrum team according to the project’s requirement. The Scrum Master is appointed. Scrum Master conducts the scrum meetings, measures progress, makes decisions, and have the right to slow or stop working.
2) Every team member identifies the all kinds of requirement item as the backlogs. The known tasks will be listed to be done. Only one person will be in charge of the backlog prioritization.
3) Launch the first sprint and have the sprint planning meeting. In this sprint meeting, all members are discussed the sprint goal, sprint backlogs, lasted time and demo date.
4) Sprint begins to run and daily scrum meeting will be held. And every team member will report their daily status.
5) The functionality of the product in this sprint will be finished and get the sprint release’s requirement. And the sprint demo or review meeting will be held and scrum master will demo the finished feature of this sprint. Importantly, Product owner will decide whether the application functionality is acceptable.
6) Repeat from the Step3 to Step5 until all features of the product are finished.
Figure_1 Scrum Process
QA Role in the Scrum
Tester in the Scrum Team is not only a team member but also a sign off guy. Sometimes developers often say something is done when it really isn’t. But how does QAs know something is done? First of all, he should test it. Of course, he tests it. Once QA has tested the feature, he should go through the “done” checklist (if you have one) with the developer. Even if the QA in the scrum team did manual acceptance within the sprint, you would still need a team to test the final release, which is the integrated build of both team’s work.
Figure_2 QA role in the Scrum Team
How to test in the Scrum Process?
According to the sprint backlogs, QA will make a testing plan for these backlogs. And then QA will also make some criteria to validate whether the quality of these backlogs is satisfied to the customer’s requirement and sprint goal. Every day QAs will write some test procedures and execute all kinds of testing works, such as installing/uninstalling the applications, UI, Function and Workflow testing. If QA find the Issues, they will log them to defeat management system as quickly as possible. In the daily scrum meeting QAs will report their testing works and critical issues. Before the sprint Demo, QAs will check all backlogs of this sprint whether they are finished in time and evaluate the quality of the current product which it is satisfied to the sprint goal. Please see the following pictures.
Figure_3 Testing Process in the Scrum
Q&A
1. What does the tester do when there is nothing to test?
Well, first of all, QAs should be preparing for tests. That is, writing test specs, preparing a test environment, etc. So when a developer has something that is ready to test, there should be no waiting, QA should dive right in and start testing.
2. How to increase the product quality in every sprint?
Do less per sprint! This will almost automatically lead to higher quality, shorter acceptance test cycles, fewer bugs affecting end users, and higher productivity in the long run since the team can focus on new stuff all the time rather than fixing old stuff that keeps breaking.