0% found this document useful (0 votes)
75 views16 pages

Unit 2 ST

The document discusses transaction flow testing and dataflow testing techniques. It defines a transaction as a unit of work from a user's perspective consisting of a sequence of operations. Example transaction steps for an online information system are provided. Techniques for transaction flow testing include getting transaction flows, inspections/reviews, path selection, path sensitization, and path instrumentation. Dataflow testing focuses on variable definitions and uses to find test paths. Strategies for dataflow testing include all-defs, all-c-uses, all-p-uses criteria. Applications show dataflow testing detects more bugs and works effectively even without automation.

Uploaded by

Arikala Harish
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views16 pages

Unit 2 ST

The document discusses transaction flow testing and dataflow testing techniques. It defines a transaction as a unit of work from a user's perspective consisting of a sequence of operations. Example transaction steps for an online information system are provided. Techniques for transaction flow testing include getting transaction flows, inspections/reviews, path selection, path sensitization, and path instrumentation. Dataflow testing focuses on variable definitions and uses to find test paths. Strategies for dataflow testing include all-defs, all-c-uses, all-p-uses criteria. Applications show dataflow testing detects more bugs and works effectively even without automation.

Uploaded by

Arikala Harish
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 16

SOFTWARE TESTING

UNIT 2
Transaction Flow Testing: Transaction Flows, Transaction Flow Testing
Techniques.
Dataflow testing: Basics of Dataflow Testing, Strategies in Dataflow Testing,
Application of Dataflow Testing.
Transaction Flow

A transaction is a unit of work seen from a system user's


point of view. 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.
Transaction begins with Birth that is they are created as a
result of some external act. At the conclusion of the
transaction's processing, the transaction is no longer in the
system.
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 acknowledgment 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 Testing Techniques:
Get The Transactions Flows:

 Complicated systems that process a lot of different, complicated transactions should have
explicit representations of the transactions flows, or the equivalent.
 Transaction flows are like control flow graphs, and consequently we should expect to have
them in increasing levels of detail.
 The system's design documentation should contain an overview section that details the
main transaction flows.
 Detailed transaction flows are a mandatory prerequisite to the rational design of a system's
functional test.
Inspections, Reviews and Walkthroughs:

 Transaction flows are natural agenda for system reviews or inspections. In conducting the
walkthroughs, you should:
 Discuss enough transaction types to account for 98%-99% of the transaction the system is expected
to process.
 Discuss paths through flows in functional rather than technical terms.
 Ask the designers to relate every flow to the specification and to show how that transaction, directly or
indirectly, follows from the requirements.
 Make transaction flow testing the cornerstone of system functional testing just as path testing is the
cornerstone of unit testing.
 Select additional flow paths for loops, extreme values, and domain boundaries.
 Design more test cases to validate all births and deaths.
 Publish and distribute the selected test paths through the transaction flows as early as possible so that
they will exert the maximum beneficial effect on the project.
Path Selection:

 Select a set of covering paths (c1+c2) using the analogous criteria that were used for structural
path testing.

Select a covering set of paths based on functionally sensible transactions, as you would for control
flow graphs.
 Try to find the most tortuous, longest, strangest path from the entry to the exit of the
transaction flow.
Path Sensitization:

 Add your content...Most of the normal paths are very easy to sensitize-80% -
95% transaction flow coverage (c1+c2) is usually easy to achieve.
 The remaining small percentage is often very difficult.
 Sensitization is the act of defining the transaction. If there are sensitization
problems on the easy paths, then bet on either a bug in transaction flows or a
design bug.
Path Instrumentation:
 

• Instrumentation plays a bigger role in transaction flow testing than in unit path testing.
 The information of the path taken for a given transaction must be kept with that
transaction and can be recorded by a central transaction dispatcher or by the individual
processing modules.
 In some systems, such traces are provided by the operating systems or a running log.
 
Basics Of Dataflow Testing

Data Flow Testing is a type of structural testing. It is a method that is used to


find the test paths of a program according to the locations of definitions and
uses of variables in the program. It has nothing to do with data flow
diagrams.
It is concerned with:

 Statements where variables receive values,


 Statements where these values are used or referenced.
Control Flow for example
Example:

1.read x, y;
2.if(x>y)
3.a = x+1 else
4.a = y-1
5.print a;
Advantages of Data Flow Testing:

Data Flow testing helps us to pinpoint any of the following


issues:

 A variable that is declared but never used within the program.


 A variable that is used but never declared.
 A variable that is defined multiple times before it is used.
 Deallocating a variable before it is used.
Dataflow Strategies
Strategies:

Following are the test selection criteria

1. All-defs: For every variable x and node i in a way that x has a global declaration in  node I, pick a
comprehensive path including the def-clear path from node i to
• Edge (j,k) having a p-use of x or
• Node j having a global c-use of x
2. All c-uses: For every variable x and node i in a way that x has a global declaration in node i, pick a
comprehensive path including the def-clear path from node i to all nodes j having a global c-use of x in j.
3. All p-uses: For every variable x and node i in a way that x has a global declaration in node i, pick a
comprehensive path including the def-clear path from node i to all edges (j,k) having p-use of x on edge (j,k).
4. All p-uses/Some c-uses: it is similar to all p-uses criterion except when variable x has no global p-use, it
reduces to some c-uses criterion as given below
Strategies:

5. Some c-uses: For every variable x and node i in a way that x has a global declaration in node i, pick
a comprehensive path including the def-clear path from node i to some nodes j having a global c-use of
x in node j.
6. All c-uses/Some p-uses:it is similar to all c-uses criterion except when variable x has no global c-
use, it reduces to some p-uses criterion as given below:
7. Some p-uses: For every variable x and node i in a way that x has a global declaration in node i, pick
a comprehensive path including def-clear paths from node i to some edges (j,k) having a p-use of x on
edge (j,k).
8. All uses:it is a combination of all p-uses criterion and all c-uses criterion.
9. All du-paths:For every variable x and node i in a way that x has a global declaration in node i, pick a
comprehensive path including all du-paths from node i
• To all nodes j having a global c-use of x in j and
• To all edges (j,k) having a p-use of x on (j,k).
Applications

 The number of bugs detected by running 90% "data coverage" is twice as


high as those detected by requiring 90% branch coverage.
 Statement and branch coverage are found to be cost effective
 Even when not supported by automation, data flow testing has been found
to be effective
 Data flow testing needs additional record keeping that is used to keep track
of the statuses of the variables, for which a computer is most effective
 This will significantly reduce the effort of data flow testing

You might also like