A scenario is a considered story aimed to assist in solving a complicated task or problem. Firstly, the concept of scenarios was applied in military planning in 1950. Then in 1970, it got high popularity in the commercial sphere. Scenarios are also used in software testing field.
In testing, a scenario is a way the end-user can utilize the software in real-world conditions. It is called to ensure end-to-end verification of system functioning. Scenario-based testing focuses on checking a business software flow. It helps to detect bugs that other testing types will not discover. Scenarios resemble the instructions that explain how the software can be used. A test scenario can be a separate test case or a set of test cases that are connected with each other.
To ensure a thorough quality assessment, test scenarios should have several attributes. They should be credible - reflect the software usage that will definitely happen in a real life. Scenarios should include the reasons for the end-users to utilize the software. Besides, they should include a complex usage of the software in different environments using complex data. But in case of difficult scenarios, testers should be able to evaluate the test results easily.
Test scenarios are called to learn the software product in detail. Scenario testing bases on reviewed and analyzed system requirements and project documentation. The procedure focuses also on exploring the software usage of both beginners and expert users.
Recommendations on designing scenarios
It is important to prepare life stories that will cover software functioning including different system objects. A tester should think and behave as the end-user. Untypical scenarios may detect tricky bugs, but it is more important to cover typical cases at first. Nevertheless, special events, e.g., situations that trigger the system response, should be predicted too, as they may lead to unusual system behavior. Sometimes people do crazy things with software products.
Being unaware of users’ needs and interests, testers will be unable to design and prioritize the scenarios properly. Basing on software purposes and its target users, testers are trying to put themselves in users’ shoes taking into account their possible characteristics. Besides, testers do not forget disfavored users who strive to break and abuse the system. Such scenarios should also be designed.
The overview and analysis of competitors’ products will help to develop the scenarios that will detect and assist in preventing similar mistakes. Users’ complaints show their expectations on how the system should work. Testers take previous user experience into account during software quality verification.
Scenario-based testing risks
Scenario testing is rather time-consuming and it can include complex stories that involve a lot of product features. This testing type is not suitable for quality verification at early stages when the code is not stable. For example, if one feature does not work, further testing can be blocked. Such bugs are called scenario-blocking ones.
Requiring much documentation, scenario-based testing helps to detect design and UI issues rather than critical coding mistakes. Besides, the number of possible combinations of user’s action and data inputs is very large. So sometimes scenario testing can be irrational.