Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Testing Techniques (STT)

Similar presentations


Presentation on theme: "Software Testing Techniques (STT)"— Presentation transcript:

1 Software Testing Techniques (STT)
Unit 3 – Transaction Flow & Data Flow testing Sudhakar yadav Compiled with reference from: Software Testing Techniques: Boris Beizer Craft of Software Testing: Brain Marrick

2 Transaction-Flow Testing
U2 We will see in this part of Unit 2: Concepts of Transaction flows Transaction-flow testing ref boris beizer

3 Transaction-Flow Testing
U2 Contents Definitions of Transaction, Transaction flow, Transaction flow graph It’s representation, implementation architecture in an O.S. & implementation in a system A perspective of TFG model. View wrt DFG, CFG Handling cases – decisions, biosis, mitosis, transactional junction, absorption & conjugation TFG is not structured - Reasons Transaction Flow Testing Techniques Building transaction flows Inspections, Reviews, and walkthroughs Path selection Path sensitization Instrumentation Test data bases Test Execution Transaction-flow implementation & testing related comments Translation based systems Hidden languages ref boris beizer

4 Definitions of Transaction,Transaction-flow, TFG
U2 Transaction-flow Transaction-flow represents a system’s processing. Functional testing methods are applied for testing T-F. Transaction-flow Graph TFG represents a behavioral (functional) model of the program (system) used for functional testing by an independent system tester. Transaction is a unit of work seen from system’s user point of view. consists of a sequence of operations performed by a system, persons or external devices. is created (birth) due to an external act & up on its completion (closure), it remains in the form of historical records. ref boris beizer

5 U2-B A Simple Transaction
Example: the sequence of steps in a transaction in an online information retrieval system 1. accept inputs Accept Inputs 2. Validate inputs (Birth of tr.) Validate inputs 3. Transmit ack. to the user Process the request 4. Process input Update file 5. Search file Transmit output 6. Request direction from user Record transaction in log & cleanup (Closure) Users View of a transaction : Single step Systems view : Sequence of many operations ref boris beizer

6 Example of a Transaction flow (diagram)
U2 User (terminal) Terminal controller CPU User Begin Request order from CPU Type cancel help Accept Order from CPU Process Form B B Transmit Page to terminal C Accept Input Field More Fields? Y To CPU D User wants Review? D CPU- Accept Confirm Valid ? Y More Pages ? N Done Transmit Diagnostic to Terminal C Set up Review ref boris beizer

7 Definitions U2 Transaction-flow Graph : a scenario between users & computer Transaction-flow : an internal sequence of events in processing a transaction Uses of Transaction-flow Specifying requirements of big, online and complicated systems. Airline reservation systems, air-traffic control systems. Loops are less as compared to CFG. Loops are used for user input error processing ref boris beizer

8 Implementation of Transaction-Flow (in a system)
U2 Implicit in the design of system’s control structure & associated database. No direct one-to-one correspondence between the “processes” and “decisions” of transaction-flow, and the corresponding program component. A transaction-flow is a path taken by the transaction through a succession of processing modules. A transaction is represented by a token. A transaction-flow graph is a pictorial representation of what happens to the tokens. Input S A B C D E S : Scheduler A, B, C, D, E : Processes Output ref boris beizer

9 Implementation of Transaction-Flow
U2 System Control Structure (architecture of the implementation) : Front End Input Queue EXECUTIVE SCHEDULER - AND / OR OPERATING SYSTEM DISPATCHER Output Module Process Queues A Processor B Processor C Processor D Processor E Processor Application Processes Do All B’s Do All D’s Disc Reads Do All C’s Do All A’s Tape Writes Do All E’s 2 1 Executive / Dispatcher Flowchart (a sample sequence) ref boris beizer

