Automated Testing
Manual testing is performed by a human sitting in front of
a computer carefully executing the test steps. Automation Testing means using
an automation tool to execute your test case suite. The
automation software can also enter test data into the System Under Test,
compare expected and actual results and generate detailed test reports.
Test Automation demands considerable investments of money
and resources. Successive development cycles will require execution of same
test suite repeatedly. Using a test automation tool it's possible to record
this test suite and re-play it as required. Once the test suite is
automated, no human intervention is required. This improved ROI of Test
Automation.
Goal of Automation is to reduce number of test cases to be
run manually and not eliminate manual testing all together.
In software
testing, Test
Automation is the use of
special software (separate from the software being tested) to control
the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some
repetitive but necessary tasks in a formalized testing process already in
place, or add additional testing that would be difficult to perform manually.
In automated testing the Test Engineer or Software quality assurance person must
have software coding ability, since the test cases are written in the form of
source code which, when run, produce output according to
the assertions that are a part of it.
Why
Automated 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 category of test cases are not suitable for
automation:
·
Test Cases
that are newly designed and
not executed manually atleast 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 Coded UI does not support SAP.
So Coded UI cannot be used for testing Informatica 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: MTM and TFS is the Test Management tool which in
turn it will invoke Coded UI Test 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:
Coded Ui : It is a Microsoft
autoamtion tool,used basically for UI automation for both Web and Windows
application.
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, and 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.
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
Selenium: It’s
an open source Web Automation Tool.
It supports all types of web browsers. Despite being open source it’s 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
Types of
framework used in software automation testing:
·
Record and Playback
·
Modular Automation Framework
·
Data Driven Automation Framework
·
Keyword Driven Automation Framework
·
Hybrid Automation Framework
·
Agile 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 its 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-
o Create uniform scripts, comments and indentation of the code
o Adequate Exception handling - How error is handled on system
failure or unexpected behavior of the application.
o 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.
o Percent of defects found
o Time required for automation testing for each and every
release cycle
o Minimal Time taken for release
o Customer satisfaction Index
o 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:
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.
|
Hello Shailesh,
ReplyDeleteThe Article on Automation Testing Concepts is nice give detail information about it.Thanks for Sharing the information about Automation Testing Concepts . Software Testing Company
Thanks
ReplyDeleteHi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a .Net developer learn from Dot Net Online Training from India. or learn thru ASP.NET Essential Training Online . Nowadays Dot Net has tons of job opportunities on various vertical industry.
ReplyDeleteJavaScript Online Training from India
Thanks
ReplyDelete