Integration Testing Path Based Chapter 13 Call graph based - - PowerPoint PPT Presentation

integration testing path based
SMART_READER_LITE
LIVE PREVIEW

Integration Testing Path Based Chapter 13 Call graph based - - PowerPoint PPT Presentation

Integration Testing Path Based Chapter 13 Call graph based integration Use the call graph instead of the decomposition tree What is a call graph? IntP2 Call graph definition Is a directed, labeled graph Vertices are methods


slide-1
SLIDE 1

Integration Testing Path Based

Chapter 13

slide-2
SLIDE 2

IntP–2

Call graph based integration

 Use the call graph instead of the decomposition tree  What is a call graph?

slide-3
SLIDE 3

IntP–3

Call graph definition

 Is a directed, labeled graph

 Vertices are methods  A directed edge joins calling vertex to the called vertex  Adjacency matrix is also used  Does not scale well, although some insights are useful

 Nodes of high degree are critical

slide-4
SLIDE 4

IntP–4

SATM call graph example

Look at adjacency matrix p204

1 5 7 20 21 9 10 12 11 16 17 18 19 22 23 24 25 26 14 2 3 6 8 4 13 15 27

slide-5
SLIDE 5

IntP–5

Call graph integration strategies

 What types of integration strategies are used?

slide-6
SLIDE 6

IntP–6

Call graph integration strategies – 2

 What types of integration strategies are used?

 Pair-wise Integration Testing  Neighborhood Integration Testing

slide-7
SLIDE 7

IntP–7

Pair-wise integration

 What is pair-wise integration

slide-8
SLIDE 8

IntP–8

Some Pair-wise Integration Sessions

1 5 7 20 21 9 10 12 11 16 17 18 19 22 23 24 25 26 14 2 3 6 8 4 13 15 27

Pair-wise integration session example

slide-9
SLIDE 9

IntP–9

Pair-wise integration – 2

 The idea behind Pair-Wise integration testing

 Eliminate need for developing stubs / drivers  Use actual code instead of stubs/drivers

slide-10
SLIDE 10

IntP–10

Pair-wise integration – 3

 In order not to deteriorate the process to a big-bang strategy

 Restrict a testing session to just a pair of units in the call

graph

 Results in one integration test session for each edge in the

call graph

slide-11
SLIDE 11

IntP–11

Neighbourhood integration

 What is neighbourhood integration?

slide-12
SLIDE 12

IntP–12

Neighbourhood integration example

Neighbourhoods for nodes 16 & 26

slide-13
SLIDE 13

IntP–13

Neighbourhood integration – 2

 The neighbourhood of a node in a graph

 The set of nodes that are one edge away from the given

node

 In a directed graph

 All the immediate predecessor nodes and all the immediate

successor nodes of a given node

slide-14
SLIDE 14

IntP–14

Neighbourhood integration – 3

 Neighborhood integration testing

 Reduces the number of test sessions

 #Neighborhoods = #interior_nodes + #source_nodes

 Fault isolation is difficult

slide-15
SLIDE 15

IntP–15

Pros of call-graph integration

 What are the pros of call-graph integration?

slide-16
SLIDE 16

IntP–16

Pros of call-graph integration – 2

 What are the pros of call-graph integration?

 Reduces the need for drivers and stubs

 Relative to functional decomposition integration

 Neighborhoods can be combined to create “villages”  Closer to a build sequence

 Well suited to devising a sequence of builds with which

to implement a system

slide-17
SLIDE 17

IntP–17

Cons of call-graph integration

 What are the cons of call-graph integration?

slide-18
SLIDE 18

IntP–18

Cons of call-graph integration – 2

 What are the cons of call-graph integration?

 Suffers from fault isolation problems

 Especially for large neighborhoods

 Redundancy

 Nodes can appear in several neighborhoods

 Assumes that correct behaviour follows from correct units

and correct interfaces

 Not always the case

slide-19
SLIDE 19

IntP–19

Path-based integration

 What is path-based integration?

slide-20
SLIDE 20

IntP–20

Path-Based Integration – 2

 Motivation

 Combine structural and behavioral type of testing for

integration testing as we did for unit testing

 Interface-based testing is structural while interaction-based

testing is behavioral

 Basic idea

 Focus on interactions among system units  Rather than merely to test interfaces among separately

developed and tested units

slide-21
SLIDE 21

IntP–21

Source node

 What is a source node?

slide-22
SLIDE 22

IntP–22

Source node – 2

 What is a source node?

 A program statement fragment at which program execution

begins or resumes.

 For example the first “begin” statement in a program.  Nodes immediately after nodes that transfer control to

  • ther units.
slide-23
SLIDE 23

IntP–23

Sink node

 What is a sink node?

slide-24
SLIDE 24

IntP–24

Sink node

 What is a sink node?

 A statement fragment at which program execution

terminates

 The final “end” in a program as well as statements that

transfer control to other units

slide-25
SLIDE 25

IntP–25

Module execution path (MEP)

 What is a module execution path?

