Identifying effective test scenarios & designing great test cases - Points to remember

Before we discuss the points to be remembered for identifying test scenarios and designing test cases, let me first explain the meaning behind `test scenario' and `test case'. A `test scenario' is the summary of a product's functionality, i.e. what will be tested.  A`test case', on the other hand,  is the step-by-step approach to functionality testing, i.e.  the `how' and `what' of testing. 

Pre-requisites for writing Test Scenarios or Test Cases

The testing function engineer plays a pivotal role  in  project development.  A single mistake can lead to a huge loss in terms of cost and time.  To avoid such mistakes the engineer must  have a good understanding of the business and functional requirements of the application.

Given below are a few guidelines:

  1. Go through the requirements document carefully and try to understand the same.
  2. Do not just guess the requirement!  If you need clarifications, talk to the project manager or to any other person who understands the requirement really well.
  3. Understand the project work flow, and wireframes (if available) and relate the same to the requirement.

Identifying Test Scenarios for end-to-end manual testing

  1. Understand the functional work flow and envisage possible users and usage scenario for the application.
  2. The scenarios should cover  end-to-end functionality of the application and all the business flows of the application.
  3. The identified scenarios should be independent of other test scenarios.
  4. Ensure that every identified scenario  is a story in itself.
  5. Test scenarios must cover the negative and out-of-the-box testing with a 'Test to Break' attitude.
  6. Domain knowledge is important to get a deeper understanding of the application.
  7. All the scenarios should be mapped with the requirements document/user stories of the application.
  8. Test scenarios should be reviewed by the Product Manager/Business Analyst or anyone else who understands the requirements really well.

Testing has to be repeated frequently during development cycles to ensure quality. Every time the source code is modified,  the tests should be repeated over and over again. Manual repetition of tests can be costly in terms of effort, time and money.  This is where test automation becomes advantageous, as automated tests can be run multiple times at no additional cost and at much faster speeds.

Scenarios for test automation:

  1. Test scenarios  which need Regression Testing should be automated (obviously, we should consider only feasible ones),
  2. Separate test scenarios which cannot be automated.
  3. Creating proper test data is a very important part of any automation testing and should contain all possible combinations of test data.

Following points are very helpful in identifying the Test Scenarios for Smoke Testing:

  1. Smoke testing is also known as BAT (Build Acceptance Test).  Quality Assurance (QA) has to accept or reject the build, based on the testable condition of the major features of the build.
  2. Separate out the major business events of the application.
  3. Identify the complex scenarios having a large number of functionalities and inter-dependencies.

Test Case design for Test Scenario:

  1. It is important to document each and every step.
  2. The test case should contain a set of test data, preconditions, expected results and post conditions, developed for a particular test scenario in order to verify a specific requirement.
  3. The test case should check normal happy flow, alternative flow and error flow.
  4. The test steps should be simple, easy to understand, and execute.
  5. Identify positive and negative test data using the different types of test case technique like Equivalence Class Partitioning, Boundary Value Analysis, Error Guessing, etc.