Arunkumar Khannur's Software Testing Knowledge Center

5.4 Transaction Flow Structure

A transaction flow is not obvious from the structure of the code and its corresponding control flow chart. In order to arrive at transaction flow structure in a program and also its behaviour, tester needs to have a very good system thinking to analyse design , understand system’s control structure and associated databases, intuitively develop the mental maps on the behaviour of the program whenever it gets input, and extrapolate its expected behaviour. It is also crucial for tester to understand the need of a set of test data that are crucial in stimulating the functionalities of the system. By having these capabilities and by performing related activities, tester will be able to arrive at transactional flow structure. Thus, transaction flow structure is a notational representation of a path taken by a transaction through a succession of processing modules as an internal sequence of events that may occur in processing a transaction by using control flow chart notations.

However understanding internal sequence of events and any influence of external systems on the behaviour of the program is very difficult. Also, all software practitioners lack system thinking and fail to contextualise the situations, and testers are not an exception for this. All these culminate into transactions that are ill structured. Following are some reasons that cause transactions that are ill structured.

  1. Modelling a process, not just a code: While writing test cases, testers thinking is constrained and restricted only to the code and its structure. In order to write well structured transactions, practitioners need to expand their thinking horizon and incorporate concepts like defensive programming; modularization; secured programming; performance optimization; compliance with standards; conformance with naming conventions; documentation and so on in order to build software that is reliable, usable, efficient; maintainable; and portable. However practitioners are more focused on design and implementation than build for scalability.
  2. As days are progressing, every software system depends on many other external software systems whose control is not with the team that is responsible for the software under consideration. Under such situation though part of the behaviour is direct representation of external system on which team does not have any control, the team may ignore these transaction flows by thinking that it is not their responsibility to capture and represent the transaction flows of the system they are responsible for.
  3. The program for which team building transaction flows may be having built-in errors like logical errors; translation errors; missing or extra or wrong implementation; use of GO-TOs; abrupt terminations and so on. If anyone constructs transaction flow charts by using such programs as the basis then possibility of having wrong transaction flows is high.
  4. Program once built always undergoes changes over time. New features will be added or dropped or modified. While doing this, one may not have good traceability. As such there can be major issues like mismatch among different work products in the project. Also, transactions may become very complex and difficult to understand.
  5. All modern softwares are built using modular programming approach. This would make software to have many modules. In order to get required functionality, these modules need to interact as intended. However as the software grows, there can be many more new transactions or there can be modified transactions. Also, while system grows, because of ill-structured program, part of the software may get “paralysed”.
Khannur's Book
Arunkumar Khannur, Software Testing - Techniques and Applications, Published by Pearson Publications, 2011 (ISBN:978-81-317-5836-6; Pages:341 + xxii)
Follow Khannur
Khannur's Company
ISQT Process & Consulting Services Pvt. Ltd., Bangalore, INDIA
Khannur's Software Testing Forum
 Contact Khannur
ISQT Process & Consulting Services Pvt. Ltd.
#732, 1st Floor, 12th Main,
3rd Block, Rajajinagar,
Bangalore - 560010, INDIA
Phone: +91 80 23012511
Skype: arun.isqt