slide-26
SLIDE 26

IntP–26

Module execution path (MEP) – 2

 What is a module execution path?

 A sequence of statements within a module that

 Begins with a source node  Ends with a sink node  With no intervening sink nodes

slide-27
SLIDE 27

IntP–27

Message

 What is a message?

slide-28
SLIDE 28

IntP–28

Message – 2

 What is a message?

 A programming language mechanism by which one unit

transfers control to another unit

 Usually interpreted as subroutine / function invocations  The unit which receives the message always returns control

to the message source

slide-29
SLIDE 29

IntP–29

MM-path

 What is an MM-path?

slide-30
SLIDE 30

IntP–30

MM-path – 2

 What is an MM-path?

 A module to module path

 An interleaved sequence of module execution paths and

messages

 Used to describes sequences of module execution paths

that include transfers of control among separate units

 MM-paths always represent feasible execution paths, and

these paths cross unit boundaries

slide-31
SLIDE 31

IntP–31

1 2 3 4 5 6

A B

1 2 3 4

C

1 2 5 3 4

MM-path example

Source nodes

Sink nodes MM-path MEP(C,1) = <1, 2, 4, 5> MEP(C,2) = <1, 3, 4, 5> MEP(B,1) = <1, 2> MEP(B,2) = <3, 4> MEP(A,1) = <1, 2, 3, 6> MEP(A,2) = <1, 2, 4> MEP(A,3) = <5, 6>

Module Execution Paths

slide-32
SLIDE 32

IntP–32

MEPs and DD-paths

 What is the correspondence between MEPs and a DD-

paths?

slide-33
SLIDE 33

IntP–33

MEPs and DD-paths – 2

 What is the correspondence between MEPs and a DD-

paths?

 There is no correspondence between MM execution paths

and DD-paths

slide-34
SLIDE 34

IntP–34

MEPs and slices

 What is the correspondence between MEPs and slices?

slide-35
SLIDE 35

IntP–35

MEPs and slices – 2

 What is the correspondence between MEPs and slices?

 There is no correspondence but there is an analog

 The intersection of a module execution path with a unit

is the analog of a slice with respect to the MM-path function

slide-36
SLIDE 36

IntP–36

MM-path graph

 What is an MM-path graph?

slide-37
SLIDE 37

IntP–37

MM-path graph – 2

 What is an MM-path graph?

 Given a set of units their MM-path graph is the directed

graph in which

 Nodes are module execution paths  Edges correspond to messages and returns from one

unit to another

 The definition is with respect to a set of units

 It directly supports composition of units and

composition-based integration testing

slide-38
SLIDE 38

IntP–38

Solid lines indicate messages (calls) Dashed lines indicate returns from calls

MM-path graph example

MEP(C,2) MEP(A,1) MEP(A,2) MEP(A,3) MEP(B,1) MEP(C,1) MEP(B,2)

slide-39
SLIDE 39

IntP–39

MM-path guidelines

 How long, or deep, is an MM-path? What determines the end

points?

 Quiescence points are natural endpoints for MM-paths

 Message quiescence  Data quiescence

slide-40
SLIDE 40

IntP–40

Message quiescence

 Occurs when a unit that sends no messages is reached

 Module C in the example

slide-41
SLIDE 41

IntP–41

Data quiescence

 Occurs when a sequence of processing ends in the creation

  • f stored data that is not immediately used

 The causal path Data A has no quiescence  The non-causal path D1 and D2 is quiescent at the node P-1

slide-42
SLIDE 42

IntP–42

MM-path metric

 What is the minimum number of MM-paths that are

sufficient to test a system?

slide-43
SLIDE 43

IntP–43

MM-Path metric – 2

 What is the minimum number of MM-paths that are

sufficient to test a system?

 Should cover all source-to-sink paths in the set of units

 What about loops? How should they be treated?

slide-44
SLIDE 44

IntP–44

MM-Path metric – 3

 What about loops? How should they be treated?

 Use condensation graphs to get directed acyclic graphs

 Avoids an excessive number of paths

slide-45
SLIDE 45

IntP–45

Pros of path-based integration

 Benefits of hybrid of functional and structural testing

 Functional – represent actions with input and output  Structural – how they are identified

 Avoids pitfall of structural testing

 Unimplemented behaviours cannot be tested

 Fairly seamless union with system testing

slide-46
SLIDE 46

IntP–46

Pros of path-based integration – 2

 Path-based integration is closely coupled with actual system

behaviour

 Works well with OO testing

 No need for stub and driver development

slide-47
SLIDE 47

IntP–47

Cons of path-based integration

 There is a significant effort involved in identifying MM-paths

slide-48
SLIDE 48

IntP–48

MM-path compared to other methods

Strategy Ability to test interfaces Ability to test co-functionality Fault isolation resolution Functional decomposition Acceptable, can be deceptive Limited to pairs

  • f units

Good to faulty unit Call-graph Acceptable Limited to pairs

  • f units

Good to faulty unit MM-path Excellent Complete Excellent to unit path level