Today's complex and distributed systems consist of increasingly complex, heterogeneous applications, products and services, which are constantly evolving to meet their business needs. This constant change requires a high degree of business agility - faster development, faster testing, and shorter release cycles with as low risk as possible. To get high-quality results despite these challenges, both the developer and the tester teams have to start testing much earlier and through the entire software life cycle in each application layer, doing all of this in a manner that does not make testing become a development bottleneck.
At the beginning of my thesis I introduce the theoretical background of software testing and hardware virtualization, focusing on the role of unit tests and the benefits of the virtualization of test-environments. Using the systematic methods of the ISTQB (International Software Testing Qualifications Board) I will select the best virtualization software for a large project of Evosoft Hungary.
First, I examine the company's needs, then establish the requirements for the system so that it would support the agile software development as efficiently as possible.
I set up a criteria based on the requirements, and based on these criteria I analyze the available products on the market. Then, I introduce the possible virtualization environments, their development, and automation capabilities, and the reasons for the choice. During the analysis I consider the business aspects with the Total Costs of Ownership (TCO) analysis.
Finally, I present the characteristics of the integration and module tests of the developed application. I explain the construction and operation of generic test runtime environment, which supports the continuous integration.