Improving the stateful robustness testing of embedded real-time operating systems

Software fault tolerance is an important issue when using software systems in safety-critical applications. In such systems, software robustness is an essential requirement for improving software fault tolerance. Since an operating system (OS) is a major part of a safety-critical system, its robustness has considerable influence on the system's overall robustness. In recent years, researchers have emphasized the importance of considering the OS state in robustness testing. OS state is determined by analysis of the interactions between OS components. In this paper, an approach, named TIMEOUT, is proposed for robustness testing of embedded real-time OSs. This approach reveals the impact of time delays, i.e. inputs with invalid timing delay, on the OS kernel functionality. TIMEOUT takes the OS state into account and improves the existing robustness testing methods. The proposed approach has been implemented and the experiments have been performed on Linux PREEMPT-RT, which is an embedded real-time implementation of Linux operating system. The results show that OS state can influence the OS behavior with respect to fault tolerance, in the presence of time delays. Based on the results of this approach, system developers can identify criticality of OS states and improve robustness of OS in those states.

[1]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[2]  P. Stravers Embedded system design , 1994 .

[3]  Joe Marshall,et al.  Measuring robustness of a fault tolerant aerospace system , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[4]  Anup K. Ghosh,et al.  Testing the robustness of Windows NT software , 1998, Proceedings Ninth International Symposium on Software Reliability Engineering (Cat. No.98TB100257).

[5]  Philip Koopman,et al.  Comparing the robustness of POSIX operating systems , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

[6]  Torres Wilfredo,et al.  Software Fault Tolerance: A Tutorial , 2000 .

[7]  Philip Koopman,et al.  The Exception Handling Effectiveness of POSIX Operating Systems , 2000, IEEE Trans. Software Eng..

[8]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[9]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[10]  Laura L. Pullum,et al.  Software Fault Tolerance Techniques and Implementation , 2001 .

[11]  Jean Arlat,et al.  Characterization of the impact of faulty drivers on the robustness of the Linux kernel , 2004, International Conference on Dependable Systems and Networks, 2004.

[12]  Neeraj Suri,et al.  On Enhancing the Robustness of Commercial Operating Systems , 2004, ISAS.

[13]  Neeraj Suri,et al.  On the Impact of Injection Triggers for OS Robustness Evaluation , 2007, The 18th IEEE International Symposium on Software Reliability (ISSRE '07).

[14]  Xiaoen Ju,et al.  Operating System Robustness Forecast and Selection , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[15]  Neeraj Suri,et al.  Profiling the operational behavior of OS device drivers , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[16]  Ali Shahrokni,et al.  RobusTest: A Framework for Automated Testing of Software Robustness , 2011, 2011 18th Asia-Pacific Software Engineering Conference.

[17]  Domenico Cotroneo,et al.  A Case Study on State-Based Robustness Testing of an Operating System for the Avionic Domain , 2011, SAFECOMP.

[18]  Marco Vieira,et al.  Robustness Testing Techniques and Tools , 2012, Resilience Assessment and Evaluation of Computing Systems.

[19]  Domenico Cotroneo,et al.  SABRINE: State-based robustness testing of operating systems , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[20]  Domenico Cotroneo Innovative Technologies for Dependable OTS-Based Critical Systems , 2013, Springer Milan.

[21]  Domenico Cotroneo,et al.  Introduction to Software Fault Injection , 2013 .

[22]  Martin Timmerman,et al.  LinuxPREEMPT-RT vs. commercial RTOSs: how big is the performance gap? , 2014 .

[23]  Neeraj Suri,et al.  GRINDER: On Reusability of Fault Injection Tools , 2015, 2015 IEEE/ACM 10th International Workshop on Automation of Software Test.

[24]  Ming Cai,et al.  Designing an Efficient and Extensible Robustness Benchmark of a Real-Time Operating System , 2015 .

[25]  Daniel Sundmark,et al.  Robustness Testing of Embedded Software Systems: An Industrial Interview Study , 2016, IEEE Access.