Advanced Software Test Design Techniques – Use Case

Use Case Testing is a method that is used to test typical and exceptional work flows as well as scenarios & cases for the system. This is done from the point of view of the various actors and/or users who interact with the system directly. This is also from the perspective of different stakeholders and investors who interact with the system on an indirect basis. As a test analyst, if we get to receive Use Cases from the system designers or even analysts, they can happen to be convenient frameworks to create Test Cases.

In fact, the Use Case is also required to exhibit the results generated at the end of the sequential steps undertaken. These results must either benefit the actors (direct interaction) or the stakeholders (indirect interaction).

The more formal approaches to Document Uses Cases cover the following:

Typical workflows

Explicit documentation of such elements as:

The priorities

The preconditions

Frequency of use

Actors

Special Requirements

Assumptions, etc.

There are a couple of ways of creating tests that are Boundary Value Analysis and Equivalence Class Partitioning. In fact, if you run into a situation where actions are determined by the mix of those conditions – then you might have just found an embedded decision table. What is interesting is that the covering of the discovered class partitions, boundaries, and business rules may lead to twenty or more test cases per workflow – this is when you are already done with it.

The question that arises now is about the Bug Hypothesis. Keep in mind that in each decision table, we are identifying a mix of conditions that cause the occurrence of a negative action or result in a positive action not taking place. We happen to be more coarse-grained because of Use Cases. For this particular case, we are trying to identify a condition where the system does not interact properly with the users or delivers an improper result.

Example : Ecommerce purchase – Normal workflows

Customer places more than one item in the shopping cart.

Customer selects the ‘checkout’ feature.

System gathers pertinent information like Shipping Information, Payment Mode, Information about the customer, etc. from the shopper.

System displays all the information for user confirmation.

The user confirms the order to the system for delivery.

Example : Exceptions

The customer tries to checkout with an empty shopping cart, and the System returns an error message.

The information provided by the customer is void. An error message, as appropriate, is returned by the system.

Customer is still in the Process of Checkout. However, the customer is logged out of the system after 10 minutes of inactivity.