|
What is Agile Testing?
Unlike the
WaterFall method , Agile Testing can begin at the start of the project with
continuous integration between development and testing. Agile Testing is not sequential
(in the sense its executed only after coding phase) but continuous.
Agile team works
as single team towards a common objective of achieving Quality .Agile Testing
has shorter time frames called iterations (say from One to Four weeks ). This
methodology is also called release or delivery driven approach since it gives
better prediction on the workable products in short duration of time.
Methodologies of Agile Testing
There are various
methodologies present in agile testing and those are listed below:
Scrum
SCRUM is an agile
development method which concentrates particularly on how to manage tasks
within a team based development environment. Basically, Scrum is derived from
activity that occurs during rugby match. Scrum believes in empowering the
development team and advocates working in small teams (say- 7 to 9 members). It
consists of three roles and their responsibilities are explained as follows:
- Scrum Master
- 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 responsiblefor
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 repository
where requirements are tracked with details on the no of requirements to be
completed for each release. It should be maintained and prioritized by scrum
master and it should be distributed to the scrum team. Team can also request
for new requirement addition or modification or deletion
Phases
of Scrum testing:
There are three
phases of scrum testing ,elaborated as follows:
- Test Design
- User stories are used
for development of test cases .User stories are written by the product
owner. User stories are short description of functionalities of the
System Under Test. Example for Insurance Provider is –Premium can be paid
using online system
- Test Cases are developed
based on user stories which should be approved by business analysts and
the customers
- Test Execution
- Test execution is
carried out in a lab where both tester and developer work hand in hand.
- Defect are logged in
Defect Management tool which are tracked on a daily basis. Defects can be
discussed during scrum meeting
- Defects are retested as
soon as it is fixed and deployed for testing
- Test Automation
- This also gains
importance due to short delivery timelines
- Test Automation can be
achieved by utilizing various opensource or paid tools available in the
market .
- This proves effective in
ensuring that everything that needs to be tested was covered. Sufficient
Test coverage can be achieved with the close interaction with the team.
- Managing
- Sprint(Cycle) meeting is
held at the beginning to decide the scope of sprint, understand the
product backlog, task estimates and assignments
- Daily 15 minutes meeting
will be held where participants answer three questions.
- Last 24 hours tasks
- Plan for next 24 hours
tasks
- What are all obstructions
of the tasks?
Sprint
Burn down Charts
Each day, Scrum
Master records the estimated remaining work for the sprint. This is nothing but
the Burn Down Chart. It is updated daily.
Scrum
Practices
Practices are
described in detailed:
Process
flow of Scrum:
Process flow of
scrum testing is as follows:
- Each iteration of a scrum
is known as Sprint
- Product backlog is a list
where all details are entered to get end product
- During each Sprint, top
items of Product backlog are selected and turned into Sprint backlog
- Team works on the defined
sprint backlog
- Team checks for the daily
work
- At the end of sprint,
team delivers product functionality
eXtreme
Programming (XP)
This is a light
weight agile testing methodology in which development and testing happen in
parallel. Business requirements are gathered in terms of stories. All those
stories are stored in a place called 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 include phases like coding, unit
testing and system testing where at each phase some minor or major
functionality will be built in the application.
Phases
of eXtreme programming:
There are 6 phases
available in Agile XP method and those are explained as follows:
Planning
- Identification of
stakeholders and sponsors
- Infrastructure
Requirements
- Security related
information and gathering
- Service Level Agreements
and its conditions
Analysis
- Capturing of Stories in
Parking lot
- Prioritize stories in
Parking lot
- Scrubbing of stories for
estimation
- Define Iteration
SPAN(Time)
- Resource planning for
both Development and QA teams
Design
- Break down of tasks
- Test Scenario preparation
for each task
- Regression Automation
Framework
Execution
- Coding
- Unit Testing
- Execution of Manual test
scenarios
- Defect Report generation
- Conversion of Manual to
Automation regression test cases
- Mid Iteration review
- End of Iteration review
Wrapping
- Small Releases
- Regression Testing
- Demos and reviews
- Develop new stories based
on the need
- Process Improvements
based on end of iteration review comments
Closure
- Pilot Launch
- Training
- Production Launch
- SLA Guarantee assurance
- Review SOA strategy
- Production Support
There are two
story boards available to track the work on a daily basis and those are listed
below for reference.
- Story Cardboard
- This is 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 online form.
- Online Story board
- Online tool Storyboard
can be used to store the stories .This can be used by several teams for
different purposes.
Difference between Scrum and XP Testing:
XP Testing
|
Scrum Testing
|
Engineering
practices like test driven development, refactoring, pair programming, etc…
|
Managing
of requirements or requested features
|
Stories
are used as single line requirements
|
User
Stories are used as requirements
|
Stories
are stored in Parking lot
|
Stories
are stored in Product backlog and Sprint backlog
|
Iteration
is used in XP testing
|
Iteration
is termed as Sprint
|
Iteration
period is for 14 days max
|
Iteration
period is for 30 days
|
Requirement
changes are accepted during iteration
|
Requirements
changes are acceptable after the current iteration
|
Mid and
end of Iteration review meetings
|
Daily
scrum meeting
|
Scrum and eXtreme
are the popular Agile methodologies. Below listed methodologies are used less
frequently
Dynamic System
Development Method (DSDM)
- This is an Iterative and
incremental approach that emphasizes on the continuous user involvement.
Test Driven
Development (TDD)
- This is a technique which
has short iterations where new test cases covering the desired improvement
or new functionality are written first.
Feature Driven
Development
- This is an iterative and
incremental software development process and this can aim depends on the
features.
XBreed
- Agile enterprise
previously known as Xbreed .It is agile way of managing, architecting and
monitoring the enterprise.
Crystal
- Crystal is an adaptive
technique mainly used for software development methodologies.
Agile metrics:
Metrics that can
be collected for effective usage of Agile is:
- Drag Factor
- Effort in hours which do
not contribute to sprint goal
- 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
- Amount of backlog
converted to shippable functionality of sprint
- No of Unit Tests added
- Time taken to complete
daily build
- Bugs detected in an
iteration or in previous iterations
- Production defect leakage
Conclusion:
Agile testing
involves testing as early as possible in software development life cycle. It
demands high customer involvement and testing code as soon as it becomes
available. The code should be stable enough to take it to system testing.
Extensive regression testing can be done to make sure that the bugs are fixed
and tested. Mainly, Communication between the teams makes agile testing
success!!!
No comments:
Post a Comment