Automation Testing

Automated Testing: Process, Planning, Tool Selection:-

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.

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

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. 

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

Benefits of automated testing

Following are benefits of automated testing:

automation benefits


- 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

Criteria for Tool Selection:

For automating any application, the following parameters should be considered.

- Data driven capabilities

- Debugging and logging capabilities

- Platform independence

- Extensibility & Customizability

- E-mail Notifications

- Version control friendly

- Support unattended test runs

Types of Frameworks:

Typically, there are 4 test automation frameworks that are adopted while automating the applications.

- Data Driven Automation Framework

- Keyword Driven Automation Framework

- Modular Automation Framework

- Hybrid Automation Framework

Popular Tools that are used for Functional automation:

Quick Test Professional

Rational Robot

Coded UI

Selenium

Auto IT

Popular Tools that are used for Non-Functional automation:

Load Runner

Jmeter 

Burp Suite

Acunetix



No comments:

Post a Comment