10 Implementation of Transaction-Flow
U2 System control structure System is controlled by a scheduler … A Transaction is created by filling in a Transaction Control Block (TCB) by user inputs and by placing that token on input Q of Scheduler. Scheduler examines and places it on appropriate process Q such as A. When A finishes with the Token, it places the TCB back on the scheduler Q. Scheduler routes it to the next process after examining the token : It contains tables or code to route a token to the next process. It may contain routing information only in tables. Scheduler contains no code / data. Processing modules contain code for routing. ref boris beizer

11 Implementation of Transaction-Flow
U2 Transaction Processing System (simplified): There are many Tr. & Tr-flows in the system. Scheduler invokes processes A to E as well as disk & tape read & writes. The order of execution depends on priority & other reasons. Cyclic structure like in this example is common in process control & communication systems.  The criteria for implementation mechanism depends on performance and resource optimization. ref boris beizer

12 A perspective of Transaction-Flow
U2 Transaction-flow testing is a block box technique. (as we assumed nothing regarding computer, communications, environment, O.S., transaction identity or structure or state.) TFG is a kind of DFG. TFG has tokens, & DFG has data objects with history of operations applied on them. Many techniques of CFG apply to TFG & DFG Decision nodes of TFG have exception exits to the central recovery process. So, we ignore the effect of interrupts in a Transaction-flow. ref boris beizer

13 Transaction Flows – splitting & merging decisions
U2-B Splits of transactions (Births) A decision point in TFG Alternative 1 Alternative 2 Biosis Daughter Tr. Parent Daughter Tr. Parent Mitosis ref boris beizer

14 Transaction Flows – splitting & merging decisions
U2 Mergers of transactions Junction Path 2 Path 1 Continue Daughter Tr. Predator Absorption Daughter Parent Conjugation ref boris beizer

15 TFG – splitting, merging Transactions
U2 NOTES: Multiple meanings now for decision and junction symbols in a TFG. Simple TFG model is not enough to represent multi-processor systems & associated coordination systems. Petrinet model uses operations for all the above. But Petrinets are applied to H/W, N/W protocol testing – but not Software. ref boris beizer

16 Simplified TFG model Simplify TFG model
U2 Simplify TFG model Add New Tr-Flows for Biosis, Mitosis, Absorption, Conjugation Problems for programmer, designer & test designer. Need to design specific tests – possibility of bugs. ref boris beizer

17 Transaction-flow Structure
U2-B Reasons for Unstructuredness Processes involve Human Users 2. Part of Flow from External Systems 3. Errors, Failures, Malfunctions & Recovery Actions 4. Transaction Count, Complexity. Customer & Environment ref boris beizer

18 Transaction-flow Structure
U2-B Reasons for Unstructuredness … New Transactions, & Modifications Approximation to Reality Attempt to Structure ref boris beizer

19 Transaction - Flow Testing - Steps
U2-B First, Build / Obtain Transaction Flows Represent Explicitly Design details the Main Tr-Flows Create From PDL HIPO charts & Petrinet Representations Objective – Trace the transaction ref boris beizer

20 Transaction - Flow Testing - Steps
U2-B Inspections, Reviews & Walkthroughs Start From Preliminary Design Conducting Walkthroughs Discuss enough Transaction Types (98% Transactions) User needs & Functional terms (Design independent) Traceability to Requirements ref boris beizer

21 Transaction - Flow Testing - Steps
U2-B Inspections, Reviews & Walkthroughs … Design Tests for C1 + C2 coverage Additional Coverage (> C1+C2) Paths with loops, extreme values, domain boundaries Weird cases, long & potentially troublesome Tr. Design Test cases for Tr. Splits & mergers Publish Selected Test Paths early Buyer’s Acceptance – functional & acceptance tests ref boris beizer

22 Transaction - Flow Testing Techniques
U2-B Path Selection Covering Set (C1+C2) of Functionally Sensible Tr. Add Difficult Paths Review with designers & implementers Exposure of interface problems & duplicated processing Very few Implementation bugs may remain Transaction-flow Path Covering Set belongs in System Feature Tests ref boris beizer

