LIGHTWEIGHT ENVIRONMENTS FOR TESTING SPEED AND RELIABILITY OF SOFTWARE BASED ON OPERATING SYSTEM LEVEL VIRTUALIZATION
DOI:
https://doi.org/10.31891/2307-5732-2024-331-71Keywords:
software engineering, OS-level virtualization, containers, software performance testing, software reliabilityAbstract
An environment for performance software testing has been described, based on the use of containerization technology through the use of appropriate software (Docker or others) on the one hand, and a tool for measuring performance and carrying out load testing such as ApacheBench or similar. The advantage of containerization technology for achieving the goal was evaluated. It is shown that in this case, the test environment can be deployed on different computers separately, rather than being deployed centrally. This provides following advantages: less cost in terms of computing resources compared to other ways of deploying environments on local computers. Certain types of environment configurations can be easily distributed and replicated between individual computers and workstations through the distribution and application of prepared configuration files. Compared to cloud environments, this approach does not require additional material costs for support. The scheme of operation of such an environment for non-functional testing has been analyzed.. The environment also allows you to simulate more complex configurations, for example, to study the operation of various load balancing algorithms/systems. The created testing environment was tested on the example of performance of testing web applications. It showed that the created environment allows you to calculate the approximate response time of the application and the presence of failures depending on the number of users who use the application at the same time. Also, load testing allows you to calculate the normal and critical number of application users and predict and prevent potential failures. The mechanism for creating test environments considered in this work can be used to build models that are necessary for studying and/or modeling certain types of software testing based on loads, load balancing algorithms between workstations, and others. Since such an approach can be used on almost any personal workstation with relatively small requirements for computing resources and the deployment and distribution of environments is quite simple, such an approach can be implemented not only in business, but also in universities for courses that involve the use similar environments.