The category-partition method for specifying and generating fuctional tests
Communications of the ACM
Fault Injection Experiments Using FIAT
IEEE Transactions on Computers
An empirical study of the reliability of UNIX utilities
Communications of the ACM
Exceptional C or C with exceptions
Software—Practice & Experience
Instruction fetching: coping with code bloat
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
Handbook of software reliability engineering
Exception handling: issues and a proposed notation
Communications of the ACM
IEEE Standard for Information Technology - Portable Operating System Interface (POSIX): System Application Program Interface (API), Amendment 1: Realtime Extension (C Language), IEEE Std 1003.1b-1993
Measuring Fault Tolerance with the FTAPE Fault Injection Tool
MMB '95 Proceedings of the 8th International Conference on Modelling Techniques and Tools for Computer Performance Evaluation: Quantitative Evaluation of Computing and Communication Systems
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
Comparing Operating Systems Using Robustness Benchmarks
SRDS '97 Proceedings of the 16th Symposium on Reliable Distributed Systems
Xept: A Software Instrumentation Method For Exception Handling
ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
Robustness Testing of A Distributed Simulation Backplane
ISSRE '99 Proceedings of the 10th International Symposium on Software Reliability Engineering
Measuring Robustness of a Fault-Tolerant Aerospace System
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Performance Evaluation of Exception Handling in I/O Libraries
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
Robustness Testing and Hardening of CORBA ORB Implementations
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
Robustness Testing of A Distributed Simulation Backplane
ISSRE '99 Proceedings of the 10th International Symposium on Software Reliability Engineering
Reflections on Industry Trends and Experimental Research in Dependability
IEEE Transactions on Dependable and Secure Computing
A case study on state-based robustness testing of an operating system for the avionic domain
SAFECOMP'11 Proceedings of the 30th international conference on Computer safety, reliability, and security
Research on Ultra-Dependable Embedded Real Time Operating System
GREENCOM '11 Proceedings of the 2011 IEEE/ACM International Conference on Green Computing and Communications
A systematic review of software robustness
Information and Software Technology
Testing techniques selection based on ODC fault types and software metrics
Journal of Systems and Software
Journal of Systems and Software
Hi-index | 0.00 |
Operating systems form a foundation for robust application software, making it important to understand how effective they are at handling exceptional conditions. The Ballista testing system was used to characterize the handling of exceptional input parameter values for up to 233 POSIX functions and system calls on each of 15 widely used operating system (OS) implementations. This identified ways to crash systems with a single call, ways to cause task hangs within OS code, ways to cause abnormal task termination within OS and library code, failures to implement defined POSIX functionality, and failures to report unsuccessful operations. Overall, only 55 percent to 76 percent of the exceptional tests performed generated error codes, depending on the operating system being tested. Approximately 6 percent to 19 percent of tests failed to generate any indication of error despite exceptional inputs. Approximately 1 percent to 3 percent of tests revealed failures to implement defined POSIX functionality for unusual, but specified, situations. Between 18 percent and 33 percent of exceptional tests caused the abnormal termination of an OS system call or library function, and five systems were completely crashed by individual system calls with exceptional parameter values. The most prevalent sources of these robustness failures were illegal pointer values, numeric overflows, and end-of-file overruns. There is significant opportunity for improving exception handling within OS calls and especially within C library functions. However, the role of signals vs. error return codes is both controversial and the source of divergent implementation philosophies, forming a potential barrier to writing portable, robust applications.