An empirical study of the reliability of UNIX utilities
Communications of the ACM
Safeware: system safety and computers
Safeware: system safety and computers
A specification-based adaptive test case generation strategy for open operating system standards
Proceedings of the 18th international conference on Software engineering
Lutess: a specification-driven testing environment for synchronous software
Proceedings of the 21st international conference on Software engineering
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Static checking of interrupt-driven software
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Simplifying and Isolating Failure-Inducing Input
IEEE Transactions on Software Engineering
Testing monadic code with QuickCheck
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Testing Enbredded Software
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Automated Robustness Testing of Off-the-Shelf Software Components
FTCS '98 Proceedings of the The Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing
Comparing the Robustness of POSIX Operating Systems
FTCS '99 Proceedings of the Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing
New Quality Estimations in Random Testing
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Evolving real-time systems using hierarchical scheduling and concurrency analysis
RTSS '03 Proceedings of the 24th IEEE International Real-Time Systems Symposium
Model-based testing for real: The inhouse card case study
International Journal on Software Tools for Technology Transfer (STTT)
On the Statistical Properties of the F-measure
QSIC '04 Proceedings of the Quality Software, Fourth International Conference
JCrasher: an automatic robustness tester for Java
Software—Practice & Experience
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Nonintrusive precision instrumentation of microcontroller software
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Online testing of real-time systems using UPPAAL
FATES'04 Proceedings of the 4th international conference on Formal Approaches to Software Testing
A search-based framework for automatic testing of MATLAB/Simulink models
Journal of Systems and Software
Inter-context control-flow and data-flow test adequacy criteria for nesC applications
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Distributing test cases more evenly in adaptive random testing
Journal of Systems and Software
FlashBox: a system for logging non-deterministic events in deployed embedded systems
Proceedings of the 2009 ACM symposium on Applied Computing
Adaptive random testing based on distribution metrics
Journal of Systems and Software
Run time assurance of application-level requirements in wireless sensor networks
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
An effective method to control interrupt handler for data race detection
Proceedings of the 5th Workshop on Automation of Software Test
Lazy preemption to enable path-based analysis of interrupt-driven code
Proceedings of the 2nd Workshop on Software Engineering for Sensor Network Applications
SimTester: a controllable and observable testing framework for embedded systems
VEE '12 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments
Timing analysis of interrupt-driven programs under context bounds
Proceedings of the International Conference on Formal Methods in Computer-Aided Design
Dynamic race detection techniques for interrupt-driven programs
FGIT'12 Proceedings of the 4th international conference on Future Generation Information Technology
An observable and controllable testing framework for modern systems
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
Interrupt-driven embedded software is hard to thoroughly test since it usually contains a very large number of executable paths. Developers can test more of these paths using random interrupt testing---firing random interrupt handlers at random times. Unfortunately, naïve application of random testing to interrupt-driven software does not work: some randomly generated interrupt schedules violate system semantics, causing spurious failures. The contribution of this paper is the design, implementation, and experimental evaluation of RID, a restricted interrupt discipline that hardens embedded software with respect to unexpected interrupts, making it possible to perform random interrupt testing and also protecting it from spurious interrupts after deployment. We evaluate RID by implementing it in TinyOS and then using random interrupt testing to find bugs and also to drive applications toward their worst-case stack depths.