Automating
testing is no different from a programmer using a coding language to write
programs to automate any manual process. One of the problems with testing large
systems is that it can go beyond the scope of small test teams. Because only a
small number of testers are available the coverage and depth of testing
provided are inadequate for the task at hand. Expanding the test team beyond a
certain size also becomes problematic with increase in work over head. Feasible
way to avoid this without introducing a loss of quality is through appropriate
use of tools that can expand individual’s capacity enormously while maintaining
the focus (depth) of testing upon the critical elements.
Need of Automation
Testing
Automated testing is
important due to following reasons:
·
Manual Testing of all work flows, all fields ,
all negative scenarios is time and cost consuming
·
It is difficult to test for multi lingual sites
manually
·
Automation does not require Human intervention.
You can run automated test unattended (overnight)
·
Automation increases speed of test execution
·
Automation helps increase Test Coverage
·
Manual Testing can become boring and hence error
prone.
Which Test Cases to
Automate?
Test cases to be automated can be selected using the
following criterion to increase the automation ROI
·
High Risk - Business Critical test cases
·
Test cases that are executed repeatedly
·
Test Cases that are very tedious or difficult to
perform manually
·
Test Cases which are time consuming
The following categories of test cases are not suitable for
automation:
·
Test Cases that are newly designed and not
executed manually at least once
·
Test Cases for which the requirements are changing
frequently
·
Test cases which are executed on ad-hoc basis.
Automation Process
Following steps are followed in an Automation Process
Test Tool Selection
Test Tool selection largely depends on the technology the
Application Under Test is built on. For instance QTP does not support Informatics. So QTP cannot be used for testing Informatics
applications. It’s a good idea to conduct Proof of Concept of Tool on AUT
Define the Scope of
Automation
Scope of automation is the area of your Application Under
Test which will be automated. Following points help determine scope:
·
Feature that are important for the business
·
Scenarios which have large amount of data
·
Common functionalities across applications
·
Technical feasibility
·
Extent to which business components are reused
·
Complexity of test cases
·
Ability to use the same test cases for cross
browser testing
Planning, Design and
Development
During this phase you create
Automation strategy & plan, which contains following details :
·
Automation tools selected
·
Framework design and its features
·
In-Scope and Out-of-scope items of automation
·
Automation test bed preparation
·
Schedule and Timeline of scripting and execution
·
Deliverables of automation testing
Test Execution
Automation Scripts are executed during this phase. The
scripts need input test data before there are set to run. Once executed they
provide detailed test reports.
Execution can be performed using the automation tool
directly or through the Test Management tool which will invoke the automation
tool.
Example: Quality center is the Test Management tool which in
turn it will invoke QTP for execution of automation scripts. Scripts can be
executed in a single machine or a group of
machines. The execution can be done during night , to save time.
Maintenance
As new functionalities are added to the System Under Test
with successive cycles, Automation Scripts need to be added, reviewed and
maintained for each release cycle. Maintenance becomes necessary to improve
effectiveness of Automation Scripts.
Automation Tools
Following are the most popular test tools:
1.
QTP: HP’s Quick Test Professional ( now known as
HP Functional Test) is the market leader in Functional Testing Tool. The tool
supports plethora of environments including SAP, Java , Delphi amongst others.
QTP can be used in conjunction with Quality Center which is a comprehensive Test
Management Tool. know is light tool
which can be recommended for web or client/server applications.
2.
Rational Robot: It’s is an IBM tool used to
automate regression, functional and configuration tests for client server,
e-commerce as well as ERP applications.
It can be used with Rational Test Manager which aided in Test Management Activities
3.
Selenium: It’s an open source Web Automation
Tool. It supports all types of web browsers. Despite being open source its
actively developed and supported
How to Choose an
Automation Tool?
Selecting the right tool can be a tricky task. Following
criterion will help you select the best tool for your requirement-
·
Environment Support
·
Ease of use
·
Testing of Database
·
Object identification
·
Image Testing
·
Error Recovery Testing
·
Object Mapping
·
Scripting Language Used
·
Support for various types of test – including
functional, test management, mobile, etc…
·
Support for multiple testing frameworks
·
Easy to debug the automation software scripts
·
Ability to recognize objects in any environment
·
Extensive test reports and results
·
Minimize training cost of selected tools
Tool selection is one of biggest challenges to be tackled
before going for automation. First, Identify the requirements, explore various
tools and its capabilities, set the expectation from the tool and go for a
Proof Of Concept.
Framework in
Automation
A framework is set of
automation guidelines which help in
·
Maintaining consistency of Testing
·
Improves test structuring
·
Minimum usage of code
·
Less Maintenance of code
·
Improve re-usability
·
Non-Technical testers can be involved in code
·
Training period of using the tool can be reduced
·
Involves Data wherever appropriate
There are four types of framework used in software
automation testing:
1.
Data Driven Automation Framework
2.
Keyword Driven Automation Framework
3.
Modular Automation Framework
4.
Hybrid Automation Framework
Automation Best
Practices
To get maximum ROI of automation, observe the following
·
Scope of Automation needs to be determined in
detail before the start of the project. This sets expectations from Automation
right.
·
Select the right automation tool: A tool must
not be selected based on its popularity but it’s fit to the automation requirements.
·
Choose appropriate framework
·
Scripting Standards- Standards have to be
followed while writing the scripts for Automation .Some of them are-
v
Create uniform scripts, comments and indentation
of the code
v
Adequate Exception handling – How error is
handled on system failure or unexpected
behavior of the application.
v
User defined messages should be coded or
standardized for Error Logging for testers to understand.
·
Measure metrics- Success of automation cannot be
determined by comparing the manual
effort with the automation effort but by also capturing the following metrics.
v
Percent of defects found
v
Time required for automation testing for each
and every release cycle
v
Minimal Time taken for release
v
Customer satisfaction Index
v
Productivity improvement
The above guidelines
if observed can greatly help in making your automation successful.
Benefits of Automated
Testing
Following are benefits of automated testing:
·
70% faster than the Manual Testing
·
Wider test coverage of application features
·
Reliable in results
·
Ensure Consistency
·
Saves Time and Cost
·
Improves accuracy
·
Human Intervention is not required while
execution
·
Increases Efficiency
·
Better speed in executing tests
·
Re-usable test scripts
·
Test Frequently and thoroughly
·
More
cycle of execution can be achieved through automation
·
Early time to market
Conclusion
Right selection of automation tool, testing process and
team, are important players for automation to be successful. Manual and
automation methods go hand-in hand for successful testing.
No comments:
Post a Comment