Inner Oracles: Input-Specific Assertions on Internal States

Yingfei Xiong,Dan Hao,Lu Zhang,Tao Zhu,Muyao Zhu,Tian Lan
DOI: https://doi.org/10.1145/2786805.2803204
2015-01-01
Abstract:Traditional test oracles are defined on the outputs of test executions, and cannot assert internal states of executions. Traditional assertions are common to all test execution, and are usually more difficult to construct than on oracle for one test input. In this paper we propose the concept of inner oracles, which are assertions on internal states that are specific to one test input. We first motivate the necessity of inner oracles, and then show that it can be implemented easily using the available programming mechanisms. Next, we report two initial empirical studies on inner oracles, showing that inner oracles have a significant impact on both the fault-detection capability of tests and the performance of test suite reduction. Finally, we highlight the implications of inner oracles on several research and practical problems.
What problem does this paper attempt to address?