Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering 2014
DOI: 10.1145/2635868.2635917
|View full text |Cite
|
Sign up to set email alerts
|

Improving oracle quality by detecting brittle assertions and unused inputs in tests

Abstract: Writing oracles is challenging. As a result, developers often create oracles that check too little, resulting in tests that are unable to detect failures, or check too much, resulting in tests that are brittle and difficult to maintain. In this paper we present a new technique for automatically analyzing test oracles. The technique is based on dynamic tainting and detects both brittle assertions-assertions that depend on values that are derived from uncontrolled inputs-and unused inputs-inputs provided by the … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
22
0

Year Published

2015
2015
2021
2021

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 37 publications
(22 citation statements)
references
References 30 publications
0
22
0
Order By: Relevance
“…PT sets the field testDir (line 22) and leaves it polluted. In that revision, no other test read the value of testDir, so no existing technique (e.g., Zhang et al's technique [28] based on test reordering or Huo and Clause's technique [7] based on taint analysis) would report PT as a polluting test.…”
Section: Motivating Examplementioning
confidence: 99%
See 2 more Smart Citations
“…PT sets the field testDir (line 22) and leaves it polluted. In that revision, no other test read the value of testDir, so no existing technique (e.g., Zhang et al's technique [28] based on test reordering or Huo and Clause's technique [7] based on taint analysis) would report PT as a polluting test.…”
Section: Motivating Examplementioning
confidence: 99%
“…Huo and Clause [7] use taint analysis to find brittle assertions, i.e., cases when a test reads from state regions not explicitly written by the test. These reads can find potential test dependencies on heap-shared state.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…By operating within the JVM, taint tracking systems can leverage language semantics that greatly simplify memory organization (such as variables). However, in Java, associating metadata (such as tags) with arbitrary variables is very difficult: previous techniques have relied on customized JVMs or symbolic execution environments to maintain this mapping [3,11,13], limiting their portability and restricting their application to large and complex real-world software.…”
Section: Inputsmentioning
confidence: 99%
“…Inputs to the application being studied are labeled with a marker (are "tainted"), and these markers propagated through data flow. Dynamic taint tracking can be used for detecting brittle tests [11], end user privacy testing [7,14] and debugging [8,12].…”
Section: Introductionmentioning
confidence: 99%