Agile Automation Testing
Agile Automation Testing
Agile Automation Testing
Aman Arora
Adobe Systems India Pvt. Ltd.
I-1A, sector-25A, Noida
[email protected]
Abstract:
What is Agile Automation Testing? Automation of the test cases done
for the Agile project means applying the agile values and principles
for doing the automation of the test cases.
The biggest difference between agile methods and traditional method
of testing is the short feedback loop. The concept of agility is nothing
more, than "build the most important module of the system, evaluate,
adjust, and repeat". Effective automation requires thoughtful
investment and is a very important tool for shortening the feedback
loop.
In agile methods the majority of the automated tests consist of unit
tests that verify the smallest possible modules of software and can be
executed very quickly. Applying agile values and principles helps
teams get traction in starting their automation efforts.
It makes it possible to execute the test set many times a day or even
many times an hour and shortens the feedback loop even more.
The paper describes how to apply agile values, principles and
practices to develop an automation strategy. Where to start from, how
to start, what you shouldn’t automate, and where you should proceed
with caution this paper describes it all.
Keywords:
Agile Manifesto: The objective of the agility to the software.
Agile Automation: Automating the test cases for an agile system.
Automation tools: Tools used to automate the test cases.
1. Introduction:
What is Agile Testing?
Agile testing is a software testing practice that follows the statutes
of the agile manifesto, treating software development as the
customer of testing.
What is Automation Testing?
Manual Testing, consumes a lot of time and so using the automated
tools for the testing ensures the lesser time and faster way to test.
2. Agile Manifesto:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
The author feels that the first and foremost important principle that
one should keep in mind is that the tools that are selected for
automating the test cases should be as simple as possible. The tools
should not be complex that it should take more time to learn the
tool than the time to create the test cases.
4.2 Maintenance:
Maintaining the automated test scripts takes a lot of time if they are
not prepared well. The tester should divide the long test cases into
the multiple smaller test cases which are simple and easily scripted
and thus easily maintained.
4.3 Joint effort:
If say there are 10 testers in the team then all the members should
help each other in finding the quick solution for the problems they
are facing. Knowledge of one can help in solving the problems of
other team members. Now, if the developers are also included in
automating the test cases then an extra view point is added that can
solve and unleash many problems and can give new and efficient
methods for resolving the problems.
4.4 Short Iterations:
Lots of tools are there in the market that can be used to automate
the test cases, but it is very important to have the knowledge about
the automation tool that best suits your requirements. The
requirement for the tool may differ depending on the size of the
project, time allocated for the project or the cost for the project.
Either the entire team of the testers should be well versed with the
knowledge of the different tools that can be used for testing or a
person should be added to the team which is well versed with the
tools.
Once the automation gets started addition of new test cases to the
automation becomes very easy. Now there are few things that the
engineers automating the test cases need to keep in mind, they
should not just go on automating the stuff without knowing the
usability and importance of the test case. One should not automate
the area which is more likely prone to changes, as that will result in
the rework.
5.5 Not everything is automatable:
There are few test cases that will never fail. If a requirement is so
obvious that there’s only one way to implement it, and no
programmer will ever look at that code later without knowing
exactly what it should do, the chances of someone introducing a
defect in that code are next to nothing. For e.g. for selecting an item
there is a radio button, now it is not possible that the radio button
will be removed by someone accidently.
If you feel comfortable that one-time manual testing does the job
and the risk of future failures doesn’t justify automating regression
tests, don’t automate them. If you aren’t sure, and it’s not terribly
difficult to automate, go for it.
6. Conclusion:
If the management wants to have agility in the software being
developed then they should make sure that there is Communication
among the developers, testers and users. Smaller iterations of the
product should be practiced; emphasis should be given to the
feedbacks. It has already been discussed by the author that 100% of
the automation for the test cases for the agile software is not
possible but a maximum number of the test cases automated can be
achieved in a very less amount of time and effort if the right
selection of the automation tool is done and if the team works on
the principles of the agility.
References
[1] http://agilemanifesto.org/
[2] Bach, James: Agile Test Automation, White Paper
[3] Martin, C., Robert and Martin, Micah: 2007. Agile
Principles, Patterns and Practices. India: Dorling Kindersley
Publishing: licensees of Pearson Education, South Africa.
[4] Gregory, Janet and Crispin, Lisa: 2007. Agile Automation
Solutions.