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

Complex interactions and the distributed nature of wireless networks make automated testing and debugging before deployment a difficult task. A main challenge is to detect bugs that occur due to non-deterministic events, such as node failures, reboots, or packets 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 talk, I will introduce KleeNet, a debugging environment that helps to discover such bugs before deployment. KleeNet executes unmodified sensor network applications on symbolic input and automatically injects non-deterministic failures. As a result, it explores distributed execution paths at high-coverage, including low-probability corner-case situations. I will present KleeNet’s integration into the Contiki OS and discuss some of the insidious bugs detected in the widely-deployed mIP TCP/IP protocol stack. One of these bugs is critical and lead to refusal of further connections.

Raimondas Sasnauskas is a third-year PhD student at the Distributed Systems Group of the RWTH Aachen University. His main area of work is high-coverage communication protocol testing before deployment. His current research focusses on bug detection in WSN protocols and applications by employing symbolic execution techniques.