Property-based testing of sensor networks

We advocate the use of property-based testing in the area of sensor networks and present a framework to apply this testing methodology. Our framework provides an expressive high-level language to specify a wide range of properties, starting from properties of individual functions to network-global properties, and infrastructure to automatically test these properties in Cooja, the network simulator of the Contiki operating system. We demonstrate the ease of use and effectiveness of our framework by two case studies. In the first, we test whether the energy consumption of the radio duty-cycle protocol X-MAC is within some specific bound. Property-based testing finds minimal network configurations where a small number of nodes violate the property. Property-based testing also reveals that the same property is not violated when ContikiMAC is used instead, but finds cases where ContikiMAC has higher energy consumption than X-MAC. In the second case study, we test the C API of CONTIKI's TCP socket library and find bugs in its event system that would be very hard to detect with other methods.

[1]  Wei Hong,et al.  A macroscope in the redwoods , 2005, SenSys '05.

[2]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[3]  Bruno Quoitin,et al.  Technical Report : ContikiMAC vs X-MAC performance analysis , 2014, ArXiv.

[4]  Eric Anderson,et al.  X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks , 2006, SenSys '06.

[5]  Koen Langendoen,et al.  Murphy loves potatoes: experiences from a pilot sensor network deployment in precision agriculture , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[6]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2000, ICFP.

[7]  David E. Culler,et al.  Telos: enabling ultra-low power wireless research , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[8]  David E. Culler,et al.  TOSSIM: accurate and scalable simulation of entire TinyOS applications , 2003, SenSys '03.

[9]  Konstantinos Sagonas,et al.  A PropEr integration of types and function specifications with property-based testing , 2011, Erlang Workshop.

[10]  John Hughes,et al.  Testing telecoms software with quviq QuickCheck , 2006, ERLANG '06.

[11]  François Ingelrest,et al.  The hitchhiker's guide to successful wireless sensor network deployments , 2008, SenSys '08.

[12]  Alan M. Frieze,et al.  Random graphs , 2006, SODA '06.

[13]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.

[14]  Kay Römer,et al.  PDA: Passive distributed assertions for sensor networks , 2009, 2009 International Conference on Information Processing in Sensor Networks.

[15]  Luciano Baresi,et al.  Anquiro: enabling efficient static verification of sensor network software , 2010, SESENA '10.

[16]  Klaus Wehrle,et al.  KleeNet: discovering insidious interaction bugs in wireless sensor networks before deployment , 2010, IPSN '10.

[17]  Leonidas Lampropoulos,et al.  Automatic WSDL-guided Test Case Generation for PropEr Testing of Web Services , 2012, WWV.

[18]  Jorge Sá Silva,et al.  The GINSENG system for wireless monitoring and control: Design and deployment experiences , 2013, TOSN.

[19]  Adam Dunkels,et al.  The ContikiMAC Radio Duty Cycling Protocol , 2011 .

[20]  Doina Bucur,et al.  On software verification for sensor nodes , 2011, J. Syst. Softw..

[21]  Aleksandar Milenkovic,et al.  Wireless sensor networks for personal health monitoring: Issues and an implementation , 2006, Comput. Commun..

[22]  Paul Erdös,et al.  On random graphs, I , 1959 .

[23]  Matt Welsh,et al.  Fidelity and yield in a volcano monitoring sensor network , 2006, OSDI '06.

[24]  Peng Li,et al.  T-check: bug finding for sensor networks , 2010, IPSN '10.