CUTE: A Concolic Unit Testing Engine for C

Abstract

In unit testing, a program is decomposed into units which are collections of functions. A part of unit can be tested by generating inputs for a single entry function. The entry function may contain pointer arguments, in which case the inputs to the unit are memory graphs. The paper addresses the problem of automating unit testing with memory graphs as inputs. The approach used builds on previous work combining symbolic and concrete execution, and more specifically, using such a combination to generate test inputs to explore all feasible execution paths. The current work develops a method to represent and track constraints that capture the behavior of a symbolic execution of a unit with memory graphs as inputs. Moreover, an efficient constraint solver is proposed to facilitate incremental generation of such test inputs. Finally, CUTE, a tool implementing the method is described together with the results of applying CUTE to real-world examples of C code.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 2005
Accession Number
ADA483094

Entities

People

  • Darko Marinov
  • Gul Agha
  • Koushik Sen

Organizations

  • University of Illinois Urbana–Champaign

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Algorithms
  • Case Studies
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Concrete
  • Debugging
  • Demographic Cohorts
  • False Alarms
  • Hash Tables
  • Integer Programming
  • Language
  • Lists (Data Structures)
  • Models
  • Optimization
  • Semantic Models
  • Software Testing

Fields of Study

  • Computer science
  • Engineering

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Computational Modeling and Simulation
  • Computer Science/Computer Engineering/Data Science/Digital Signal Processing.