A Test Scenario is a statement describing the functionality of the application to be tested. It is used for end to end testing of a feature and is generally derived from the use cases.
Test scenarios can serve as the basis for lower-level test case creation. A single test scenario can cover one or more test cases. Therefore a test scenario has a one-to-many relationship with the test cases.
What is Scenario Testing?
Scenario testing is a type of testing carried out using scenarios derived from the use cases. Using scenario testing, complex application-logic can be tested using easy to evaluate test scenarios.
Some characteristics of scenario testing are
- Coherent – The test scenarios should be based on a coherent story about how the software application is used.
- Credible – They should be credible and focus on something that could happen in the real world.
- Motivating – They should motivate the stakeholders to get the issues fixed in case of the failed test scenario.
- Complex – The test scenarios normally involves a complex program or application flow.
- Easy to evaluate – The test result of the test scenario should be easy to evaluate as they involve complex logic.
Strategies to Create Good Scenarios
- Enumerate possible users their actions and objectives
- Evaluate users with hacker’s mindset and list possible scenarios of system abuse.
- List the system events and how does the system handles such requests.
- List benefits and create end-to-end tasks to check them.
- Read about similar systems and their behavior.
- Studying complaints about competitor’s products and their predecessor.
Scenario Testing Risks
- When the product is unstable, scenario testing becomes complicated.
- Scenario testing are not designed for test coverage.
- Scenario tests are often heavily documented and used time and again
Functional Test Scenarios for Login Page
- Verify that as soon as the login page opens, by default the cursor should remain on the username textbox.
- Verify that the user is able to navigate or access the different controls by pressing the ‘Tab’ key on the keyboard.
- Verify that the password is in masked form when entered.
- Verify if the password can be copy-pasted or not.
- Verify that the user is able to login by entering valid credentials and clicking on the ‘Login’ button.
- Verify that the user is able to login by entering valid credentials and pressing the Enter key.
- Verify that the user is not able to login with an invalid username and password.
- Verify that the validation message gets displayed in case the user leaves the username or password field as blank.
- Verify that the validation message is displayed in the case the user exceeds the character limit of the user name and password fields.
- Verify that reset button functionality on the login page. Clicking on it should clear the textbox’s content.
- Verify if there is a checkbox with the label “remember password” on the login page.
- Verify that closing the browser should not log-out an authenticated user. Launching the application should lead the user to the login state only.
Difference between Test Case and Test Scenario
Test Case | Test Scenario |
A test case contains clearly defined test steps for testing a feature of an application. | A test scenario contains high-level documentation, describing an end to end functionality to be tested. |
Test cases focus on “what to test” and “how to test”. | Test scenarios just focus on “what to test”. |
Test cases have clearly defined steps, pre-requisites, expected results, etc. Hence, there is no ambiguity. | Test scenarios are generally one-liner. Hence, there is always a possibility of ambiguity during testing. |
Test cases can be derived from test scenarios and have many to one relationship with them. | Test scenarios are derived from use cases. |
Test cases are efficient in exhaustive testing of applications. | Test scenarios are beneficial in quick testing of end to end functionality of the application. |
More resources are required for documentation and execution of test cases. | Relatively less time and resources are required for creating and testing using scenarios. |