Mining specifications and using them for bug detection is a promising way to reveal bugs in programs. Existing approaches suffer from two problems. First, dynamic specification miners require input that drives a program to generate common usage patterns. Second, existing approaches report false positives, that is, spurious warnings that mislead developers and reduce the practicability of the approach. We present a novel technique for dynamically mining and checking specifications without relying on existing input to drive a program and without reporting false positives. Our technique leverages automatically generated tests in two ways: Passing tests drive the program during specification mining, and failing test executions are checked again...
Several static analysis tools, such as Splint or FindBugs, have been proposed to the software develo...
Recent studies have shown the promising direction of deep learning based bug detection, which reliev...
Background: Effective use of bug finding tools promise to speed up the process of source code verifi...
Program verification is a promising approach to improving program quality, because it can search all...
Static checker frameworks support software developers by automatically discovering bugs that fit gen...
Rather than tediously writing unit tests manually, tools can be used to generate them automatically ...
Program verication is a promising approach to improving program quality, because it can search all p...
Abstract—Programmers using an API often must follow protocols that specify when it is legal to call ...
Empirical studies in software testing research may not be comparable, reproducible, or characteristi...
This dissertation presents three test-generation techniques that are used to improve software qual-i...
Application Programming Interfaces (APIs) typically come with (implicit) usage constraints. The viol...
The specifications of a program can be dynamically inferred from its executions, or equivalently, fr...
Automated program repair (APR) techniques have shown a promising ability to generate patches that fi...
A number of bug detection tools currently exist and are used in development processes. However, not...
Programmers using an API often must follow protocols that specify when it is legal to call particula...
Several static analysis tools, such as Splint or FindBugs, have been proposed to the software develo...
Recent studies have shown the promising direction of deep learning based bug detection, which reliev...
Background: Effective use of bug finding tools promise to speed up the process of source code verifi...
Program verification is a promising approach to improving program quality, because it can search all...
Static checker frameworks support software developers by automatically discovering bugs that fit gen...
Rather than tediously writing unit tests manually, tools can be used to generate them automatically ...
Program verication is a promising approach to improving program quality, because it can search all p...
Abstract—Programmers using an API often must follow protocols that specify when it is legal to call ...
Empirical studies in software testing research may not be comparable, reproducible, or characteristi...
This dissertation presents three test-generation techniques that are used to improve software qual-i...
Application Programming Interfaces (APIs) typically come with (implicit) usage constraints. The viol...
The specifications of a program can be dynamically inferred from its executions, or equivalently, fr...
Automated program repair (APR) techniques have shown a promising ability to generate patches that fi...
A number of bug detection tools currently exist and are used in development processes. However, not...
Programmers using an API often must follow protocols that specify when it is legal to call particula...
Several static analysis tools, such as Splint or FindBugs, have been proposed to the software develo...
Recent studies have shown the promising direction of deep learning based bug detection, which reliev...
Background: Effective use of bug finding tools promise to speed up the process of source code verifi...