State transition testing-software_testing

MidhunChakravarthiS 1,996 views 13 slides Feb 14, 2018
Slide 1
Slide 1 of 13
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13

About This Presentation

This slide explains about a type of Software Testing Known as State Transition Testing


Slide Content

Introduction:
State Transition testing, a black box testing technique, in which
outputs are triggered by changes to the input conditions or
changes to 'state' of the system.
In other words, tests are designed to execute valid and invalid
state transitions.
A dynamic testing technique, which is used when the system is
defined in terms of a finite number of states and the transitions
between the states are governed by the rules of the system.
This technique is used when features of a system are
represented as states which transform to another state.
The transformations are determined by the rules of the software.

Deals With:
Sequence of Events
Handling of Events depending on Events and Conditions that
occurred in the past

Example:
You visit an ATM and withdraw $1000. You get your cash. Now
you run out of balance and make exactly the same request of
withdrawing $1000. This time ATM refuses to give you the
money because of insufficient balance.

So here the transition, which caused
the change in state is the earlier
withdrawal:

Steps:
 Identify the initial states and their final state based on the
lines/arrows that are coming out of the initial state
 For each initial state, find out the input condition and the
output result
 Mark each set as a separate test case.

State Transition Testing
Example in Software testing:
In the practical scenario, testers are normally given the state
transition diagrams and we are required to interpret it.
These diagrams are either given by the Business Analysts or a
stakeholder and we use these diagrams to determine our test
cases.
For An Example Click here.

Conclusion:
State Transition testing is a unique test approach for
testing complex applications, which would increase test
execution productivity without compromising on test coverage.