2017
DOI: 10.1145/3133928
|View full text |Cite
|
Sign up to set email alerts
|

Detecting argument selection defects

Abstract: Identifier names are often used by developers to convey additional information about the meaning of a program over and above the semantics of the programming language itself. We present an algorithm that uses this information to detect argument selection defects, in which the programmer has chosen the wrong argument to a method call in Java programs. We evaluate our algorithm at Google on 200 million lines of internal code and 10 million lines of predominantly open-source external code and find defects even in… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
47
1

Year Published

2018
2018
2023
2023

Publication Types

Select...
6

Relationship

1
5

Authors

Journals

citations
Cited by 43 publications
(49 citation statements)
references
References 36 publications
(28 reference statements)
1
47
1
Order By: Relevance
“…In contrast, seq and sequoia are semantically dissimilar because they refer to different concepts, even though they share a common prefix of characters. As illustrated by these examples, semantic similarity does not always correspond to lexical similarity, as considered by prior work Pradel and Gross 2011;Rice et al 2017], and may even exist cross type boundaries. To enable a machine learning-based bug detector to reason about identifiers, we require a representation of identifiers that preserves semantic similarities.…”
Section: Embeddings For Identifiers and Literalsmentioning
confidence: 87%
See 4 more Smart Citations
“…In contrast, seq and sequoia are semantically dissimilar because they refer to different concepts, even though they share a common prefix of characters. As illustrated by these examples, semantic similarity does not always correspond to lexical similarity, as considered by prior work Pradel and Gross 2011;Rice et al 2017], and may even exist cross type boundaries. To enable a machine learning-based bug detector to reason about identifiers, we require a representation of identifiers that preserves semantic similarities.…”
Section: Embeddings For Identifiers and Literalsmentioning
confidence: 87%
“…It is important to note that bug detectors built with DeepBugs do not require any heuristics or manually designed filters of warnings, as commonly used in existing name-based bug detectors Pradel and Gross 2011;Rice et al 2017]. For example, the start-of-the-art bug detector to detect accidentally swapped function arguments relies on a hard-coded list of function names for which swapping the arguments is expected, such as flip, transpose, or reverse [Rice et al 2017]. Instead of hard-coding such heuristics, which is time-consuming and likely incomplete, learned name-based bug detectors infer these kinds of exceptions from the training data.…”
Section: Training and Querying A Bug Detectormentioning
confidence: 99%
See 3 more Smart Citations