AGile and Testing
AGile and Testing
AGile and Testing
Agile Methodology meaning a practice that promotes continuous iteration of development and testing
throughout the software development lifecycle of the project. In the Agile model in software testing,
both development and testing activities are concurrent, unlike the Waterfall model.
Agile Methodology
The Agile software development methodology is one of the simplest and effective processes to turn a
vision for a business need into software solutions. Agile is a term used to describe software
development approaches that employ continual planning, learning, improvement, team collaboration,
evolutionary development, and early delivery. It encourages flexible responses to change.
Scrum
Product Backlog
Scrum Practices
Crystal Methodologies
Kanban
Agile metrics
Agile and Waterfall model are two different methods for software development process. Though they
are different in their approach, both methods are useful at times, depending on the requirement and
the type of the project.
The Agile process in software engineering is broken into individual The design process is not broken int
models that designers work on models
The customer has early and frequent opportunities to look at the The customer can only see the prod
product and make decision and changes to the project the project
Agile model is considered unstructured compared to the waterfall Waterfall model are more secure be
model plan oriented
Every iteration has its own testing phase. It allows implementing Only after the development phase,
regression testing every time new functions or logic are released. executed because separate parts ar
functional.
Testers and developers work together Testers work separately from devel
Agile Process
There are various Agile methods present in agile testing, and those are listed below:
Scrum
SCRUM is an agile development method which concentrates specifically on how to manage tasks within
a team-based development environment. Basically, Scrum is derived from activity that occurs during a
rugby match. Scrum believes in empowering the development team and advocates working in small
teams (say- 7 to 9 members). Agile and Scrum consist of three roles, and their responsibilities are
explained as follows:
Scrum Method
Scrum Master
Scrum Master is responsible for setting up the team, sprint meeting and removes
obstacles to progress
Product owner
The Product Owner creates product backlog, prioritizes the backlog and is responsible
for the delivery of the functionality at each iteration
Scrum Team
Team manages its own work and organizes the work to complete the sprint or cycle
Product Backlog
This is a repository where requirements are tracked with details on the no of requirements(user stories)
to be completed for each release. It should be maintained and prioritized by Product Owner, and it
should be distributed to the scrum team. Team can also request for a new requirement addition or
modification or deletion
Scrum Practices
Product backlog is a list where all details are entered to get the end-product
During each Sprint, top user stories of Product backlog are selected and turned into Sprint
backlog
Extreme Programming technique is very helpful when there is constantly changing demands or
requirements from the customers or when they are not sure about the functionality of the system. It
advocates frequent “releases” of the product in short development cycles, which inherently improves
the productivity of the system and also introduces a checkpoint where any customer requirements can
be easily implemented. The XP develops software keeping customer in the target.
Extreme Programming
Business requirements are gathered in terms of stories. All those stories are stored in a place called the
parking lot.
In this type of methodology, releases are based on the shorter cycles called Iterations with span of 14
days time period. Each iteration includes phases like coding, unit testing and system testing where at
each phase some minor or major functionality will be built in the application.
There are 6 phases available in Agile XP method, and those are explained as follows:
Planning
Infrastructure Requirements
Analysis
Design
Execution
Coding
Unit Testing
Wrapping
Small Releases
Regression Testing
Closure
Pilot Launch
Training
Production Launch
Production Support
There are two storyboards available to track the work on a daily basis, and those are listed below for
reference.
Story Cardboard
This is a traditional way of collecting all the stories in a board in the form of stick notes
to track daily XP activities. As this manual activity involves more effort and time, it is
better to switch to an online form.
Online Storyboard
Online tool Storyboard can be used to store the stories. Several teams can use it for
different purposes.
Crystal Methodologies
2. Cyclic delivery: The main development phase consists of two or more delivery cycles, during
which the
2. Implements a subset of the requirements through one or more program test integrate
iterations
3. Wrap Up: The activities performed in this phase are deployment into the user environment,
post- deployment reviews and reflections are performed.
DSDM is a Rapid Application Development (RAD) approach to software development and provides an
agile project delivery framework. The important aspect of DSDM is that the users are required to be
involved actively, and the teams are given the power to make decisions. Frequent delivery of product
becomes the active focus with DSDM. The techniques used in DSDM are
1. Time Boxing
2. MoSCoW Rules
3. Prototyping
1. Pre-project
2. Feasibility Study
3. Business Study
6. Implementation
7. Post-project
This method is focused around “designing & building” features. Unlike other Agile methods in software
engineering, FDD describes very specific and short phases of work that has to be accomplished
separately per feature. It includes domain walkthrough, design inspection, promote to build, code
inspection and design. FDD develops product keeping following things in the target
2. Development by feature
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
Lean software development method is based on the principle “Just in time production”. It aims at
increasing speed of software development and decreasing cost. Lean development can be summarized
in seven steps.
1. Eliminating Waste
2. Amplifying learning
4. Early delivery
6. Building Integrity
Kanban originally emerged from Japanese word that means, a card containing all the information
needed to be done on the product at each stage along its path to completion. This framework or
method is quite adopted in software testing method especially in Agile concepts.
Scrum Vs Kanban
Scrum Kanban
It cannot add items to ongoing iteration It can add items whenever capacity i
Agile metrics:
Drag Factor
Drag factor can be improved by reducing number of shared resources, reducing the
amount of non-contributing work
New estimates can be increased by percentage of drag factor -New estimate = (Old
estimate+drag factor)
Velocity