“Scenario” is already used in the software industry since 1980s. However, it was first used by the United States in military planning in 1950s. In software development, scenarios are used in verifying suitability of a certain software application for its intended use through hypothetical stories.
Despite there is no procedural attempt to clearly establish software testing in a realistic environment, scenarios provide practical situations and user-oriented actions in validating software operations. It also allows testers to thoroughly understand the complex problems and systems behind the software. There are two types of scenario testing. First is field test, and the other is laboratory test.
Field testing is considered to be the least obtrusive because actual operating environment and user actions are being used, or at least mimicked, during testing. Actual factors like noise level, room capacity, amount of data processing, etc. should be used in testing. Work pace is also important because it can present other considerations like operation and idle time.
In laboratory testing, abnormal situations are being considered by having isolated cases of user actions. It does not need to be similar with day-to-day software usage but should be more focused in acquiring diverse and abnormal results using varying data collection methodologies. Because of this, lacking error handling capability is often detected in laboratory testing.
Between the two, field testing is more realistic and can be thought as “acceptance testing.” On the other hand, laboratory testing is more theoretical and can be thought as “fail-safe testing.” Users can benefit more from reliable field test while developers can benefit more from efficient laboratory test.
The characteristics of scenario testing are the following:
• Complex Software Usage Environment
Scenarios should include stories, or sample situations on how the system will be used, and some information about the user. It should also be motivating to drive the persons involved in the development to fix the problem. One way of motivating them is to have credible story. It should be believable enough that such situations can occur in real-life and not a mere possibility. High software usage should also be considered to unlock hidden bugs and relationships between system features and lastly, the scenario should be testable.
Scenarios are quite different compared with other testing because a good scenario requires creativity and imagination. Thus, many teams are hesitant to implement it because they only see this difficulty and not its advantages. Listed below are the benefits of scenario testing:
Faster Learning of the System
Scenarios allow testers to investigate the entire system by themselves without following any guidelines or checklists. This causes them to understand the system faster because people can learn better by doing actual tasks their own way instead of using the system against its manual. This can also result to mastery and expert usage of the system.
Reveal Hidden Failures
Abnormal scenarios lead to exposing bugs caused when software has insufficient error handling. Unexpected user actions are also trapped by well-built scenarios.
Relate User Requirements with Software Operations
Properly defined field tests result to highly acceptable software. This is because normal scenarios represent user requirements and satisfying the scenario is satisfying the requirements.