23 Transaction - Flow Testing Techniques
U2-B Sensitization Functionally Sensible Paths – Simple Error, Exception, External Protocol Interface Paths - Difficult Testing Tr.–Flows with External Interfaces Use patches & break points, mistune, and break the rules, ref boris beizer

24 Transaction - Flow Testing Techniques
U2-B Instrumentation Link Counters are not Useful. Need Trace Queues on which Tokens resided Entries to & Exits from Dispatcher A Running Log Make Instrumentation as part of System Design ref boris beizer

25 Transaction - Flow Testing Techniques
U2-B Test Data bases Design & Maintenance of a Test Data base - Effort Mistakes Unawareness about design of a centrally administered test DB Test DB design by Testers Using one DB for all tests (need 4 to 5) Need experienced System & Test Designers ref boris beizer

26 Transaction - Flow Testing Techniques
U2-B Test Execution Use Test Execution Automation Have to do a large # of Tests for C1+C2 coverage ref boris beizer

27 Transaction - Flow Testing - Implementation
U2-B Transaction based systems TCB Centralized, Common Processing Queues Just O(n) Queues for Links of O(n2) Transaction Dispatcher Uses tables & Finite State Machines Recovery & Other Logs Key events in Tr – Flow Self-Test Support Privileged modes in Transaction control tables ref boris beizer

28 Transaction - Flow Testing - Caution
U2-B Transaction - Flow Testing - Caution Hidden Languages (flow control language) Transaction Flows based on control codes in TCB or DB Undeclared. Syntax & Semantics are not debugged. Possibility of bugs ref boris beizer

29 Software Testing Methodology
U2 To Unit 3 : Data flow testing … ref boris beizer

30 Data - Flow Testing - Basics
U2 We will see in this part of Unit 2: Concepts of Data flows Data-flow testing strategies ref boris beizer

31 Data - Flow Testing - Basics
U2 Contents Synopsis Basics Intro to Data flow, data flow graphs Motivation & Assumption Data flow model Data Flow Testing Strategies General strategy Definitions Strategies: Slicing, Dicing, Data flow, Effectiveness Application of DFT, Tools & Effectiveness ref boris beizer

32 Data - Flow Testing - Basics
U2 Anomaly Unreasonable processing on data Use of data object before it is defined Defined data object is not used Data Flow Testing (DFT) uses Control Flow Graph (CFG) to explore dataflow anomalies. DFT Leads to testing strategies between P and P1 / P2 ref boris beizer

33 Data - Flow Testing - Basics
U2 Definition: DFT is a family of test strategies based on selecting paths through the program’s control flow in order to explore the sequence of events related to the status of data objects. Example: Pick enough paths to assure that every data item has been initialized prior to its use, or that all objects have been used for something. ref boris beizer

34 Data - Flow Testing - Basics
U2 Motivation Confidence in the program Data dominated design Code migrates to data.. Source Code for Data Declarations Data flow Machines vs Von Neumann’s Abstract M I M D Language & compiler take care of parallel computations ref boris beizer

35 Data - Flow Testing - Basics - Motivation
U2 Program Control flow with Von Neumann’s paradigm Given m, n, p, q, find e. e = (m+n+p+q) * (m+n-p-q) a := m + n b := p + q c := a + b d := a - b e := c * d a = n+m b=p+q c=a+b d=a-b e=c*d Multiple representations of control flow graphs possible. ref boris beizer

36 Data - Flow Testing - Basics - Motivation
U2 Program Flow using Data Flow Machines paradigm BEGIN PAR DO READ m, n, n, p, q END PAR a := m+n b := p+q c := a+b d := a-b e := c * d END m p q n a := m+n b := p+q c := a+b d := a-b e := c * d The interrelations among the data items remain same. ref boris beizer

37 Data - Flow Testing - Basics - Motivation
U2 Control flow graph Multiple representations Data Flow Graph A spec. for relations among the data objects. Covering DFG => Explore all relations under some test. ref boris beizer

38 Data - Flow Testing - Basics
U2 Assumptions Problems in a control flow Problems with data objects ref boris beizer

