Metamorphic Testing

# Metamorphic Testing

Télécharger la présentation

## Metamorphic Testing

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
##### Presentation Transcript

1. Metamorphic Testing Keith Stobie Test Architect Microsoft

2. Oracles • Oracles, without re-implementingFor example, inverted functions.E.g. you can test SquareRoot() by using “square” as the inverted function:Y := SquareRoot(X)Assert.True( Y*Y == X )

3. Metamorphic Relation (MR) • Reuse existing test cases to generate more tests. (Existing tests as Oracles) • MR: Any relation among the inputs and the outcomes of multiple executions of SUT. SqRt(X)*SqRt(Y) == SqRt(X*Y) • Test 1: SqRt(9) == 3 • Gen Test 2: SqRt(9)*SqRt(2) == SqrRt(9*2)

4. Shortest Path examples • ShortestPath(G, a, b)find the shortest path between vertices a and b in graph G and also output its length, where G is an undirected graph with positive edge weights. (dijkstra’s algorithm) • Reverse:  The shortest path between B and A should be the reverse of the shortest path between A and B. • Prefix: For any vertix, V, on shortest path between vertices A and B, the Shortest path between A and V must be the same sequence as the start of the path between A and B.

5. Test Boyer-Moore example • Boyer-Moore algorithmreturns the index of the first occurrence of a specified pattern within a given text.  • MRs • Reverse: if string X exists in string Y, then the reverse of Y exists in the reverse of X.

6. References • An effective testing method for end-user programmershttp://portal.acm.org/citation.cfm?id=1083231.1083236 • Metamorphic Testing and Its Applicationshttp://www.csis.hku.hk/research/techreps/document/TR-2004-12.pdf • Case Studies on the Selection of Useful Relations in Metamorphic Testinghttp://www.csis.hku.hk/research/techreps/document/TR-2004-13.pdf • An Empirical Comparison between Direct and Indirect Test Result Checking Approaches (SOQUA 2006 – to appear in the ACM Digital Library. http://portal.acm.org/dl.cfm )