Exploiting symmetries to test programs

24Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Symmetries often appear as properties of many artifical settings. In program testing, they can be viewed as properties of programs and can be given by the tester to check the correctness of the computed outcome. In this paper, we consider symmetries to be permutation relations between program executions and use them to automate the testing process. We introduce a software testing paradigm called symmetric testing, where automatic test data generation is coupled with symmetries checking to uncover faults inside the programs. A practical procedure for checking that a program satisfies a given symmetry relation is described. The paradigm makes use of group theoretic results as a formal basis to minimize the number of outcome comparisons required by the method. This approach appears to be of particular interest for programs for which neither an oracle, nor any formal specification is available. We implemented symmetric testing by using the primitive operations of the Java unit testing tool Roast by N. Daley, D. Hoffman, and P. Strooper (2002). The experimental results we got on faulty versions of classical programs of the software testing community tend to show the effectiveness of the approach.

Cite

CITATION STYLE

APA

Gotlieb, A. (2003). Exploiting symmetries to test programs. In Proceedings - International Symposium on Software Reliability Engineering, ISSRE (Vol. 2003-January, pp. 365–374). IEEE Computer Society. https://doi.org/10.1109/ISSRE.2003.1251058

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free