kirancodes.me
To Proof Maintenance & Beyond!

Inter-context control-flow and data-flow test adequacy criteria for nesC applications

Zhifeng Lai, Shing-Chi Cheung, Wing Kwong Chan

Abstract

NesC is a programming language for applications that run on top of networked sensor nodes. Such an application mainly uses an interrupt to trigger a sequence of operations, known as contexts, to perform its actions. However, a high degree of inter-context interleaving in an application can cause it to be error-prone. For instance, a context may mistakenly alter another context's data kept at a shared variable. Existing concurrency testing techniques target testing programs written in general-purpose programming languages, where a small scale of inter-context interleaving between program executions may make these techniques inapplicable. We observe that nesC blocks new context interleaving when handling interrupts, and this feature significantly restricts the scale of inter-context interleaving that may occur in a nesC application. This paper models how operations on different contexts may interleave as inter-context flow graphs. Based on these graphs, it proposes two test adequacy criteria, one on inter-context data-flows and another on inter-context control-flows. It evaluates the proposal by a real-life open-source nesC application. The empirical results show that the new criteria detect significantly more failures than their conventional counterparts.

BibTeX
@inproceedings{Lai-al:FSE08,
  author    = {Zhifeng Lai and
               Shing{-}Chi Cheung and
               Wing Kwong Chan},
  title     = {Inter-context control-flow and data-flow test adequacy criteria for {nesC} applications},
  booktitle = {FSE},
  pages     = {94--104},
  publisher = {{ACM}},
  year      = {2008},
}

Related papers