Sharookh Daruwalla, Intel
The scope of software validation is always expanding with the ever-increasing test matrix. Automation has become a necessary tool to alleviate the unmanageable workload on validation teams. However, extending automation for virtualization OSes (e.g. VMWare ESXi) come with unique challenges not seen with other OSes (e.g. Windows, Linux). Most test execution engines support only one specific OS, either Windows or Linux, running on a single System under Test (SUT). They are designed for static test resource management and usually support only a handful of scripting languages and communication protocols that are preferred by the OS. This design does not work for virtualization where a SUT is only a host for virtual machines (VM) running different Guest OSes. In addition, virtualization test times are longer due to the additional steps of setting up the host and VMs. This paper presents a detailed look into the challenges we faced with automating storage validation for VMWare ESXi and the design choices we made to overcome them.
In our test automation framework, we have implemented resource management capabilities within our libraries to support dynamically created VMs within tests, added communication protocols that allow us to support multiple OSes, and implemented cross-script execution to extend support for scripting languages not natively supported in the test execution engine. To optimize virtualization test times, we have implemented a Test Continuation Algorithm that allowed us to keep our setup between similar tests and performs selective clean-up. Further, we analyzed how our solution may be applicable to other virtualization OSes and test frameworks by looking at it’s advantages and disadvantages.