The Oracle Problem in Software Testing: A Survey

Проблема оракула в тестировании программного обеспечения: обзор
Mark Harman, Earl T. Barr, Shin Yoo, Phil McMinn, Muzammil Shahbaz
2014-11-20

contract-driven developmentmetamorphic testingsoftware testingtest oracle automationtest oracle problem
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.
1
All test-oracle approaches involve balancing the cost of obtaining oracle information against its testing benefits; the paper surveys these approaches and analyzes research trends.
2
Automating test oracles is essential for reducing the human bottleneck that limits broader software test automation.
3
Existing oracle-automation approaches include modeling, formal specifications, contract-driven development, and metamorphic testing.
4
The test oracle problem is the challenge of determining whether a system’s behavior for a given input is correct or faulty.
5
When automated techniques are inadequate, humans provide oracle guidance through informal specifications, expectations, norms, and domain knowledge.

Test oracle (mechanism for deciding correct vs incorrect behaviour of a software system given inputs)

approaches to automating test oracles and the associated cost–benefit challenges

Publication Details
Publication Date
2014-11-20
Journal
Publisher
ISSN
Access Type
Author Information
Authors
Mark Harman
Earl T. Barr
Shin Yoo
Phil McMinn
Muzammil Shahbaz
Explore further
Open the scid.ai AI chat with a ready-made request: it will find papers on a similar topic and help build a literature review.
Find similar papers in the chat
Make a presentation
100%