CHAPTER - 4 Transaction Flow Testing
CHAPTER - 4 Transaction Flow Testing
CHAPTER - 4 Transaction Flow Testing
INTRODUCTION:
o A transaction is a unit of work seen from a system user's point of view.
o A transaction consists of a sequence of operations, some of which are performed by a system,
persons or devices that are outside of the system.
o Transaction begin with Birth-that is they are created as a result of some external act.
o At the conclusion of the transaction's processing, the transaction is no longer in the system.
o Example of a transaction: A transaction for an online information retrieval system might consist
of the following steps or tasks:
Accept input (tentative birth)
Validate input (birth)
Transmit acknowledgement to requester
Do input processing
Search file
Request directions from user
Accept input
Validate input
Process request
Update file
Transmit output
Record transaction in log and clean up (death)
TRANSACTION FLOW GRAPHS:
o Transaction flows are introduced as a representation of a system's processing.
o The methods that were applied to control flow graphs are then used for functional testing.
o Transaction flows and transaction flow testing are to the independent system tester what control
flows are path testing are to the programmer.
o The transaction flow graph is to create a behavioral model of the program that leads to functional
testing.
o The transaction flowgraph is a model of the structure of the system's behavior (functionality).
o An example : Using ATM card in ATM machines
In simple cases, the transactions have a unique identity from the time they're created to the time they're
completed.
In many systems the transactions can give birth to others, and transactions can also merge.
Births:There are three different possible interpretations of the decision symbol, or nodes with two or more
out links. It can be a Decision, Biosis or a Mitosis.
1. Decision:Here the transaction will take one alternative or the other alternative but not both. (See
Figure 3.2 (a))
2. Biosis:Here the incoming transaction gives birth to a new transaction, and both transaction
continue on their separate paths, and the parent retains it identity. (See Figure 3.2 (b))
3. Mitosis:Here the parent transaction is destroyed and two new transactions are created.(See
Figure 3.2 (c))
Figure 3.2: Nodes with multiple outlinks
Mergers:Transaction flow junction points are potentially as troublesome as transaction flow splits. There
are three types of junctions: (1) Ordinary Junction (2) Absorption (3) Conjugation
1. Ordinary Junction: An ordinary junction which is similar to the junction in a control flow graph.
A transaction can arrive either on one link or the other. (See Figure 3.3 (a))
2. Absorption: In absorption case, the predator transaction absorbs prey transaction. The prey
gone but the predator retains its identity. (See Figure 3.3 (b))
3. Conjugation: In conjugation case, the two parent transactions merge to form a new daughter.
In keeping with the biological flavor this case is called as conjugation.(See Figure 3.3 (c))
We have no problem with ordinary decisions and junctions. Births, absorptions, and conjugations are as
problematic for the software designer as they are for the software modeler and the test designer; as a
consequence, such points have more than their share of bugs. The common problems are: lost daughters,
wrongful deaths, and illegitimate births.