Is it or isn't it testing, that is. People have differing perceptions and opinions about user acceptance testing and the role of the user in software testing. While some see user acceptance testing as a formality to be performed before the software is released for production or "live" use, others depend on acceptance testing to assure that the right system has been built for their application.
After sifting through all of the varieties of acceptance testing, I have the following observations:
- Acceptance testing varies from organization to organization in terms of objectives and degree of effort involved.
- Acceptance testing can be one of the most volatile activities in the software development process.
- User acceptance testing can be effective when conducted for the right objectives.
- Few organizations understand how to deal with the human aspects of testing. They also lack the necessary training to plan and conduct an effective acceptance test.
User acceptance testing can take the form of:
1. A demo, which is basically a walkthrough of the completed system with the users. This walkthrough may be interactive, but the user usually does not get to identify defects in the software before it goes into production.
2. A test which a repeat of some previous phase of testing, such as unit, system, or integration testing. Or, the test is the system test performed by users. In either scenario, acceptance testing at this level focuses on the correctness of the software as defined by the requirements. Repeating any test already performed by developers is redundant and usually misses the objectives of an acceptance test.
3. A constructive test of the software from a business perspective. In other words, the users are asking "Will this software work in our daily business environment?"
Of the three varieties of user acceptance testing just listed, the third approach is most effective if you want to perform a test that determines if the system will meet business needs. If you simply want to let the users see what kind of system they are going to get, then the demo approach is probably the best to use.
User acceptance testing can be a challenge. Here are some ways to give yourself an edge on success.
1. Keep everyone informed of the issues and resolutions. Good communication is essential for the timely resolution of defects and identifying issues. When people (including management) are not kept up to date on testing issues they make decisions based on incomplete information.
2. Resolve conflict in a win/win manner. Any other resolution is bad in the long-term. Users should feel they have a solution that will work well in the organization and developers should not be put through difficult technical resolutions to solve minor problems.
3. Plan the test so it is controllable and repeatable. This is essential if you want to know the progress of the test or how to recreate a defect.
4. Take care of your user testers. Remember, these people have other work responsibilities. Daily work combined with testing responsibilities can lead to long hours and high levels of frustration. Keep an eye on burn-out.
5. Pass decisions on controversial issues upward. User testers should not be required to make policy decisions. Leave those calls to upper management.
User acceptance testing can be effective, and even considered a necessity on many projects. Users provide a valuable source of test data and business knowledge that can be applied from a functional perspective. To find out more about training and approaches for user acceptance testing, e-mail me.