Software test engineers use manual testing techniques to find and document bugs so that they can be reproduced at a later date by the developer. The quality of a manual test often depends on the thoroughness and precision of the tester. The manual testing process is an important part of any test cycle — some tasks are impossible to automate, such as verifying the usability and functional requirements of an application. Plus, in some cases, it will take more time to automate a manual test than actually running through the test by hand. Manual tests are also very inexpensive and easy to implement — all you need is a qualified tester, a word processing program (or paper and pencil), and a set of use cases and test cases.
Microsoft still uses manual testing in the development of their products, but there has been a gradual shift away from this method because of the time and effort required to build and complete tests for the complexity of Microsoft products. The Microsoft Visual C++ IDE Team used 15 testers for a period of two to three weeks to run all of the required manual tests for the Visual C++ IDE! For insights on Microsoft's internal testing practices, visit the Microsoft Visual C++ Testers weblog (http://www.blogs.msdn.com/fivetestersfromvc).
How do you decide when to opt for automated as opposed to manual tests? The key is strategy — you must make a careful, informed decision based on set criteria. In this chapter, we will cover all the basics of manual testing. The next section covers various scenarios to help you evaluate how to choose the right tests for the right circumstances. You will also learn how Team System facilitates the process and enables you to create, manage, and share test results within your team.