Analyzing Partition Testing Strategies
IEEE Transactions on Software Engineering
Load testing software using deterministic state testing
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
An empirical study of operating systems errors
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Prioritizing Test Cases For Regression Testing
IEEE Transactions on Software Engineering
Dependability of COTS Microkernel-Based Systems
IEEE Transactions on Computers - Special issue on fault-tolerant embedded systems
Software Engineering Economics
Software Engineering Economics
Reliability Testing of Rule-Based Systems
IEEE Software
Testing Component-Based Software: A Cautionary Tale
IEEE Software
The Automatic Generation of Load Test Suites and the Assessment of the Resulting Software
IEEE Transactions on Software Engineering
A logarithmic poisson execution time model for software reliability measurement
ICSE '84 Proceedings of the 7th international conference on Software engineering
Saturation Effects in Testing of Formal Models
ISSRE '02 Proceedings of the 13th International Symposium on Software Reliability Engineering
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Using operational distributions to judge testing progress
Proceedings of the 2003 ACM symposium on Applied computing
Characterization of the Impact of Faulty Drivers on the Robustness of the Linux Kernel
DSN '04 Proceedings of the 2004 International Conference on Dependable Systems and Networks
Software Reliability Engineering: More Reliable Software Faster and Cheaper
Software Reliability Engineering: More Reliable Software Faster and Cheaper
Improving the reliability of commodity operating systems
ACM Transactions on Computer Systems (TOCS)
Error Propagation Profiling of Operating Systems
DSN '05 Proceedings of the 2005 International Conference on Dependable Systems and Networks
Call Stack Coverage for Test Suite Reduction
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Providing Test Quality Feedback Using Static Source Code and Automatic Test Suite Metrics
ISSRE '05 Proceedings of the 16th IEEE International Symposium on Software Reliability Engineering
Nooks: an architecture for reliable device drivers
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Thorough static analysis of device drivers
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Robustness Testing of the Windows DDK
DSN '07 Proceedings of the 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks
Windows XP kernel crash analysis
LISA '06 Proceedings of the 20th conference on Large Installation System Administration
SafeDrive: safe and recoverable extensions using language-based techniques
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Developing drivers with the windows® driver foundation
Developing drivers with the windows® driver foundation
Execution path profiling for OS device drivers: viability and methodology
ISAS'08 Proceedings of the 5th international conference on Service availability
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
Hi-index | 0.00 |
As the complexity of modern Operating Systems (OS) increases, testing key OS components such as device drivers (DD) becomes increasingly complex given the multitude of possible DD interactions. Currently, DD testing entails a broad spectrum of techniques, where static (requiring source code) and dynamic (requiring the executable image) and static-dynamic testing combinations are employed. Despite the sustained and improving test efforts in the field of driver development, DDs still represent a significant cause of system outages as the coverage is invariably limited by test resources and release time considerations. The basic factor is the inability to exhaustively assess and then cover the operational states, leading to releases of inadequately tested DDs. Consequently, if representative operational activity profiles of DDs within an OS could be obtained, these could significantly improve the understanding of the actual operational DD state space and help focus the test efforts. Focusing on characterizing DD operational activities while assuming no access to source code, this paper proposes a quantitative technique for profiling the runtime behavior of DDs using a set of occurrence and temporal metrics obtained via I/O traffic characterization. Such profiles are used to improve test adequacy against real-world workloads by enabling similarity quantification across them. The profiles also reveal execution hotspots in terms of DD functionalities activated in the field, thus allowing for dedicated test campaigns. A case study on actual Windows XP and Vista drivers using various performance and stability benchmarks as workloads substantiates our proposed approach.