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

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.
Grants:GRF 612306, GRF 111107, HKBU 1/05C, NSFC 60736015, NBRC 2006CB303000, CityU 7002324
Links:PDF, DOI
Citation:Zhifeng Lai, S.C. Cheung, and W.K. Chan, "Inter-context control-flow and data-flow test adequacy criteria for nesC applications", in Proceedings of the 16th ACM SIGSOFT Symposium on Foundations of Software Engineering (SIGSOFT 2008/FSE-16), (Atlanta, USA, November 9-14, 2008), pages 94-104, ACM Press, New York, NY, USA (2008).
Remarks:[Acceptance rate: 20.4, 31 out of 152]
Related Papers:-

Selected Tags

Tag Groups

Links

ACM SigSoft
IEEE Software Engineering Online