Welcome to DSD-Crasher

DSD = Dynamic-Static-Dynamic

Abstract

DSD-Crasher is a bug finding tool that follows a three-step approach to program analysis:
D. Capture the program's intended execution behavior with dynamic invariant detection. The derived invariants exclude many unwanted values from the program's input domain.
S. Statically analyze the program within the restricted input domain to explore many paths.
D. Automatically generate test cases that focus on verifying the results of the static analysis. Thereby confirmed results are feasible.

This three-step approach yields benefits compared to past two-step combinations in the literature. In our evaluation with third-party applications, we demonstrate higher precision over tools that lack a dynamic step and higher efficiency over tools that lack a static step.

Overview

Overview of the DSD-Crasher analysis pipeline: 
Dynamic-Static-Dynamic
DSD-Crasher adds a dynamic analysis step at the front of the static-dynamic pipeline used by Check 'n' Crash. The goal of this first dynamic step is to infer the testee's intended behavior from existing test cases. DSD-Crasher feeds inferred invariants to Check 'n' Crash by annotating the testee. This enables DSD-Crasher to suppress bug warnings that are not relevant to the intended uses of the program. In this example, the inferred invariant excludes negative input values. DSD-Crasher therefore does not produce a warning about -1 causing an exception as Check 'n' Crash might do.

Download

Download DSD-Crasher--it's free.

Technical Talks

Technical Papers

Awards

The DSD-Crasher paper received an ACM SIGSOFT Distinguished Paper Award at ISSTA 2006.

People

Acknowledgment

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
See our license page for a list of third party components included in DSD-Crasher.

This Website