Browse > Article

MOdel-based KERnel Testing (MOKERT) Framework  

Kim, Moon-Zoo (KAITS 전산학과)
Hong, Shin (KAITS 전산학과)
Abstract
Despite the growing need for customized operating system kernels for embedded devices, kernel development continues to suffer from insufficient reliability and high testing cost for several reasons such as the high complexity of the kernel code. To alleviate these difficulties, this study proposes the MOdel-based KERnel Testing (MOKERT) framework for detection of concurrency bugs in the kernel. MOKERT translates a given C program into a corresponding Promela model, and then tries to find a counter example with regard to a given requirement property, If found, MOKERT executes that counter example on the real kernel code to check whether the counter example is a false alarm or not, The MOKERT framework was applied to the Linux proc file system and confirmed that the bug reported in a ChangeLog actually caused a data race problem, In addition, a new data race bug in the Linux proc file system was found, which causes kernel panic.
Keywords
model checking; testing; counter example analysis; model extraction;
Citations & Related Records
연도 인용수 순위
  • Reference
1 G. J. Holzmann and R. Joshi, 'Model-driven software verification,' Spin Workshop, April 2004
2 M. Christiens, J. D. Choi, M. Ronsse and K. Bosschere, 'Record/Replay in the Presence of Benign Data Races,' In International Conference on Parallel and Distributed Processing Techniques and Applications, 2002
3 S. Artzi, S. H. Kim, and M. D. Ernst, 'ReCrash: Making Software Failures Reproducible by Preserving Object States,' European Conference on Object-Oriented Programming, 2008
4 W. Visser, C. S. Pasareanu and S. Khurshid, 'Test input generation with Java PathFinder,' International Symposium on Software Testing and Analysis, 2004
5 M. Musuvathi, S. Qadeer and T. Ball, 'Chess: A systematic testing tool for concurrent software,' Microsoft Research Technical Report MSR-TR-2007-149, 2007
6 R. H. Carver and Y. Lei, 'A General Model for Reachability Testing of Concurrent Programs,' IEEE International Conference on Formal Engineering Methods, 2004
7 E. Clarke, D. Kroening, and F. Lerda, 'A tool for checking ANSI-C programs,' Tools And Algorithms for Construction and Analysis of Systems, 2004
8 G. J. Holzmann, 'The Spin Model Checker,' Wiley, New York, 2003
9 E. Clarke, O. Grumberg, S. Jha, Y. Lu and H. Veith, 'Counterexample-guided abstraction refinement,' Computer Aided Verification, July 2000
10 S. Narayanasamy, G. Pokam, and B. Calder, 'Bug-Net: Recording application level execution for deterministic replay debugging,' IEEE Micro, 26(1): 100-109, 2006   DOI   ScienceOn
11 K. Sen, 'Effective random testing of concurrent programs,' Proceedings of the twenty-second IEEE/ACM International Conference on Automated software engineering, 2007
12 A. Gargantini, E. Riccobene and S. Rinzivillo, 'Using Spin to Generate Tests from ASM Specifications,' Abstract State Machines, 2003
13 M. Kim, Y. Kim, Y. Choi and H. Kim, 'Pre-testing flash device driver through model checking techniques,' IEEE International Conference on Software Testing, Verification and Validation, April 2008
14 M. P. E. Heimdahl, S. Rayadurgam, W. Visser, G. Devaraj and J. Gao, 'Auto-generating Test Sequences Using Model Checker: A Case Study,' Formal Approaches to Software Testing, 2004
15 D. Beyer, T. A. Henzinger, R. Jhala, and R. Majumdar, 'The software model checker BLAST: Applications to software engineering,' International Journal on Software Tools for Technology Transfer, 2007   DOI
16 P. Camara, M. Gallardo and P. Merino, 'Model extraction for ARINC 653 based avionics software,' Spin workshop, 2007