T-T-2 Testing Tinyos-2.x Jan Beutel, ETH Zurich With the help of Roman Lim, Mustafa Yuecel, Matthias Woehrle, the T2-core and testbed WG’s and many others…
Methodology and Development Tools Continuous Integration Testbeds Physical Emulation Advanced Software Engineering Best practices in enterprise-level SW development Regression (unit) testing Extending the Logical View Detailed physical characterization Control of the environment Physical stimulation Control of resources Execution on Real Platforms Distributed, native execution Influence of the environment Remote reprogramming Stimuli and log file analysis
COMPILATION & ANALYSIS Step 1 – Codebase Integrity
Regression Testing Using Continuous Integration On code change applications are built from scratch and analyzed –Standard practice in enterprise level software development –Deeper understanding of long term development trends –Service to the TinyOS community, increasing software quality TinyOS-2.x regression builds over the last 2.5 years at ETHZ [
Regular Builds with Statistics
Notifications on Failures
Profiling – Graphical Reporting of Results
EXECUTION Step 2 – Getting Real on Real Platforms
Testbed – The Deployment-Support Network Target Sensor Network DSN Testbed Key Differentiators Distributed observers Mobility: Wireless, battery powered DSN Testbed Functionality Remote reprogramming Extraction of log data Stimuli, e.g. fault injection Time synchronization [SenSys2004, IPSN2005, EWSN2007] Centralized logging Detailed behavioral analysis
ONLINE POWER PROFILING Step 3 – Metrics for Resource Consumption
Physical Characterization Architecture Influence of power sources/quality Detailed physical characterization Emulation of environment and resources –Controlled RF attenuation –Sensor stimuli and references Integration and automation with DSN Testbed [EmNets2007]
Visualizing Long Term Development Trends – Power
Assertions based on reference traces/specification Integrated with each build (regression testing) Detailed Tracing – Validation using Formal Bounds [WEWSN2008,SUTC2008]
TEMPERATURE CYCLING Step 4 – Emulating the Environment
Temperature and Humidity Cycle Testing Continuous Integration Testbed Infrastru cture Physical Character ization
Physical Reality Impacts Sampling Performance Storage duration Temperature ADC duration Watchdog resets
TinyOS-2.x Testing – Current Status and Outlook Continuous integration is very useful and increases codebase quality –2.5 years operation and experience… –Compilation for numerous platforms (eyes, mica, telos, tinynode) –Safe (and un-safe) compilation of the T2 CVS HEAD codebase Power profiling is working –Exploitation of the data is not fully executed today –End-to-end multi-node testing –Automated variation of parameters Demonstrated feasibility of complex testing scenarios Future –Increasing the capabilities of testbeds –Integration of applications and testing spec/scenarios