Guideline: Tool Assisted Manual Testing
This guideline addresses how you can apply automated testing principles to your manual testing.
Main Description

Introduction

The reality of most testing efforts is that there is a little of both manual and automated testing involved. Rarely is testing ever completely manual or completely automated. The truth is that each approach has its own advantages and disadvantages. However, manual testing often gets short shrift. It is often described as being error-prone, incapable of dealing with repetitive testing tasks efficiently, incapable of providing reuse of testing content, not exhaustive, and hard to organize.

This criticism arises in large part from equating manual testing with "testing by hand" or, at best, "testing with Excel®". Recent advances in manual testing tooling, though, have dramatically changed the testing landscape. Such advances allow the tester to employ testing techniques that have until recently only been the concern of the automated testing world. This guideline addresses some of the more prevalent techniques used in the manual testing tooling world.

Tool-Assisted Manual Testing

One of the main problems with manual testing is that it is difficult to enforce a standard approach to testing. Without any way of enforcing how you design, run, and analyze tests, the manual testing effort can easily degenerate into a myriad of loosely related files and file types, test data, and ad-hoc reporting formats. A manual testing tool enforces a consistent approach to testing by allowing for script editing, test content reuse, and a consistent test execution mechanism, all from one testing environment.

When designing manual tests, what you need in many cases is the ability to group tests, and have these groupings easily updated and managed. Manual testing tools can enforce a grouping mechanism on your tests. Ideally, a manual testing tool also lets you easily categorize parts of your test into groups. If at some point certain parts of your test no longer need to be grouped, you can easily ungroup test steps as well.

Another major area of concern for manual testing involves executing test scripts. Running a manual test can require a lot of testing resources just to control and track test scripts. This can easily lead to errors introduced in the testing effort. Usually these errors are difficult to identify, and they can require additional resources to track down. With a manual testing tool, the script execution is controlled by the tracking mechanism of the tool. Although the script itself is not run in an automated sense, the way the tester progresses from step to step can be tracked and controlled by the tool.

With tool-assisted manual testing, you can also avail yourself of one of the most powerful aspects of automated testing, namely, reusing test content. A manual testing tool provides a way to reuse test content, preferably in the form of test script content that naturally serves as steps that can be applied to other test scripts.

Much of your time as a tester is spent reviewing test results. In a purely manual testing environment, this can be difficult and time-consuming. Manually maintaining test scripts and test logs can be a daunting task. A manual testing tool can provide a test execution log that usually is accessible through the testing tool itself. The manual testing tool allows you to organize the test logs and analyze them from within one testing environment.

Summary

A manual testing approach, supported by the appropriate tool, can include many of the same concepts used in an automated testing approach. Clearly, there are differences. Moreover, there are cases that are naturally more suited to an automated approach, just as there are ones more suited to a manual testing approach. However, simply because a test is manual does not mean that it cannot be designed, run, and analyzed methodically. Automated testing techniques -- such as script reuse, grouping mechanisms, and enforcement of a common test run and analysis approach -- need not apply only to the world of automated testing.