Scenario testing is done to make sure that the end to end functioning of software is working fine, or all the business process flows of the software are working fine. In scenario testing the testers put themselves in the end users shoes and figure out the the real world scenarios or use cases which can be performed on the software by the end user. In scenario testing, testers take assistance from clients, stakeholders and developers to create test scenarios.
Scenario testing helps testers to explore how the software will work in the hands of an end user. Since scenario testing tests the business flow of the software, it helps in finding lot of defects which cannot be found with other types of testing.
Scenario testing is done by creating test scenarios which replicate the end users usage. A test scenario can be a independent test case or a series of test cases that follow each other. Test scenario is just a story which explains the usage of the software by any end user.
Importance of Scenario Testing
As you know that exhaustive testing of any software application is not possible because of the following reasons:
- Large number of data combinations.
- Large number of possible paths in software.
It is because of this fact you always prioritize your testing efforts and focus on the most important areas, for that you use techniques like Boundary value analysis(BVA), Equivalence partitioning(EP), Risk based testing etc. however these techniques still do not guarantee bug free product.
By scenario testing you figure out the most important end-to-end transactions or the real use of the software applications which ensures that the software is working for the most common user scenarios. It helps in finding lot of defects which cannot be found with other types of testing.
Scenario testing is very important for complex transactions and for studying end-to-end functioning of the program.
Scenario Testing example
Let us take an example of Hospital Management System to explain the importance of scenario testing.
Nowadays whenever you go to some hospital the patients records are maintained using HMS(Hospital Management System) software. This software system manages both outpatient and inpatient records.
Outpatients leave hospital on the same day, however inpatients are admitted in hospital and treated for more number of days before being discharged from hospital.
Now let us take a scenario where one outpatient comes to hospital to consult bone doctor for pain in his leg. His entry is made in HMS as outpatient and all his previous medical history is entered in HMS. After few minutes he suddenly feels acute chest pain and needs to be admitted in hospital, after being admitted to hospital his entry is now changed from outpatient to Inpatient. But after making this change the doctor finds that he is not able to get any previous history of this patient, ideally the outpatient history of that patient should be available even after changing the outpatient status to Inpatient, this happened because the HMS system fails in this scenario (When OPD patients status is changed to Internal patient).
So if scenario testing would have been done for this test scenario (Patients history should get transferred when his status is changed from outpatient to Inpatient) this bug would have been found well in advance.
So now you can see why Scenario testing is so important in software testing.