Thursday 17 April 2014

Intoduction to Automation Testing

Overview of Automation Testing :


In software testing, test automation is the use of special software 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.

Automated Testing is the best way to test the product with increase in efficiency. Automated tests are created and can be easily repeated to perform the tasks impossible with manual testing. 

Automated testing is considered critical for big software organizations or too expensive for small companies to implement. Automated software testing improves the accuracy, test coverage within short interval of time at low cost. Test automation has specific advantages for improving the long-term efficiency of a software team’s testing processes at low cost and time.

 Automation Testing Tools


Automation Tools are of 2 Types :


1) Licensed Tools
2) Open Source Tools

In the competitive world, companies/testers have multiple options to pick licensing or open source automation tools such as Quick Test Professional (QTP), selenium etc., based on their requirement.


1) Licensed Tools

License is available through single-seat licenses, as well as floating or concurrent licenses and based on the Vendor. Various automation testing tools are available for performing Functional, Regression and Performance Testing such as 
Eg: 
1) QTP
2) Win Runner
3) Test complete
4) Ranorex
5)  QA Wizard Pro
6) Silk Test
7) Silk Performer
8) QA Test
9) QA Load
10) Rational Robot. 

Functional Testing Tool -QTP has the feature for storing screenshot of each and every page navigated during the execution. So it can be used as a proof for completion of testing, and also we can refer the screenshots of previous executions if there is any need to refer them. Test report can be automatically written to a customized report page which will ensure accuracy of the report and also it can improve look & feel of the report.

2) Open Source Tools

Open source tools are typically created as a collaborative effort in which programmers improve upon the code and share the changes within the community, and are usually available at no charge under a license defined by the open source initiative. 

The tool can be downloaded at free of cost. Recent days, the open source tools are getting popular because of its integration and interaction, rapid debugging and development with flexibility at low cost by avoiding lock-in to one supplier.
 
There are lots of Open Source automation test tools available for doing Functional, Regression and Performance Testing 
1) Selenium
2) SOAP UI
3) Open STA
4) Robotium
5) WebDriver
6) WebInject
7) Arbiter
8) Jmeter
9) Junit
10) Nunit

Need for Automation Testing


1) Manual Testing of all work flows, all fields , all negative scenarios is time and cost consuming.

2) Manual Testing can become boring and hence error prone and unreliable.

3) Automated QA Testing Helps Developers and Testers.
Automated QA Testing Helps Developers and Testers
Automated QA Testing Helps Developers and Testers

 Advantages of Automation Testing


1) Save Time - this creates time for the tester to perform exploratory testing, concentrate on areas which cannot be automated and concentrate on other tasks. 

2) Speed - As automated tests are run by tools, these are run much faster than human users which adds to the first benefit of saving time.

3) Repeatability – the same tests can be re-run in exactly the same manner eliminating the risk of human errors such as testers forgetting their exact actions, intentionally omitting steps from the test scripts, missing out steps from the test script, all of which can result in either defects not being identified or the reporting of invalid bugs (which can again, be time consuming for both developers and testers to reproduce)

4) Reusable – the automated tests can be reused on different versions of the software, even if the interface changes.

5) Increase Coverage testers can create a test suite with tests to cover every feature within the application.

 6) Cost Reduction – This can be of benefit when the number of resources required for regression testing are reduced.

Disadvantages/Limitations of Automation Testing

 
1) Need for scripting and programming skills - In case of automation testing, owing to the requirement of coding skills the technical skill level of human resource should be high enough to write robust testing code.


2) Need for Maintenance of code - Application code is consistently being updated by the developer whenever a feature is updated or needs to be modified. Whenever application code is updated or modified, the code for automated test case which is testing this piece of application needs to be tested accordingly failing which results in faulty output of the test case. 

3) Debugging the test script is major issue. If any error is present in the test script, sometimes it may lead to deadly consequences. 

4) Requires more initial developer time for a given feature- Any new test automation would require time for development, creation of frameworks etc.

5) Increase tool needs (test runners, frameworks, etc.) - Automation Testing would increase the need for tools (either licensed or opensource) and also software required for the same.

6) Complex analysis required when a failed test in encountered - is this test obsolete due to my change or is it telling me I made a mistake? . 



Challenges of Automation Testing


1) Application does not respond sometimes due to timeout error in script.

2) Script fails some times, because the application does not move from one stage to another.

3) Script failures due to Element not found error.

4) Script failures because of Popup Windows and Frames.

5) Version Compatibility for tool and browser.

 

No comments:

Post a Comment