39 Data - Flow Testing - Basics
U2 Data Flow Graphs (DFG) It is a graph with nodes & directed links Test the Von Neumann way - Convert to a CFG Annotate : program actions (weights) ref boris beizer

40 Data - Flow Testing - Basics
U2 Data Object State & Usage Program Actions (d, k, u): Defined (created) - explicitly or implicitly (d) Killed (released) - directly or indirectly (k) Used (u) In a calculation - (c) In a predicate - directly or indirectly (p) ref boris beizer

41 Data - Flow Testing - Basics
U2 Data Flow Anomalies A Two letter sequence of Actions (d, k, u) dd : harmless, suspicious dk : probably a bug. du : normal kd : normal kk : harmless, but probably a bug ku : a bug ud : normal Redefinition. uk : normal uu : normal A Action ref boris beizer

42 Data - Flow Testing - Basics - Motivation
U2 Program Flow using Data Flow Machines paradigm BEGIN PAR DO READ m, n, n, p, q END PAR a := m+n b := p+q c := a+b d := a-b e := c * d END m p q n a := m+n b := p+q c := a+b d := a-b e := c * d The interrelations among the data items remain same. ref boris beizer

43 Data - Flow Testing - Basics – Data Flow Anomalies
U2 Actions on data objects - no action from START to this point From this point till the EXIT - d normal - u anomaly - k anomaly k- normal u - normal possibly an anomaly d - possibly anomalous ref boris beizer

44 Data - Flow Testing - Basics
U2 Data Flow Anomaly State graph Data Object State K, D, U, A Processing Step k, d, u ref boris beizer

45 Data - Flow Testing - Basics
U2 Data Flow Anomaly State graph Object state Unforgiving Data flow state graph K D U A u d k, u d, k d, k, u Undefined Anomalous Defined Used ref boris beizer

46 Data - Flow Testing - Basics
U2 Data Flow Anomaly State graph Forgiving Data flow state graph u A  DD, DK, KU k u KU K k u k DK d k d u k U D d u d DD u d ref boris beizer

47 Data - Flow Testing - Basics
U2 Data Flow State Graphs Differ in processing of anomalies Choice depends on Application, language, context ref boris beizer

48 Data - Flow Testing - Basics
U2 Static vs Dynamic Anomaly Detection Static analysis of data flows Dynamic analysis Intermediate data values ref boris beizer

49 Data - Flow Testing - Basics
U2 Insufficiency of Static Analysis (for Data flow) Validation of Dead Variables Validation of pointers in Arrays Validation of pointers for Records & pointers Dynamic addresses for dynamic subroutine calls Identifying False anomaly on an unachievable path Recoverable anomalies & Alternate state graph Concurrency, Interrupts, System Issues ref boris beizer

50 Data - Flow Testing - Basics
U2 Data Flow Model Based on CFG CFG annotated with program actions link weights : dk, dp, du etc.. Not same as DFG For each variable and data object ref boris beizer

51 Data - Flow Testing - Basics : Data Flow Model
U2 Procedure to Build: Entry & Exit nodes Unique node identification Weights on out link Predicated nodes Sequence of links Join Concatenate weights The converse ref boris beizer

52 Data - Flow Testing - Basics : Data Flow Model
U2 Example: an – 1 Z = b START a - 1 INPUT a, b, n Z := 0 IF a = 1 THEN Z := 1 GOTO DONE1 r := 1 c := 1 POWER: c := c * a r := r + 1 IF r <= n THEN GO TO POWER Z := (c – 1) / (a – 1) DONE1: Z := b + Z END ref boris beizer

53 Data - Flow Testing - Basics – Data Flow model
U2 CFG for the Example Read a,b,n Z := 0 Z := 1 Z := b + Z 1 2 5 6 a = 1? P1 Y Z := (c-1)/(a-1) 3 P2 4 r < n ? r := 1 c:=1 r := r+1, c:= c*a Y ref boris beizer

