DocumentCode :
3076732
Title :
Automating System Tests Using Declarative Virtual Machines
Author :
Van der Burg, Sander ; Dolstra, Eelco
Author_Institution :
Delft Univ. of Technol., Delft, Netherlands
fYear :
2010
fDate :
1-4 Nov. 2010
Firstpage :
181
Lastpage :
190
Abstract :
Automated regression test suites are an essential software engineering practice: they provide developers with rapid feedback on the impact of changes to a system´s source code. The inclusion of a test case in an automated test suite requires that the system´s build process can automatically provide all the environmental dependencies of the test. These are external elements necessary for a test to succeed, such as shared libraries, running programs, and so on. For some tests (e.g., a compiler´s), these requirements are simple to meet. However, many kinds of tests, especially at the integration or system level, have complex dependencies that are hard to provide automatically, such as running database servers, administrative privileges, services on external machines or specific network topologies. As such dependencies make tests difficult to script, they are often only performed manually, if at all. This particularly affects testing of distributed systems and system-level software. This paper shows how we can automatically instantiate the complex environments necessary for tests by creating (networks of) virtual machines on the fly from declarative specifications. Building on NixOS, a Linux distribution with a declarative configuration model, these specifications concisely model the required environmental dependencies. We also describe techniques that allow efficient instantiation of VMs. As a result, complex system tests become as easy to specify and execute as unit tests. We evaluate our approach using a number of representative problems, including automated regression testing of a Linux distribution.
Keywords :
Linux; automatic test software; distributed processing; formal specification; program testing; regression analysis; virtual machines; Linux distribution; NixOS; automated regression test; automating system test; complex system test; declarative configuration model; declarative specification; distributed system; environmental dependency; network topology; running database server; running program; shared library; software engineering practice; system level; system level software; system source code; virtual machine; Buildings; Kernel; Linux; Network topology; Servers; Virtual machining;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Reliability Engineering (ISSRE), 2010 IEEE 21st International Symposium on
Conference_Location :
San Jose, CA
ISSN :
1071-9458
Print_ISBN :
978-1-4244-9056-1
Electronic_ISBN :
1071-9458
Type :
conf
DOI :
10.1109/ISSRE.2010.34
Filename :
5635141
Link To Document :
بازگشت