The Oracle Problem in Software Testing: A Survey

The Oracle Problem in Software Testing: A Survey
复制标题

DOI:
10.1109/tse.2014.2372785
复制
发表时间:
2015-05-01
影响因子:
7.4
通讯作者:
Yoo, Shin
Yoo, Shin
中科院分区:
计算机科学1区
文献类型:
--
作者:
Barr, Earl T.;Harman, Mark;Yoo, Shin

文献摘要

被引文献

相似文献

测试涉及检查系统的行为以发现潜在的故障。给定一个系统的输入,区分相应的所需行为与潜在不正确行为的挑战称为“测试甲骨文问题”。测试Oracle自动化对于删除当前瓶颈而抑制更大的总体测试自动化很重要。没有测试Oracle自动化,人必须确定观察到的行为是否正确。关于测试甲壳的文献引入了甲骨文自动化的技术,包括建模,规格,合同驱动的开发和变质测试。当这些都不足够时,测试甲骨文信息的最终来源仍然是人类,他们可能意识到非正式的规格,期望,规范和域特定信息,这些信息提供了非正式的甲骨文指导。所有形式的测试甲骨文,甚至是谦虚的人,都涉及降低成本和增加收益的挑战。本文对测试甲骨文问题的当前方法进行了全面的调查,并对软件测试研究和实践的这一重要领域的趋势进行了分析。
Testing involves examining the behaviour of a system in order to discover potential faults. Given an input for a system, the challenge of distinguishing the corresponding desired, correct behaviour from potentially incorrect behavior is called the "test oracle problem". Test oracle automation is important to remove a current bottleneck that inhibits greater overall test automation. Without test oracle automation, the human has to determine whether observed behaviour is correct. The literature on test oracles has introduced techniques for oracle automation, including modelling, specifications, contract-driven development and metamorphic testing. When none of these is completely adequate, the final source of test oracle information remains the human, who may be aware of informal specifications, expectations, norms and domain specific information that provide informal oracle guidance. All forms of test oracles, even the humble human, involve challenges of reducing cost and increasing benefit. This paper provides a comprehensive survey of current approaches to the test oracle problem and an analysis of trends in this important area of software testing research and practice.