Automation Testing for Agile Methodology.
In the last few
years, ever since the agile methodology came on board with its founders
shouting and willing to do away with the mundane and laborious realities of the
traditional waterfall model, the impact of the same can be also felt when it
comes to automation testing. In the realm of the
traditional process of software testing life cycle, automation testing is
normally feasible when the application is stable, steady and the requirement is
involving with a real considerable amount of time and in most cases involving a
set of very skillful automation expert resources as well as a considerable
amount of set-up costs. The basic purpose of automation testing is to reduce
costs over long time and to ensure no new defects have been introduced as a
result of existing test cases.
Automation
testing by the very nature of the technology is not exploratory in nature since
the main role of automation testing is saving time and reducing costs.
Automation testing is not meant to come up with new and innovative defects.
Automation testing aims at mostly conformation of the already existing.
Now by
its very definition agile methodology talks about doing away with laborious and
tedious documentation so that new and innovative ideas could be implemented and
people could interact freely with each other so that more of these innovative
and explorative ideas could be implemented.
Thus we could see a
contradiction between the basic fundamental philosophies of agile methodologies
and automation testing.
So we
need to consider certain fundamental points here when it comes to evaluating
the use of agile methodologies with respect to the automation testing methods
and techniques. Thus we need to consider some fundamental points like time
taken for design and coding, validation of the designed scripts with the
existing test data and then adoption of the same for testing (whether the tests
are of functional or regression purposes) So the real fact of all these events
is that in order to perform all these facts, we need to ensure that a
considerable amount of time is required for these tasks and in an agile
environment where an average sprint takes an average 1-2 weeks to complete and
thus it is obviously too difficult to contemplate affording so much time for
automating scripts in such an way.
Another
significant factor remains here that the type of changes in requirements which
come into picture when agile methodology is at play. Agile methodology by it's
own very definition is a sort of technique which is very helpful for responding
to quick customer induced change requirements and which thus lends itself well
to frequent changes during the overall development of the application.
In
contrast automation testing is very useful when it comes to the more stable and
less frequent types of requirements. Thus by definition automation testing does
not lend itself well to various types of frequent changes in requirements which
comes alongside the adoption of any agile methodologies.
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 a single team towards a common objective of achieving Quality.
Agile Testing has shorter time frames called iterations (say from 1 to 4
weeks). This methodology is also called release, or delivery driven approach
since it gives a better prediction
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). It consists of three roles, and their responsibilities are explained
as follows:
·
Scrum Master
o
Master is responsible for setting up
the team, sprint meeting and removes obstacles to progress
·
Product owner
o
The Product Owner creates product
backlog, prioritizes the backlog and is responsible for the delivery of the
functionality at each iteration
·
Scrum Team
o
Team manages its own work and
organizes the work to complete the sprint or cycle
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 the sprint, team delivers product functionality