Results 1 -
3 of
3
Statically checking api protocol conformance with mined multi-object specifications, companion report
, 2012
"... Abstract—Programmers using an API often must follow protocols that specify when it is legal to call particular methods. Several techniques have been proposed to find violations of such protocols based on mined specifications. However, existing techniques either focus on single-object protocols or on ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Abstract—Programmers using an API often must follow protocols that specify when it is legal to call particular methods. Several techniques have been proposed to find violations of such protocols based on mined specifications. However, existing techniques either focus on single-object protocols or on particular kinds of bugs, such as missing method calls. There is no practical technique to find multi-object protocol bugs without a priori known specifications. In this paper, we combine a dynamic analysis that infers multi-object protocols and a static checker of API usage constraints into a fully automatic protocol conformance checker. The combined system statically detects illegal uses of an API without human-written specifications. Our approach finds 41 bugs and code smells in mature, real-world Java programs with a true positive rate of 51%. Furthermore, we show that the analysis reveals bugs not found by state of the art approaches. Keywords-Typestate; Static analysis; Specification mining I.
Leveraging Test Generation and Specification Mining for Automated Bug Detection without False Positives
"... Abstract—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 f ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Abstract—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 against the mined specifications. The output are warnings that show with concrete test cases how the program violates commonly accepted specifications. Our implementation reports no false positives and 54 true positives in ten well-tested Java programs. Keywords-Bug detection; Specification mining; False positives I.
An Interaction-Driven Approach to Identifying Functional Behaviors of Service Robot Systems
"... Abstract—The service robot domain has gained increasing attention for its significant impact on human society. By its nature, the service robot domain is component-based and distributed and comprising components are usually developed by third parties as black-box. In general, very limited informatio ..."
Abstract
- Add to MetaCart
Abstract—The service robot domain has gained increasing attention for its significant impact on human society. By its nature, the service robot domain is component-based and distributed and comprising components are usually developed by third parties as black-box. In general, very limited information is available even in execution logs. This makes it difficult for the system integrator to understand and verify the functional behaviors of the system. The existing work on deriving functional behaviors focuses on sequential systems and assumes certain level of information available, which is not suitable for the service robot domain. In this work, we present an interaction-based approach for systematically identifying functional behaviors of a service robot system. This approach allows not only identifying functional behaviors, but also their dependencies as invariants which are useful for verifying system behaviors. We demonstrate the approach using a cognitive game robot and the results show the potential of the approach. Keywords-Distributed system; dynamic analysis; functional behavior; service robot. I.

