МЕТОД АДАПТАЦІЇ АРХІТЕКТУРНОГО ШАБЛОНУ METAMORPHIC TESTING-AS-A-SERVICE ДЛЯ МОВИ ПРОГРАМУВАННЯ JAVA - БЕЛІЦЬКИЙ, ОЛЕКСНДР; ЮСИН, ЯКІВ (Herald of Khmelnytskyi National University. Technical sciences, 2026)
Ця робота присвячена задачі адаптації архітектурного шаблону Metamorphic Testing-as-a-Service (MTaaS) для мови програмування Java з урахуванням її мовних особливостей. Метаморфічне тестування є перспективним підходом до верифікації програмних систем у випадках, коли побудова класичного тестового оракула є складною або неможливою. Проте практичне впровадження метаморфічного тестування у процеси розроблення програмного забезпечення часто є ускладненим через необхідність реалізації метаморфічних сценаріїв власноруч, необхідність значного обсягу допоміжного коду та слабку інтеграцію з існуючими архітектурами програмних систем.У роботі проаналізовано існуючі підходи до реалізації метаморфічного тестування та архітектурного шаблону MTaaS, а також обґрунтовано вибір анотаційного підходу як найбільш придатного для екосистеми Java. Запропонований метод базується на використанні анотацій та механізмів їх обробки для декларативного опису метаморфічних відношень, автоматичного збирання їх складових та формування формальної специфікації для подальшого виконання метаморфічних перевірок. Для оцінки ефективності запропонованого підходу було розроблено прототип реалізації MTaaS для Java та проведено експериментальне порівняння з ручною реалізацією метаморфічного тестування. Експерименти виконано на прикладі двох задач різної складності: Text Normalization Pipeline та Convex Hull. Порівняння здійснювалося з використанням об’єктно-орієнтованих метрик якості коду, зокрема LOC, WMC, CBO, RFC, LCOM та NOM.Результати експериментального дослідження показали, що для задач із невеликою кількістю метаморфічних відношень анотаційний підхід на основі MTaaS забезпечує помірне покращення характеристик коду. Водночас для складних задач із великою кількістю незалежних метаморфічних сценаріїв використання MTaaS дозволяє суттєво зменшити обсяг коду, знизити його складність і зв’язність, а також усунути значну частину допоміжного glue-коду.