Showing posts with label Test Automation. Show all posts
Showing posts with label Test Automation. Show all posts

Monday, January 2, 2012

How to achieve full potential of Test Automation?


Why test automation?

Software testing is an art, aimed at evaluating an attribute or capability of a program or system and determining whether it meets the expected outcomes. Software testing can be very costly and time consuming.

Hence automation is a good way to cut down time and cost.

Benefits of test automation:

Test automation provides numerous benefits to any organization. Some of them are listed below:
  • Reduced test execution time and cost
  • Increased test coverage on each testing cycle
  • Increased value of manual testing effort
  • Reduced manual work
Reasons for failure of test automation:

There are a number of reasons why test automation efforts are unproductive. Some of the most common include:
  • Poor quality of tests being automated
  • Lack of good test automation framework and process
  • Inability to adapt to changes in the system under test
Five Steps for Successful Test Automation

To avoid the above reason and to achieve the full potential of test automation, emphasis has to be given on the below steps:
  • Planning
  • Preparation
  • Proof of concept
  • Implementation
  • Maintenance
Planning

Each phase in the project must be planned with a clear view on the current testing methods and information of the infrastructure. Gather information from key people who have experience in test automation.

Preparation

During preparation phase, a pilot project should be defined and test cases that need to be automated have to be selected. Define the roles and responsibilities and prepare input test data.
Proof of Concept

The test automation tool must be configured in order to be compatible with application under test (AUT). The tool must be able to capture user actions. Since more and more application types may be being used, the configuration part is not as easy. It is possible that the test tool will not recognize the application “out-of-the-box”, which means you need to configure the tool.
Then the team needs to automate a limited amount of test cases to prove that the application can be automated. Select an easy, a normal and a complex test case. Demonstrate execution and reporting of the automated test cases to decision makers.

Implementation

If proof of concept is successful, automation of selected test cases (scope defined at preparation step) can start. Analyze selected tests, think about data separation, functional decomposition, reusability of certain business components. Modularize your script into clear-cut building blocks. During this phase, you can set up test automation framework which can vary from documentation on tool usage to a full-scaled framework based on a spreadsheet or database layer.

Maintenance

A test automation project expands together with application under test. A new release may offer new functionality that needs to be automated. The existing automated scripts need to be maintained, new automated tests need to be added and there is a possibility that other organization may take over automation project in future. Team has to prepare for these events by providing documentation for each script, by constantly allocating the proper resources for the project and by training newcomers in the tool, the script and the execution.

Conclusion

Test Automation in today’s competitive environment is much needed than desired; to keep operating efficiently and considerably cut down costs and efforts, without compromising on quality and security. However you must adopt a well planned and a structured approach to automation in order to ensure a higher return on investment. It is suggested that prior to opting for automation, QA teams need to perform an exhaustive automation assessment to identify the right set of automation methods, tools and techniques that will compliment their QA needs.

Tuesday, December 6, 2011

Pre-requisites for General Automation


Automation testing is the most preferred way to achieve our testing goals on time. But it is in turn has lots of dependencies on other parameters. We will see below some of them.

Why Test Automation?


Below are some reasons on why to go for automation:

  • New releases and bug fixes in working module
So automate your testing procedure when you have lot of regression work.
  • Testing web applications with multiple users simultaneously
Automate your load testing work for creating virtual users to check load capacity of your Web Application.
  • Testing application where code is changing frequently
Automate your testing work when your GUI is almost frozen but you have lot of frequently functional changes.

Risks associated with Automation:


There are lots of risks associated with test automation. We need to give importance to each one of the below to reap the benefits out of automation.
  • Skilled resources:
For automation you need to have resources having some programming knowledge.

“Do resources have sufficient programming knowledge for automation testing? “


If not, do they have technical capabilities or programming background that they can easily adapt to the new technologies?
  • Initial cost for Automation is very high:
Automation cost is too high for initial setup i.e. cost associated to automation tool purchase, training & maintenance of test scripts are very high.
  • Do not think to automate your UI if it is not fixed:
Beware before automating user interface. If user interface is changing extensively, cost associated with     script maintenance will be very high. Basic UI automation is sufficient in such cases.
  • Is your application stable enough to automate?
It would be bad idea to automate testing work in early development cycle (unless it is agile environment). Script maintenance cost will be very high in such cases.
  • Are you thinking of 100% automation?
You cannot 100% automate your testing work. Certainly you have areas like performance testing, regression testing, load/stress testing where you can have chance of reaching near to 100% automation. Areas like User interface, documentation, installation, compatibility and recovery where testing must be done manually.
  • Do not automate tests that run once:
Identify application areas and test cases that might be running once and not included in regression.
  • Will your automation suite be having long lifetime?
Every automation script suite should have enough life time that its building cost should be definitely less than that of manual execution cost.

This is bit difficult to analyze the effective cost of each automation script suite. Approximately your automation suite should be used or run at least 15 to 20 times for separate builds (General assumption. depends on specific application complexity) to have good ROI.

Conclusion:


Automation testing is the best way to accomplish most of the testing goals and effective use of resources and time. But you should be cautious before choosing the automation tool.
Be sure to have skilled staff before deciding to automate your testing work. Otherwise your tool will remain on the shelf giving you no ROI. Handing over the expensive automation tools to unskilled staff will lead to frustration.
Before purchasing the automation tools make sure that tool is a best fit to your requirements. You cannot have the tool that will 100% match with your requirements. So find out the limitations of the tool that is best match with your requirements and then use manual testing techniques to overcome those testing tool limitations. Open source tool is also a good option to start with Automation.