Tuesday, July 21, 2015

Test Design Techniques - Equivalence Partitioning, Boundary Value Analysis, Decision Tables, Use Case Testing and State Transition Testing

Equivalence Partitioning and Boundary Value Analysis video - This software testing tutorial explains the test design techniques and the benefits of using them (save time and find more defects). It explains equivalence partitioning and boundary value analysis test design techniques with a number of examples. So that you understand the EP and BVA techniques and remember them. Equivalence partitioning and boundary value analysis are used in both black box testing like system testing and white box testing like unit testing.

Decision Table Testing video - In this video, we understand a decision table. A decision table is a table of all possible conditions and corresponding actions. It is used to show complicated logic without forgetting any combination of conditions. Decision tables help in testing by listing all possible input conditions. First, we see a decision table example with conditions having binary values i.e. True or False values. Then we see another decision table example with conditions having multiple values. Then, we see the steps to simplify or minimize the decision table.

Use Case Testing video - In this video, we understand use cases, review a sample use case and write test cases for the example use case. A use case is a list of steps to complete a task in the system. These steps define the sequence of interactions between the actor and the system under test. The actor can be a user of the system or it can be another system. The use case lists the main scenarios (and optional exceptional scenarios). A use case may be accompanied by a use case diagram, but not always.
In use case testing, we review the use case e.g. the ATM cash withdrawal use case should only have the steps related to cash withdrawal, not the steps to view balance or deposit cash because the latter steps belong to other use cases. The use case should list all the steps in the normal workflow (scenario). Each step in the use case should be testable. The use case should list each alternate workflow. We design test cases to test the normal workflow and each alternate workflow.  We can design the test data using other test design techniques like equivalence partitioning and boundary value analysis. When we run the test cases, we should look out for any missing workflow(s), any missing step(s) in any workflow, boundary value defects etc.

State Transition Testing video - In this video, we understand state transition testing. A state is a particular condition in which the system can exist. A transition is movement from one valid state to another valid state. State transition testing is used when the system under test can be thought of being in a finite number of states. In state transition testing, we test all the valid transition between states. We can also test for invalid transitions to ensure that they are not allowed. State transition testing is explained in this video with the help of examples showing state transition diagrams, state tables and how to design test cases to test valid transitions.