Методи прогнозування результатів мутаційного тестування
DOI: 10.31673/2412-9070.2024.050854
Анотація
Мутаційне тестування є широко визнаною технікою для оцінки ефективності наборів тестів у виявленні помилок у програмному забезпеченні. Незважаючи на ефективність цього методу, виконання мутацій вимагає значних обчислювальних витрат, що ускладнює його широке застосування. Для вирішення проблеми ефективності дослідники пропонують різні підходи, такі як селективне, ослаблене і прогнозоване мутаційне тестування. Це зумовлено використанням мутаційного тестування як метрики для оцінки якості набору тестів, розробленого за допомогою фазового тестування. Як мутаційне тестування, так і фаззінг тестування є обчислювально інтенсивними процесами, створюючи значну перешкоду, яка потребує інноваційних рішень. У зв'язку з цим, оптимізація обчислювальних ресурсів стає ключовою областю уваги, метою якої є збалансування ефективності без компромісу щодо точності та глибини використаних методик тестування. Ця складна взаємодія між збалансуванням витрат, обчислювальною потужністю і ефективністю тестування підкреслює потребу у стратегічних методах оптимізації, призначених для динамічних і вимогливих до ресурсів сценаріїв оцінки. Пошук підходів, які дозволять швидко та точно оцінити ефективність мутаційного тестування, залишається відкритою проблемою, оскільки методи зменшення мутацій не переважають випадковий вибір мутантів. Одним із шляхів вирішення такої проблеми є використання методів прогнозування, що дозволяють передбачити результати, не виконуючи мутації. Дані методи прогнозування мутаційного тестування представляють собою новий напрямок досліджень в області методів оптимізації мутаційного тестування. Розглянуті методи можна класифікувати за типом машинного навчання (навчання з учителем та без вчителя), за типами ознак (динамічні та статичні), за рівнем прогнозування (на рівні мутантів та на рівні тестового набору), за типом мутацій, що використовуються
(мутації першого порядку та мутації вищого порядку).
Ключові слова: мутаційне тестування, машинне навчання, глибоке навчання, модель, оптимізація, фреймворк, аналіз даних.