|This article was developed from concepts in the book Global Software Test Automation: Discussion of Software Testing for Executives.|
There are many potential pitfalls to manual software testing, including:
- Manual testing is slow and costly.
- Manual tests do not scale well.
- Manual testing is not consistent or repeatable.
- Lack of training.
- Testing is difficult to manage.
This article will cover five “best practices” recommendations to help avoid the pitfalls associated with manual software testing.
Be Thorough in Test Design and Documentation
In designing the tests, there should be agreement among the business staff, product and project managers, developers, and testers on test coverage. This can be documented as test requirements in a test plan. With this documentation, management can have visibility of the test coverage and know that the right areas are being tested. This then becomes an important management tool in managing testing.
The goal is to find the easiest way to document as many test cases as possible without having the test effort turn into a documentation effort.
Have the test requirements and test cases peer-reviewed, just as you would have software design reviews. The software development staff and the test staff should jointly develop the test designs, as they have complementary skill sets and knowledge bases.
In manual testing, like in other processes, several factors influence the effectiveness of the tests, including the completeness of the test cases and the thoroughness of the documentation. The goal should be to maximize management’s understanding of the testing by spending the appropriate resources in each area, within the overall resource constraints. If you do not document your tests, you will not understand the coverage or software quality as revealed by the tests, and you also will not be able to determine that the test team is testing features that are the most important to your development team and customers. However, if you document everything related to each test case, you will not have time to do as many tests as you should. Documenting test cases can get expensive.
Automate Turnkey Tests as Much as Possible
There are various tools available that support test automation. When it is cost-effective and time-efficient to do so, there is no excuse for not automating software tests.
Automation 5% Rule: No more than 5% of the tests should be executed manually.
The benefit of automation is that the testing becomes less burdensome, and less likely to be scrimped on when under pressure. This also makes the testing easier to manage.
Manage the Test Activities Well
Do this as closely, and by establishing as full a procedure, as the software development activities. Be sure that the project plan has sufficient resources and time allocated to testing so that it does not get short shrift.
Rank Test Cases in Order of Importance, by Impact on Quality, by Risk, by How Often the Feature Tested is Used, or Some Other Related Metric
A goal should be to run all important test cases, but if there are resource constraints that prevent all test cases from being run, then the ranking will enable the important test cases to be run. This provides the maximum impact of the testing with the available resources. In manual software testing, you are always short on time. There should be an agreement or signoff procedure on the ranking and the coverage of the tests.
Have a Separate Budget with Proper Funding Allocated for Testing
Just as there is a budget allocated for the software code development, there should be a budget allocated for testing. Be sure that this budget is well-funded. Watch how much is spent on testing, and what the return on investment is.
Even when you have a good test automation program in place, you will still need to do some manual testing. The usability testing, for example, requires human involvement. However, manual testing is not the solution for short-cycle, high-volume test challenges. For example, if you have a daily build process where you need to run smoke-tests to assess the changes and stability of the software from build to build, these tests can be high-volume and short-cycle. Manual testing cannot solve your testing problem in this case.
To summarize the preceding in a simple list, the five best practice suggestions for manual software testing success are:
- Be thorough in test design and documentation
- Automate turnkey tests as much as possible
- Manage the test activities well
- Rank test cases in order of importance, by impact on quality, by risk, by how often the feature tested is used, or some other related metric
- Have a separate budget with proper funding allocated for testing
Hung Nguyen co-founded LogiGear in 1994, and is responsible for the company’s strategic direction and executive business management. His passion and relentless focus on execution and results has been the driver for the company’s innovative approach to software testing, test automation, testing tool solutions and testing education programs.
Hung is co-author of the top-selling book in the software testing field, “Testing Computer Software,” (Wiley, 2nd ed. 1993) and other publications including, “Testing Applications on the Web,” (Wiley, 1st ed. 2001, 2nd ed. 2003), and “Global Software Test Automation,” (HappyAbout Publishing, 2006). His experience prior to LogiGear includes leadership roles in software development, quality, product and business management at Spinnaker, PowerUp, Electronic Arts and Palm Computing.
Hung holds a Bachelor of Science in Quality Assurance from Cogswell Polytechnical College, and completed a Stanford Graduate School of Business Executive Program.
Over 20 years of sales, marketing, management, and technology experience in high technology with exposure to industries including financial services, healthcare, higher education, government, and manufacturing; demonstrating a strong track record of success. Proven ability to build and maintain strong relationships, contribute to target organization success, and deliver results. Website: http://www.robpirozzi.com/