Metamorphic Testing Tsong Yueh Chen Swinburne University of - - PowerPoint PPT Presentation

metamorphic testing
SMART_READER_LITE
LIVE PREVIEW

Metamorphic Testing Tsong Yueh Chen Swinburne University of - - PowerPoint PPT Presentation

Metamorphic Testing Tsong Yueh Chen Swinburne University of Technology 20 th CREST Open Workshop 1 Oracle Problem Oracle - a mechanism to verify the correctness of the outputs Oracle Problem absence of oracle or too expensive to


slide-1
SLIDE 1

1

Metamorphic Testing

Tsong Yueh Chen Swinburne University of Technology 20th CREST Open Workshop

slide-2
SLIDE 2

2

Oracle Problem

  • Oracle - a mechanism to verify the

correctness of the outputs

  • Oracle Problem – absence of oracle or too

expensive to apply the oracle

slide-3
SLIDE 3

3

A Motivating Example

  • sin function

– sin(0o )=0 – sin(30o)=0.5

  • Suppose the program returns:

sin(29.8o )=0.51234 incorrect sin(29.8o )=0.49876 correct?

slide-4
SLIDE 4

4

A Motivating Example

  • sin function has the following properties

– sin(x)= sin(x+360) – ……

  • Execute the program with sin(389.8o )

compare sin(29.8o ) and sin(389.8o )

slide-5
SLIDE 5

5

Metamorphic Testing (A Simplified Form)

  • Source (original) test cases – generated

according to certain strategies

  • Follow-up test cases could be constructed

from the successful test cases with reference to certain properties of the problem

  • Such properties are known as metamorphic

relations

slide-6
SLIDE 6

6

Metamorphic Testing

  • Some Characteristics

– Necessary properties of the problem – not restricted to identity relations and numeric relations – Multiple executions – at least one source test case and one follow-up test case – Follow-up test cases may depend on the outputs

  • f the source test cases
slide-7
SLIDE 7

7

Metamorphic Testing

  • test case – metamorphic test group
  • test outcome of pass or failure – test
  • utcome of satisfaction or violation of a

metamorphic relation

slide-8
SLIDE 8

8

Metamorphic Testing

  • Aimed at alleviating the oracle problem
  • A property-based testing method –

providing a new perspective to design test cases

  • Metamorphic relation
slide-9
SLIDE 9

9

Categories of Research in MT

  • Use of MT to test application domains

which have oracle problem

  • Integration of MT with other software

analysis and testing methods

  • Its own theory
slide-10
SLIDE 10

10

Testing Software with Oracle Problem

  • Bioinformatics programs
  • Embedding systems
  • Machine learning software
  • Optimization systems
  • …..
slide-11
SLIDE 11

11

Integration with Other Methods

  • Slicing – metamorphic slice
  • Spectrum Based Fault Localizations (SBFL)
  • Symbolic execution – semi-proving which

supports debugging, testing and proving

slide-12
SLIDE 12

12

Metamorphic Slices

  • Slicing may be the most important concept

in software analysis

  • Conventional slices are data-based
  • Metamorphic slices are also property-based
  • Many applications of slicing assume the

existence of a test oracle

slide-13
SLIDE 13

13

Existing SBFL Techniques

  • A test suite – the test outcome of each test

case is known (oracle assumed)

  • A program spectrum – execution slice
  • A risk evaluation formula to assign a risk

value of being faulty to each statement

slide-14
SLIDE 14

14

SBFL Without Oracle

  • slice – metamorphic slice
  • test case – metamorphic test group
  • pass or failure of a test case – satisfaction or

violation of a metamorphic test group

slide-15
SLIDE 15

15

Integration with Symbol Execution

  • Proving metamorphic relations –

metamorphic proving

  • Sometimes able to prove program
  • Providing useful information to debug
slide-16
SLIDE 16

16

Theory for Metamorphic Testing

  • Metamorphic Relations

– Necessary properties involving multiple inputs

  • Identification or generation of MRs

– Many MRs

  • Set of MRs treated as input domain – selection

strategies for MRs

  • Prioritization of MRs
slide-17
SLIDE 17

17

Generation of MRs

  • Is it feasible to identify or generate MRs?
slide-18
SLIDE 18

18

Generation of MRs

  • Should target at

– Development of guidelines or systematic methods for a specific type of application domains – Development of semi-automated methods

slide-19
SLIDE 19

19

Prioritization of MRs

Consider sin(x)

MR1: sin(x) = sin(x + 2 π) MR2: sin(x) = -sin(x + π) MR3: sin(-x)= -sin(x) MR4: sin(x) = sin(π-x) MR5: sin(x) = -sin(2 π - x) …

slide-20
SLIDE 20

20

Priorization Approaches

  • Usage profile
  • Algorithm
slide-21
SLIDE 21

21

Usage Profile

§ sin(x)

§ Electrical engineers

§ sin(x) = sin(x + 2 π)

§ Surveyors

§ sin(-x)= -sin(x) § sin(x) = sin(π-x)

slide-22
SLIDE 22

22

Algorithm

§ A problem may be solved by more than one algorithm – sorting, adaptive random testing § The same algorithm may be implemented in different ways

slide-23
SLIDE 23

23

Example

§ Shortest Path problem: SP(G, a, b) using forward expansion

  • |SP(G, a, b)| = |SP(G, a, c)| +|SP(G, c, b)|
  • |SP(G, a, b)| = |SP(G, b, a)|
slide-24
SLIDE 24

24

A Test Case Selection Strategy

  • Observation: MT reveals bugs in some

software that has been used and tested by conventional testing methods for a long time. schedule and print_token

  • A testing method for end-users
slide-25
SLIDE 25

25

End-User Software Engineering

§ Source test case selection strategy – any available; otherwise special values, random

  • r ad hoc selection

§ Selection of MRs – § usage profile § end-user’s domain knowledge § coding

slide-26
SLIDE 26

26

Specifications

Is MT a Black-Box Method?

slide-27
SLIDE 27

27

Example

− + − = ! 5 ! 3 ) sin(

5 3

x x x x

slide-28
SLIDE 28

28

Example

  • MR1 sin(-x) = -sin(x)
  • MR2: sin(x) = sin(x + 2 π)
slide-29
SLIDE 29

29

Conclusion

slide-30
SLIDE 30

30

Thanks