54 Data - Flow Testing - Basics – Data Flow model
U2 CFG annotated – Data Flow Model for Z d or kd cd or ckd 1 d 2 5 6 a = 1? P1 Y d or kd 3 P2 4 r < n ? Y ref boris beizer

55 Data - Flow Testing - Basics – Data Flow model
U2 CFG annotated – Data Flow Model for c 1 2 5 6 a = 1? P1 Y c- -d 3 P2 4 ckd or kd r < n ? Y ref boris beizer

56 Data - Flow Testing - Basics – Data Flow model
U2 CFG annotated – Data Flow Model for r 1 2 5 6 a = 1? P1 Y p- -d 3 P2 4 ckd or kd r < n ? Y ref boris beizer

57 Data - Flow Testing - Basics – Data Flow model
U2 CFG annotated – Data Flow Model for b 1 d 2 5 c 6 a = 1? P1 Y 3 P2 4 r < n ? Y ref boris beizer

58 Data - Flow Testing - Basics – Data Flow model
U2 CFG annotated – Data Flow Model for n 1 d 2 5 6 a = 1? P1 Y p- 3 P2 4 r < n ? Y ref boris beizer

59 Data - Flow Testing - Basics – Data Flow model
U2 CFG annotated – Data Flow Model for a 1 d 2 5 6 a = 1? P1 p c- 3 P2 4 c r < n ? Y ref boris beizer

60 Data - Flow Testing - Basics – Data Flow model
U2 A DFM for each variable Single DFM for multiple variables Use weights subscripted with variables ref boris beizer

61 Data - Flow Testing – Data Flow Testing Strategies
U2 A structural testing strategy (path testing) Add, data flow strategies with link weights Test path segments to have a ‘d’ (or u, k, du, dk) ref boris beizer

62 Data - Flow Testing – Data Flow Testing Strategies
U2 DEFINITIONS w.r.t. a variable or data object ‘v’ Assume all DF paths are achievable Definition-clear path segment no k, kd Loop-free path segment Simple path segment du path from node i to k definition-clear & simple c definition-clear & loop-free p ref boris beizer

63 Data - Flow Testing – Data Flow Testing Strategies
U2 DFT Strategies All-du paths (ADUP) All uses (AU) strategy All p-uses/some c-uses and All c-uses/some p-uses All Definitions Strategy All p-uses, All c-uses Strategy Purpose: Test Design, Develop Test Cases ref boris beizer

64 Data - Flow Testing – Data Flow Testing Strategies
U2 All-du paths (ADUP) Strongest DFT Every du path for every variable for every definition to every use All uses (AU) strategy At least one definition clear path segment from every definition of every variable to every use of that definition be exercised under some test. At least one path segment from every definition to every use that can be reached from that definition. ref boris beizer

65 Data - Flow Testing – Data Flow Testing Strategies
U2 All p-uses/some c-uses and All c-uses/some p-uses APU + c Stronger than P2 ACU + p Weaker than P2 ref boris beizer

66 Data - Flow Testing – Data Flow Testing Strategies
U2 All Definitions Strategy (AD) Cover every definition by at least one p or c Weaker than ACU + p and APU + c ref boris beizer

67 Data - Flow Testing – Data Flow Testing Strategies
U2 All-Predicate Uses, All-Computational Uses Strategy APU : Include definition-free path for every definition of every variable from the definition to predicate use. ACU : Include for every definition of every variable include at least one definition-free path from the definition to every computational use. ref boris beizer

68 Data - Flow Testing – Data Flow Testing Strategies
U2 Ordering the strategies All Paths All du Paths All-uses Paths (AU) All-c / some-p (ACU+p) All c uses (ACU) All-p / some-c APU+c All P-uses APU All Branches P2 All Stmts P1 All Defs AD ref boris beizer

69 Data - Flow Testing – Data Flow Testing Strategies
U2 Testing, Maintenance & Debugging in the Data Flow context Slicing: A static program slice is a part of a program defined wrt a variable ‘v’ and a statement ‘s’; It is the set of all statements that could affect the value of ‘v’ at stmt ‘s’. Stmt var v stmt2 Stmt var v Stmt var v Stmt s var v ref boris beizer

