Random testing of interrupt-driven software

  • Authors:
  • John Regehr

  • Affiliations:
  • University of Utah

  • Venue:
  • Proceedings of the 5th ACM international conference on Embedded software
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Interrupt-driven embedded software is hard to thoroughly test since it usually contains a very large number of executable paths. Developers can test more of these paths using random interrupt testing---firing random interrupt handlers at random times. Unfortunately, naïve application of random testing to interrupt-driven software does not work: some randomly generated interrupt schedules violate system semantics, causing spurious failures. The contribution of this paper is the design, implementation, and experimental evaluation of RID, a restricted interrupt discipline that hardens embedded software with respect to unexpected interrupts, making it possible to perform random interrupt testing and also protecting it from spurious interrupts after deployment. We evaluate RID by implementing it in TinyOS and then using random interrupt testing to find bugs and also to drive applications toward their worst-case stack depths.