МУТАЦІЙНЕ ТЕСТУВАННЯ
12.10.2021 23:54
[1. Информационные системы и технологии]
Автор: Глюза А.П., студентка, комп’ютерна інженерія та управління, Харківський національний університет радіоелектроніки, м. Харків
Мутаційне тестування – це метод тестування, котрі базуються на всіляких зміни вихідного коду і перевірці реакції на ці зміни набору автоматичних тестів. Якщо тести після зміни коду успішно виконуються, значить або код не покритий тестами, або написані тести неефективні. Критерій, що визначає ефективність набору автоматичних тестів, називається Mutation Score Indicator (MSI).
Мета Mutation Testing – оцінити якість тестових випадків, які повинні бути досить надійними, щоб не виконувати мутантний код. Цей метод також називається стратегією тестування на основі помилок, так як він включає в себе створення помилки в програмі.
Мутація була спочатку запропонована в 1971 році, але втратила запал через високі витрати. Тепер вона знову набирає обертів і широко використовується для таких мов, як Java і XML.
У програмній інженерії тестування на мутації можна розділити на три типи: мутація операторів, мутація рішень і мутація значень.
Мутація оператора – розробник вирізає і вставляє частину коду, результатом якого може бути видалення деяких рядків.
Value Mutation – значення первинних параметрів змінені.
Мутація рішень – оператори управління повинні бути змінені
Показник мутації визначається як відсоток убитих мутантів від загальної кількості мутантів, тобто оцінка мутації = (убиті мутанти/загальна кількість мутантів)*100.
Тестові випадки відповідають мутацій, якщо оцінка складає 100%. Експериментальні результати показали, що мутаційні тестування є ефективним підходом для вимірювання адекватності тестових випадків. Але головний недолік полягає у високій вартості генерації мутантів і виконання кожного тестового прикладу для цієї програми мутантів.
Переваги мутаційного тестування:
• Це потужний підхід для досягнення високого охоплення вихідної програми.
• Це тестування здатне всебічно протестувати мутантних програму.
• Мутаційне тестування забезпечує хороший рівень виявлення помилок розробнику програмного забезпечення.
• Цей метод розкриває неоднозначність у вихідному коді і здатний виявляти всі помилки в програмі.
• Клієнти отримують вигоду від цього тестування, отримуючи саму надійну і стабільну систему.
Недоліки мутаційного тестування:
• Тестування на мутації є надзвичайно дорогим і трудомістким, так як існує безліч мутантних програм, які необхідно створити.
• Так як це забирає багато часу, можна сказати, що це тестування неможливо без інструменту автоматизації.
• У кожної мутації буде той же кількість тестових випадків, що і у вихідної програми. Таким чином, велика кількість мутантних програм, можливо, буде потрібно протестувати за допомогою оригінального набору тестів.
• Оскільки цей метод включає в себе зміни вихідного коду, він зовсім не застосуємо для тестування чорного ящика.
Мутаційне тестування – це форма тестування методом білого ящика, що має на увазі внесення в код помилкових змін (або мутантів) з подальшим виконанням набору тестів для кожного з них. Якщо тест не проходить, то мутант «вбитий». Успішне ж виконання тесту означає, що він «вижив». Чим більше убитих мутантів, тим більшу семантичну стабільність коду гарантує набір тестів. Дана техніка не тільки високоефективна, а й дорога. Тому через великий масштаб завдання її застосування стає непрактичним, навіть для невеликих проектів ПО.
Література:
1. Witko K. Зачем нам мутационное тестирование [Електронний ресурс] / Kinga Witko. – 2020. – Режим доступу до ресурсу: https://software-testing.ru/library/testing/other-testing/3331-why-do-you-need-mutation-testing.
2. Мутационное тестирование на простом примере [Електронний ресурс] – Режим доступу до ресурсу: http://getbug.ru/mutatsionnoe-testirovanie-na-prostom-primere/.