KleeNet: Discovering Insidious Interaction Bugs in Wireless Sensor Networks Before Deployment

Abstract

Complex interactions and the distributed nature of wireless sensor networks make automated testing and debugging before deployment a necessity. A main challenge is to detect bugs that occur due to non-deterministic events, such as node reboots or packet duplicates. Often, these events have the potential to drive a sensor network and its applications into corner-case situations, exhibiting bugs that are hard to detect using existing testing and debugging techniques. In this paper, we present KleeNet, a debugging environment that effectively discovers such bugs before deployment. KleeNet executes unmodified sensor network applications on symbolic input and automatically injects non-deterministic failures. As a result, KleeNet generates distributed execution paths at high-coverage, including low-probability corner-case situations. As a case study, we integrated KleeNet into the Contiki OS and show its effectiveness by detecting four insidious bugs in the uIP TCP/IP protocol stack. One of these bugs is critical and lead to refusal of further connections.

Publication
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN 2010)
Placeholder Avatar
Carsten Weise
Placeholder Avatar
Stefan Kowalewski
Klaus Wehrle
Klaus Wehrle
Head of Group