Exploiting Symmetries to Test Programs

  • Authors:
  • Arnaud Gotlieb

  • Affiliations:
  • -

  • Venue:
  • ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Symmetries often appear as properties of many artificalsettings. In Program Testing, they can be viewed as propertiesof programs and can be given by the tester to checkthe correctness of the computed outcome. In this paper, weconsider symmetries to be permutation relations betweenprogram executions and use them to automate the testingprocess. We introduce a software testing paradigm calledSymmetric Testing, where automatic test data generation iscoupled with symmetries checking to uncover faults insidethe programs. A practical procedure for checking that aprogram satisfies a given symmetry relation is described.The paradigm makes use of Group theoretic results as aformal basis to minimize the number of outcome comparisonsrequired by the method. This approach appears tobe of particular interest for programs for which neither anoracle, nor any formal specification is available. We implementedSymmetric Testing by using the primitive operationsof the Java unit testing tool Roast [9]. The experimental resultswe got on faulty versions of classical programs of theSoftware Testing community tend to show the effectivenessof the approach.