Test Blueprints - Exposing Side Effects in Execution Traces to Support Writing Unit Tests

  • Authors:
  • Adrian Lienhard;Tudor Girba;Orla Greevy;Oscar Nierstrasz

  • Affiliations:
  • Software Composition Group, University of Bern, Switzerland, lienhard@iam.unibe.ch;Software Composition Group, University of Bern, Switzerland, girba@iam.unibe.ch;Software Composition Group, University of Bern, Switzerland, greevy@iam.unibe.ch;Software Composition Group, University of Bern, Switzerland, oscar@iam.unibe.ch

  • Venue:
  • CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Writing unit tests for legacy systems is a key maintenance task. When writing tests for object-oriented programs, objects need to be set up and the expected effects of executing the unit under test need to be verified. If developers lack internal knowledge of a system, the task of writing tests is non-trivial. To address this problem, we propose an approach that exposes side effects detected in example runs of the system and uses these side effects to guide the developer when writing tests. We introduce a visualization called Test Blueprint, through which we identify what the required fixture is and what assertions are needed to verify the correct behavior of a unit under test. The dynamic analysis technique that underlies our approach is based on both tracing method executions and on tracking the flow of objects at runtime. To demonstrate the usefulness of our approach we present results from two case studies.