Class 15 Questions/comments Testing continued Assign (see - - PDF document

class 15
SMART_READER_LITE
LIVE PREVIEW

Class 15 Questions/comments Testing continued Assign (see - - PDF document

Class 15 Questions/comments Testing continued Assign (see Schedule for links) Problem Set 6 discuss Readings 1 Discussion Coincidental correctness Coverage criteria Statement Branch/decision Multiple


slide-1
SLIDE 1

1

Class 15

  • Questions/comments
  • Testing continued
  • Assign (see Schedule for links)
  • Problem Set 6 discuss
  • Readings

Discussion

Coincidental correctness Coverage criteria Statement Branch/decision Multiple condition MCDC

slide-2
SLIDE 2

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case

slide-3
SLIDE 3

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case False True True False 5 True True True True 1

slide-4
SLIDE 4

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case False True True False 5 True True True True 1

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case False True True False 5 False True False True 3 True True True True 1

slide-5
SLIDE 5

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case False True True False 5 False True False True 3 True True True True 1

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case False True True False 5 False True False True 3 True True True True 1

slide-6
SLIDE 6

MC/DC: Example

( a && b && c )

False True True False 5 False False True False 6 False True False False 7 False False False False 8 False False False True 4 False True False True 3 False False True True 2 True True True True 1

  • utcome

c b a Test case False True True False 5 False False True True 2 False True False True 3 True True True True 1

Modified Condition/Decision Coverage (MC/DC)

Tradeoff between number of required test cases and thoroughness of the test Required by both US and European quality standards in aviation, and used in other industries (e.g., automobile, submarine, medical)

slide-7
SLIDE 7

Discussion

Coincidental correctness Coverage criteria Statement Branch/decision Multiple condition MCDC Basis path

Discussion

Coverage criteria (new today) Loop Data-flow

Why was it developed? Three main groups presented criteria What are different data-flow criteria? How can you compute test-requirements? What is the subsumption hierarchy? What are practical considerations for data-flow testing? How would you instrument for data-flow coverage?

slide-8
SLIDE 8

Loop Coverage

Test requirements (given n): all paths that contain at most n iterations of any loop in the program

Loop Coverage: Example

n=0 body of while is never executed n=1 all statements are executed n=2 body of while is executed twice (intuitively, more thorough) n=3 … n must be defined based

  • n some rationale

read(x,y) read(x,y) entry entry a=x a=x b=y b=y while(a!=b){ while(a!=b){ if(a>b) if(a>b) a=a-b a=a-b b=b-a b=b-a } } write(...) write(...) exit exit

T F T F

slide-9
SLIDE 9

Loop Coverage: Problems No algorithm can identify an optimal value for n The cost of the criterion grows exponentially with n

... int a[k], elem=x; for(i=0;a[i]!=elem;i++){ ... } ...

For the example, n >= k may be a good choice, but

n may be different for different loops in the program n may be very high

Data-Flow Coverage Criteria

Basic idea: Test case selection is based on coverage of definitions to uses (du-pairs) Test requirements: sets of du-pairs with respect to variable v

a definition of v is a reference to v where the value of v is changed (e.g., assignment to v, input a value of v) a use v is a reference to v where the value of v is fetched by not changed (e.g., v on right-hand side of assignment, v is output) a def-clear subpath for a definition d of v and a use u of v is a subpath in the CFG between d and u on which v is not redefined two kinds of uses: computation (c-use) and predicate (p-use)

slide-10
SLIDE 10

Data-Flow Coverage Criteria: Example

read(x,y) read(x,y) entry entry a=x a=x b=y b=y while(a!=b){ while(a!=b){ if(a>b) if(a>b) a=a-b a=a-b b=b-a b=b-a } } write(...) write(...) exit exit

T F T F

3 d{a} 3 d{a} 4 d{b} 4 d{b} 5 u{a,b} 5 u{a,b} 6 u{a,b} 6 u{a,b} 7 u{a,b} 7 u{a,b} 8 u{a,b} 8 u{a,b} 9 9 10 u{a} 10 u{a} exit exit

T F T F

7’ d{a} 7’ d{a} 8’ d{b} 8’ d{b}

Data-Flow Coverage Criteria: Example

du pairs def to c-use def- to p-use

3 d{a} 3 d{a} 4 d{b} 4 d{b} 5 u{a,b} 5 u{a,b} 6 u{a,b} 6 u{a,b} 7 u{a,b} 7 u{a,b} 8 u{a,b} 8 u{a,b} 9 9 10 u{a} 10 u{a} exit exit

T F T F

7’ d{a} 7’ d{a} 8’ d{b} 8’ d{b}