Надіслати статтю
вул. Інститутська 11, м. Хмельницький, 29016

METAMORPHIC TESTING-AS-A-SERVICE: A NEW DESIGN PATTERN OF CLOUD SERVERLESS SYSTEMS FOR METAMORPHIC TESTING

METAMORPHIC TESTING-AS-A-SERVICE: НОВИЙ ШАБЛОН ПРОЄКТУВАННЯ ХМАРНИХ БЕЗСЕРВЕРНИХ СИСТЕМ МЕТАМОРФІЧНОГО ТЕСТУВАННЯ

 Сторінки: 107-115. Номер: №1, 2022 (305
 Автори:
Yakiv YUSYN
https://orcid.org/0000-0001-6971-3808
e-mail: yusin.yakiv@gmail.com
Tetiana ZABOLOTNIA
https://orcid.org/0000-0001-8570-7571
e-mail: tetiana.zabolotnia@gmail.com
National Technical University of Ukraine “Igor Sikorsky Kyiv Polytechnic Institute”

ЮСИН Я. О., ЗАБОЛОТНЯ Т. М.
Національний технічний університет України «Київський політехнічний інститут ім. Ігоря Сікорського»
DOI: https://www.doi.org/10.31891/2307-5732-2022-305-1-107-115

Анотація мовою оригіналу

 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.
Keywords: metamorphic testing; cloud computing; serverless computing; design pattern.

Розширена анотація українською  мовою

Задача забезпечення якості програмних систем в ІТ досі залишається актуальною, при чому через зростаючу складність цих систем все складніше стає застосування старих методів автоматизованого тестування. Одним із нових методів автоматизованого тестування є метаморфічне тестування, яке може бути застосованим до систем будь-якої складності та яке може ефективно виконуватись у хмарі. Проте, програмне забезпечення для виконання метаморфічних тестів у хмарі досі знаходиться у початковій фазі свого розвитку, що викликано поки що невеликою популярністю методу в індустрії.  Відповідно, метою даної роботи є удосконалення програмного забезпечення для виконання метаморфічних тестів у хмарі шляхом розроблення відповідного шаблону проєктування, що покращить отримувані результати за метриками якості програмного коду. Для досягнення поставленої мети розроблено новий шаблон проєктування MTaaS, в основу якого покладено ідеї декомпозиції метаморфічного зв’язку на окремі складові разом з автоматичною кодогенерацією тіл зв’язків та функцій. Поєднання цих двох ідей дозволяє розробнику зосередитись тільки на написані логіки метаморфічних зв’язків, приховуючи від нього всі інші деталі (такі як створення безсерверних функцій). Для оцінювання розробленого шаблону проєктування розроблено дві програмні системи метаморфічного тестування одного і того самого програмного артефакту: одна програмна система реалізована без використання шаблону MTaaS, інша з його використанням. При оцінювані використано наступні чотири метрики якості програмного коду: індекс підтримуваності, цикломатична складність, зв’язність класів, кількість рядків коду. Аналіз отриманих результатів показав покращення метрик індекса підтримуваності та зв’язності класів, при відсутності погіршення інших двох. Таким чином, проведене оцінювання показало ефективність використання розробленого шаблону проєктування при розроблені програмних систем метаморфічного тестування на основі безсерверних обчислень.
Ключові слова: метаморфічне тестування; хмарні обчислення; безсерверні обчислення; шаблон проєктування.

References

  1. Capgemini, Sogeti, Microfocus, “World Quality Report 2021”. URL: https://www.capgemini.com/research/world-quality-report-wqr-2021-22/.
  2. Weyuker E., “The oracle assumption of program testing,” in Proc. of 13th International Conference on System Sciences, pp. 44-49 (1980).
  3. Barr T., Harman M., McMinn P., Shahbaz M., Yoo S., “The oracle problem in software testing: a survey,” IEEE Transactions on Software Engineering Vol. 41 (5), pp. 507–525 (2015). https://doi.org/10.1109/TSE.2014.2372785.
  4. Chen T.Y., Cheung S.C., Yiu S.M., “Metamorphic testing: a new approach for generating next test cases” Technical Report HKUST-CS98-01, Department of Computer Science, Hong Kong University of Science and Technology, Hong Kong (1998).
  5. Zhou Z.Q., Zhang S., Hagenbuchner M., Tse T.H., Kuo F.-C., Chen T.Y., “Automated functional testing of online search services” Software Testing, Verification and Reliability Journal Vol. 22 (4), pp. 221–243 (2012). https://doi.org/10.1002/stvr.437.
  6. Zhou Z.G., Tse T.H., Kuo F.-C., Chen T.Y. “Automated functional testing of web search engines in the absence of an oracle” Technical Report TR-2007-06, Department of Computer Science, The University of Hong Kong, Hong Kong (2007).
  7. Zhou Q., Xiang S., Chen T.Y. “Metamorphic testing for software quality assessment: A study of search engines” IEEE Transactions on Software Engineering Vol. 42 (3), pp. 264–284 (2016). https://doi.org/10.1109/TSE.2015.2478001.
  8. Tao Q., Wu W., Zhao C., Shen W. “An automatic testing approach for compiler based on metamorphic testing technique” in Proc. of 17th Asia Pacific Software Engineering Conference (APSEC), pp. 270–279 (2010). https://doi.org/10.1109/APSEC.2010.39.
  9. Le V., Afshari M., Su Z. “Compiler validation via equivalence modulo inputs” in Proc. of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 216–226 (2014). https://doi.org/10.1145/2666356.2594334.
  10. Kuo F.-C., Liu S., Chen T.Y. “Testing a binary space partitioning algorithm with metamorphic testing” in Proc. of the 2011 ACM Symposium on Applied Computing, pp. 1482–1489 (2011). http://dx.doi.org/10.1145/1982185.1982502.
  11. Jameel T., Mengxiang L., Liu C. “Test oracles based on metamorphic relations for image processing applications” in Proc. of 16th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), pp. 1–6 (2015). https://doi.org/10.1109/SNPD.2015.7176238.
  12. Pullum L.L., Ozmen O. “Early results from metamorphic testing of epidemiological models” in Proc. of ASE/IEEE International Conference on BioMedical Computing (BioMedCom), pp. 62–67 (2012). https://doi.org/10.1109/BioMedCom.2012.17.
  13. Ramanathan A., Steed C.A., Pullum L.L. “Verification of compartmental epidemiological models using metamorphic testing, model checking and visual analytics” in Proc. of ASE/IEEE International Conference on BioMedical Computing (BioMedCom), pp. 68–73 (2012). https://doi.org/10.1109/BioMedCom.2012.18.
  14. Segura , Fraser G., Sanchez A.B., Ruiz-Cortes A. “A survey on metamorphic testing” IEEE Transactions on Software Engineering Vol. 42 (9), pp. 805-824 (2016). https://doi.org/10.1109/TSE.2016.2532875.
  15. Chen T.Y., Kuo F.-C., Liu H., Poon P.-L., Towey D., Tse T.H., Zhou Z.Q. “Metamorphic testing: A review of challenges and opportunities” ACM Computing Surveys Vol. 51 (1), pp. 4:1-4:27 (2018). https://doi.org/10.1145/3143561.
  1. Troup M., Yang A., Kamali A.H., Giannoulatou E., Chen T.Y., Joshua W. K. “A cloud-based framework for applying metamorphic testing to a bioinformatics pipeline” In Proc. of the 1st International Workshop on Metamorphic Testing, pp. 33–36 (2016). https://doi.org/10.1109/MET.2016.014.
  2. Yusyn Y., Zabolotnia T. “Metamorphic Testing and Serverless Computing: A Basic Architecture” preprint, [Online]. Available: https://yakivyusin.github.io/preprints/Serverless.pdf.
  3. Gamma E., Helm R., Johnson R., Vlissides J. “Design Patterns: Elements of Reusable Object-Oriented Software” Addison-Wesley (1994).
  4. Microsoft, “Source Generators”. URL: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/source-generators-overview.
  5. YAML Language Development Team, “YAML Ain’t Markup Language (YAML™) version 1.2”. Available: https://yaml.org/spec/1.2.2/.
  6. Microsoft, “Code metrics – Maintainability index range and meaning” URL: https://docs.microsoft.com/en-us/visualstudio/code-quality/code-metrics-maintainability-index-range-and-meaning.
  7. Microsoft, “Code metrics – Cyclomatic complexity” URL: https://docs.microsoft.com/en-us/visualstudio/code-quality/code-metrics-cyclomatic-complexity.
  8. Microsoft, “Code metrics – Class coupling” URL: https://docs.microsoft.com/en-us/visualstudio/code-quality/code-metrics-class-coupling.

 

Post Author: Горященко Сергій

Translate