Pages

Monday, April 12, 2010

Sum-up the learnings of Scenario Testing

Scenario Testing is one of the most important testing activity of a software testers, both functional and non-functional testers. I have tried to summarize the learnings of Scenario Testing based on BBST course http://www.testingeducation.org/BBST/ScenarioTesting.html and some other read.

About Scenario Testing


Scenario test involves a story about how the program is used, including information about the motivations of the people involved.

Scenario tests are realistic, credible and motivating to stakeholders, challenging for the program and easy to evaluate for the tester. Scenario test provide meaningful combinations of functions and variables rather than the more artificial combinations you get with domain testing or combination test design.

To perform Scenario Testing we have to imagine a real world situation, which involves a complex use of the Application. In scenario testing, we create a hypothetical situation the program could be run through, and then we run through it ourselves based on that situation. This helps us to evaluate the program's real-world adaptability, as well as help us to test many functions that are not frequently used or tested (or simply aren't tested thoroughly enough).

A well-designed scenario has five additional characteristics:
  • The test is based on a story about how the program is used, including information about the motivations of the people involved.
  • The story is motivating. A stakeholder with influence would push to fix a program that failed this test.
  • The story is credible. It not only could happen in the real world; stakeholders would believe that something like it probably will happen.
  • The story involves a complex use of the program or a complex environment or a complex set of data.
  • The test results are easy to evaluate. This is valuable for all tests, but is especially important for scenarios because they are complex.

Designing Scenario Tests

Designing scenario tests is much like doing a requirements analysis, but is not requirements analysis. They rely on similar information but use it differently:
  • In designing scenario tests, a tester doesn't have to reach conclusions or make recommendations about how the product should work. The task of a tester is simply to expose credible concerns to the stakeholders. In addition, the scenario tester's work need not be exhaustive, just useful.
  • The tester doesn’t have to respect prior agreements. (Caution: testers who belabor the wrong issues lose credibility.)
  • In designing scenarios, think of the states that the application can be in, via various actions by a given user. For example, on shopping website, you can design a scenario based on a series of actions that leads to selecting a particular grocery, putting it in a shopping basket, giving credit card information, and authorizing the purchase. You could try a valid credit card number and then various types of invalid credit card numbers. Those are the actions that you want to simulate in your testing.
  • Scenarios should be real life examples of system use.
The actions and the state are the conditions that you are seeking to validate with the test case. Conditions can be considered things like valid actions, invalid actions, pass actions, and fail actions.

Useful benefit of Scenario Testing

  • Scenario testing is used to create large test cases that model real use of the application by covering multiple requirements. These tests are used to find bugs in the system, learn the product, and find requirements problems.
  • Scenario testing helped us to focus on a user situation that was motivating and realistic.
  • Scenario testing is an excellent way to perform in-depth tests with many of a program's features all at once and evaluate how well they work together.
  • Scenario testing helps a tester place themselves into the position of the user, a task that is often very difficult. By working through a scenario test, a tester has certain conditions that help keep them more aware of certain ways a program acts.
  • Scenario testing allowed us to view the program through a different mindset, one through which many of the customers might also be viewing the program. By scenario testing, we have a much better chance of understanding how customers will feel using the program and how we can help make it easier to use the program.

Summary
  • A scenario test is a story that describes a hypothetical situation by simulating a real-life use of the application under test.
  • A scenario test should be designed to expose credible concerns to the stakeholder about the application under test.
  • In designing good scenario tests, you should consider the actions and states of the application that you are seeking to validate.
  • Scenario Testing are not designed for early testing. Other approaches are better for testing unstable code in early.

Hope this post will helpful to you. Enjoy Testing!