Thursday, October 17, 2013

Automation Testing


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.

Consider the following factors that help determine the use of automated testing tools:

• Examine your current testing process and determine where it needs to be adjusted for using automated test tools.

• Be prepared to make changes in the current ways you perform testing.

• Involve people who will be using the tool to help design the automated testing process.

• Create a set of evaluation criteria for functions that you will want to consider when using the automated test tool. These criteria may include the following:

1.       Test repeatability

2.       Criticality/risk of applications

3.       Operational simplicity

4.       Ease of automation

5.       Level of documentation of the function (requirements, etc.)

• Examine your existing set of test cases and test scripts to see which ones are most applicable for test automation.

• Train people in basic test-planning skills.


Approaches to Automation

There are three broad options in Test Automation:

Full Manual 
Partial Automation
Full Automation
Reliance on manual testing
Redundancy possible but
requires duplication of
effort
Reliance on automated
testing
Responsive and flexible
Flexible
Relatively inflexible
Inconsistent
Consistent
Very Consistent
Low Implementation Cost
_
High Implementation Cost
High repetitive cost
Automates repetitive tasks
and high return tasks
Economies of scale in
repetition, regression etc
Required for automation
_
_
Low skill requirement
_
High skill requirements

 

Fully manual testing has the benefit of being relatively cheap and effective. But as quality of the product improves the additional cost for finding further bugs becomes more expensive. Large scale manual testing also implies large scale testing teams with the related costs of space, overhead and  infrastructure. Manual testing is also far more responsive and flexible than automated testing but is prone to tester error through fatigue.

Fully automated testing is very consistent and allows the repetitions of similar tests at very little marginal cost. The setup and purchase costs of such automation are very high however and maintenance can be equally expensive. Automation is also relatively inflexible and requires rework in order to adapt to changing requirements.

 

Partial Automation incorporates automation only where the most benefits can be achieved. The advantage is that it targets specifically the tasks for automation and thus achieves the most benefit from them. It also retains a large component of manual testing which maintains the test teams flexibility and offers redundancy by backing up automation with manual testing. The disadvantage is that it obviously does not provide as extensive benefits as either extreme solution.

 
Choosing the right tool


• Take time to define the tool requirements in terms of technology, process, applications, people skills, and organization.

• During tool evaluation, prioritize which test types are the most critical to your success and judge the candidate tools on those criteria.

• Understand the tools and their trade-offs. You may need to use a multi-tool solution to get higher levels of test-type coverage. For example, you will need to combine the capture/playback tool with a load-test tool to cover your performance test cases.

• Involve potential users in the definition of tool requirements and evaluation criteria.

• Build an evaluation scorecard to compare each tool's performance against a common set of criteria. Rank the criteria in terms of relative importance to the organization.

 

Top Ten Challenges of Software Test Automation

1. Buying the Wrong Tool

2. Inadequate Test Team Organization

3. Lack of Management Support

4. Incomplete Coverage of Test Types by the selected tool

5. Inadequate Tool Training

6. Difficulty using the tool

7. Lack of a Basic Test Process or Understanding of What to Test

8. Lack of Configuration Management Processes

9. Lack of Tool Compatibility and Interoperability

10. Lack of Tool Availability

No comments:

Post a Comment