Combining unit-level symbolic execution and system-level concrete execution for testing nasa software

  • Authors:
  • Corina S. Pǎsǎreanu;Peter C. Mehlitz;David H. Bushnell;Karen Gundy-Burlet;Michael Lowry;Suzette Person;Mark Pape

  • Affiliations:
  • NASA Ames Research Center, Moffett Field, CA, USA;NASA Ames research Center, Moffett Field, CA, USA;NASA Ames Research Center, Moffett Field, CA, USA;NASA Ames Research Center, Moffett Field, CA, USA;NASA Ames Research Center, Moffett Field, CA, USA;University of Nebraska, Lincoln, NE, USA;NASA Johnson Space Center, Houston, TX, USA

  • Venue:
  • ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe an approach to testing complex safety critical software that combines unit-level symbolic execution and system-level concrete execution for generating test cases that satisfy user-specified testing criteria. We have developed Symbolic Java PathFinder, a symbolic execution framework that implements a non-standard bytecode interpreter on top of the Java PathFinder model checking tool. The framework propagates the symbolic information via attributes associated with the program data. Furthermore, we use two techniques that leverage system-level concrete program executions to gather information about a unit's input to improve the precision of the unit-level test case generation. We applied our approach to testing a prototype NASA flight software component. Our analysis helped discover a serious bug that resulted in design changes to the software. Although we give our presentation in the context of a NASA project, we believe that our work is relevant for other critical systems that require thorough testing.