70 Data - Flow Testing – Data Flow Testing Strategies
U2 Testing, Maintenance & Debugging in the Data Flow context Dicing: A program dice is a part of slice in which all stmts. which are known to be correct have been removed. Obtained from ‘slice’ by incorporating correctness information from testing / debugging. ref boris beizer

71 Data - Flow Testing – Data Flow Testing Strategies
U2 Testing, Maintenance & Debugging in the Data Flow context Debugging: Select a slice. Narrow it to a dice. Refine the dice till it’s one faulty stmt. ref boris beizer

72 Data - Flow Testing – Data Flow Testing Strategies
U2 Testing, Maintenance & Debugging in the Data Flow context Dynamic Slicing: Refinement of static slicing Only achievable paths to the stmt ‘s’ in question are included. Slicing methods bring together testing, maintenance & debugging. ref boris beizer

73 Data - Flow Testing - – Data Flow Testing Strategies
U2 Application of DFT Comparison Random Testing, P2, AU by Ntafos AU detects more bugs than P2 with more test cases RT with less # of test cases Comparison of P2, AU by Sneed AU detects more bugs with 90% Data Coverage Requirement. ref boris beizer

74 Data - Flow Testing - – Data Flow Testing Strategies
U2 Application of DFT Comparison of # test cases for ACU, APU, AU & ADUP by Weyuker using ASSET testing system Test Cases Normalized. t = a + b * d d = # binary decisions At most d+1 Test Cases for P2 loop-free # Test Cases / Decision ADUP > AU > APU > ACU > revised-APU ref boris beizer

75 Data - Flow Testing - – Data Flow Testing Strategies
U2 Application of DFT Comparison of # test cases for ACU, APU, AU & ADUP by Shimeall & Levenson Test Cases Normalized. t = a + b * d (d = # binary decisions) At most d+1 Test Cases for P loop-free # Test Cases / Decision ADUP ~ ½ APU* AP ~ AC ref boris beizer

76 Data - Flow Testing - – Data Flow Testing Strategies
U2 Application of DFT DFT vs P1, P2 DFT is Effective Effort for Covering Path Set ~ Same DFT Tracks the Coverage of Variables Test Design is similar ref boris beizer

77 Data - Flow Testing - – Data Flow Testing Strategies
U2 DFT TOOLS Cost-effective development Commercial tools : Can possibly do Better than Commercial Tools Easier Integration into a Compiler Efficient Testing ref boris beizer

78 Data - Flow Testing – Questions from the previous year’s exams
How is data flow testing (DFT) helpful in fulfilling gaps in path testing? Explain the data flow Graphs (DFG). How can anomaly be detected? Explain different types of data flow anomalies and Data flow Anomaly State Graphs. Write applications of Data Flow Testing. Name and explain Data flow testing strategies. ref boris beizer

79 Data - Flow Testing – Questions from the previous year’s exams
1. Distinguish Control Flow and Transaction flow. (6 M) * 2. What is meant by transaction flow testing. Discuss its significance. (10 M)* 3. Discuss in detail data - flow testing strategies. (16 M)*** 4. What are data - flow anomalies? How data flow testing can explore them? (16M) 5. What are data-flow anomalies? How data flow testing can explore them? (16M) 6. What is meant by a program slice? Discuss about static and dynamic program slicing. (8 M) 7. Explain the terms Dicing, Data-flow and Debugging. (8 M) 8. What is meant by data flow model? Discuss various components of it? (8 M) 9. Compare data flow and path flow testing strategies? (8 M) 10.Explain data-flow testing with an example. Explain its generalizations and limitations.(8 M) ref boris beizer

80 Data - Flow Testing U-2C To Unit 4 … Domain Testing ref boris beizer


Download ppt "Software Testing Techniques (STT)"

Similar presentations


Ads by Google