METAMORPHIC TESTING-AS-A-SERVICE: A NEW DESIGN PATTERN OF CLOUD SERVERLESS SYSTEMS FOR METAMORPHIC TESTING - YUSYN, YAKIV; ZABOLOTNIA, TETIANA (Herald of Khmelnytskyi National University. Technical sciences, 2022)
The task of quality assurance of software systems in IT is still an urgent problem, and due to the growing complexity of these systems is becoming increasingly difficult to use old methods of automated testing. One of the new methods of automated testing is metamorphic testing, which can be applied to systems of any complexity and which can be performed efficiently in the cloud. However, software for performing metamorphic tests in the cloud is still in the early stages of its development, due to the still low popularity of the method in the industry. So, the purpose of this work is to improve the software to perform metamorphic tests in the cloud by developing the corresponding design pattern to improve the expected results against the software code quality metrics. To achieve this objective, the new MTaaS design pattern has been developed that is based on the idea of metamorphic relation decomposition into individual parts together with automatic code generation of the relations’ and functions’ bodies. The combination of these two ideas allows the developer to concentrate only on the implementation of the logic of metamorphic relations, hiding from him all other details (such as creating serverless functions). To evaluate the developed design pattern, two software systems for metamorphic testing of the same software artifact were developed: one software system was implemented without the use of the MTaaS pattern, the other with its use. The following four code quality metrics were used in this evaluation: maintainability index, cyclomatic complexity, class coupling, lines of code. The analysis of evaluation results has demonstrated improvement of the class coupling and maintainability index metrics without worsening other metrics. Thus, the evaluation showed the effectiveness of using the developed design pattern during developing software systems for metamorphic testing based on serverless computing.