Title :
Techniques for testing scientific programs without an oracle
Author :
Kanewala, Upulee ; Bieman, James M.
Author_Institution :
Comput. Sci. Dept., Colorado State Univ., Fort Collins, CO, USA
Abstract :
The existence of an oracle is often assumed in software testing. But in many situations, especially for scientific programs, oracles do not exist or they are too hard to implement. This paper examines three techniques that are used to test programs without oracles: (1) Metamorphic testing, (2) Run-time Assertions and (3) Developing test oracles using machine learning. We examine these methods in terms of their (1) fault finding ability, (2) automation, and (3) required domain knowledge. Several case studies apply these three techniques to effectively test scientific programs that do not have oracles. Certain techniques have reported a better fault finding ability than the others when testing specific programs. Finally, there is potential to increase the level of automation of these techniques, thereby reducing the required level of domain knowledge. Techniques that can potentially be automated include (1) detection of likely metamorphic relations, (2) static analyses to eliminate spurious invariants and (3) structural analyses to develop machine learning generated oracles.
Keywords :
learning (artificial intelligence); program diagnostics; program testing; domain knowledge; fault finding ability; machine learning; metamorphic testing; run-time assertions; scientific programs; software testing; static analysis; structural analysis; test oracles; Automation; Decision trees; Predictive models; Software; Software testing; Training; Assertion checking; Machine learning; Metamorphic relation; Metamorphic testing; Mutation analysis; Scientific software testing; Test oracles;
Conference_Titel :
Software Engineering for Computational Science and Engineering (SE-CSE), 2013 5th International Workshop on
Conference_Location :
San Francisco, CA
DOI :
10.1109/SECSE.2013.6615099