Virtual machines offer the ability to partition the resources of a physical system and to create isolated execution environments. The development of virtual machines is a very challenging task. This is particularly true for system virtual machines, since they run an operating system and must replicate in every detail the incredibly complex environment it requires. Nowadays, system virtual machines are the key component of many critical architectures. However, only little effort has been invested to test if the environment they provide is semantically equivalent to the environment found on real machines. In this paper we present a methodology specific for testing system virtual machines. This methodology is based on protocol-speci c fuzzing and differential analysis, and consists in forcing a virtual machine and the corresponding physical machine to execute specially crafted snippets of user- and system-mode code and in comparing their behaviors. We have developed a prototype, codenamed KEmuFuzzer, that implements our methodology for the Intel x86 architecture and used it to test four state-of-the-art virtual machines: BOCHS, QEMU, VirtualBox and VMware. We discovered defects in all of them.
Testing system virtual machines / L. Martignoni, R. Paleari, G. Fresi Roglia, D.M. Bruschi - In: Proceedings of the Nineteenth International Symposium on Software Testing and Analysis, ISSTA 2010, Trento, Italy, July 12-16, 2010New York : ACM, 2010. - ISBN 978-1-60558-823-0. - pp. 171-182 (( Intervento presentato al 19. convegno International Symposium on Testing and Analysis (ISSTA) tenutosi a Trento nel 2010.
|Titolo:||Testing system virtual machines|
|Parole Chiave:||Automatic test generation; Emulation; Fuzzing; Software testing; Virtualization|
|Settore Scientifico Disciplinare:||Settore INF/01 - Informatica|
|Data di pubblicazione:||2010|
|Digital Object Identifier (DOI):||http://dx.doi.org/10.1145/1831708.1831730|
|Tipologia:||Book Part (author)|
|Appare nelle tipologie:||03 - Contributo in volume|