An automated virtual test environment is a way to improve testing, validation and verification activities when several deployment scenarios must be considered. Such solution has been designed and developed at INFN CNAF to improve software development life cycle and to optimize the
deployment of a new software release (sometimes delayed for the difficulties
met during the installation and configuration of a testing environment). Its main characteristic is the set-up of a virtual environment where the downloading and installation of the packages, the configuration of the services and the tests execution are orchestrated by a proper deployment and test engine fed with a pre-built configuration file. Running automated tests by using virtual environment follows the same process as running automated tests with physical environment, allowing much more testing flexibility, dynamic on-demand resources provisioning, greatly simplifying the use of the test-bed, and optimizing the usage of test-bed machines. Virtual images, with the required
Operating System version, including host certificate when necessary, are provisioned automatically before running tests. This virtual test environment is being used by the StoRM team for testing, validation and verification activities: however, it is not peculiar for StoRM and can be easily customized for other software team who just needs to provide configuration file and virtual images for the deployment and test engine. In this paper, we describe the design and development of an automated virtual test environment, and we present its usage during the StoRM development life ycle.
StoRM, one of the SRM implementation, is a multi-service software subject to intense testing, validation and verification activities in order to guarantee high-quality services. Its characteristics of being usable on different file systems (such as IBM GPFS, Lustre and POSIX), and of supporting several transfer protocols (like gsiFTP, file and HTTPS) raise the need of StoRM to be validated on a variety of deployment scenarios. Moreover, the StoRM distributed nature requires that services are tested with multiple machines.
With this in mind, manual testing is extremely time consuming, inconsistent to be effective, error prone and inaccurate to cover all cases. While automating manual testing can, however, be very expensive in order to maintain a set of scripts that describes a given set of tests. The usage of virtualization technology can contribute to making automating testing accurate, efficient, reliable and cost effective.
Here lies the need of an automated virtual test environment in order to improve testing, validation and verification activities when several deployment scenarios must be considered. The running tests belong to several categories (like system, functionality and stress) and are all automitized. The StoRM sofware has been considered to validate this solution.