Що таке мутаційний тест? (Приклад)
Що таке мутаційний тест?
Тестування мутацій це тип тестування програмного забезпечення, під час якого певні оператори вихідного коду змінюються/мутуються, щоб перевірити, чи здатні тестові випадки знаходити помилки у вихідному коді. Метою мутаційного тестування є забезпечення якості тестових прикладів з точки зору надійності, щоб він не витримав мутований вихідний код.
Зміни, внесені в програму мутантів, повинні бути дуже незначними, щоб вони не вплинули на загальну мету програми. Тестування на мутації також називають стратегією тестування на основі помилок, оскільки воно передбачає створення помилки в програмі та є різновидом білий Box Тестування який в основному використовується для Unit Testing.
Спочатку мутація була запропонована в 1971 році, але втратила свою популярність через високу вартість. Тепер він знову вибрав пар і широко використовується для таких мов, як Java і XML.
Як провести мутаційний тест?
Нижче наведено кроки для виконання тесту на мутації (аналіз мутацій):
крок 1: Помилки вносяться у вихідний код програми шляхом створення багатьох версій, які називаються мутантами. Кожен мутант повинен містити одну помилку, і мета полягає в тому, щоб спричинити збій версії мутанта, що демонструє ефективність тестів.
крок 2: тестові випадки застосовуються до оригінальної програми, а також до програми-мутанта. А Тестовий випадок має бути адекватним, і його налаштовано для виявлення помилок у програмі.
крок 3: Порівняйте результати оригінальної та мутантної програми.
крок 4: Якщо оригінальна програма та програми-мутанти генерують різні результати, тоді мутант буде вбито тестовим прикладом. Отже, тестовий приклад достатньо хороший, щоб виявити зміну між оригінальною та мутантною програмами.
крок 5: якщо оригінальна програма та програма-мутант генерують однаковий результат, мутант залишається живим. У таких випадках потрібно створити більш ефективні тести, які вбиватимуть усіх мутантів.
Як створювати програми-мутанти?
Мутація — це не що інше, як одна синтаксична зміна, яка вноситься до оператора програми. Кожна програма-мутант повинна відрізнятися від вихідної програми однією мутацією.
Оригінальна програма | Програма Мутант |
---|---|
Якщо (x>y)
Надрукувати «Привіт» Ще Надрукувати «Привіт» |
Якщо (x<y)
Надрукувати «Привіт» Ще Надрукувати «Привіт» |
Що змінити в програмі Mutant?
Є кілька методів, які можна використовувати для створення програм-мутантів. Давайте подивимось на них
Operand оператори заміни | Модифікація виразу Operaторс | Модифікація заяви Operaторс |
---|---|---|
Замініть операнд на інший операнд (x на y або y на x) або на постійне значення. | Заміна оператора або додавання нових операторів у оператор програми. | Програмні оператори змінено для створення програм-мутантів. |
Приклад
If(x>y) замінити значення x і y If(5>y) замінити x константою 5 |
Приклад
Якщо (x==y) Ми можемо замінити == на >= і мати програму-мутант як If(x>=y) і вставка ++ у оператор Якщо (x==++y) |
Приклад
Видалити частину else в операторі if-else Видаліть весь оператор if-else, щоб перевірити, як поводиться програма Деякі приклади операторів мутації:
|
Автоматизація мутаційного тестування
Тестування на мутації займає дуже багато часу, і його складно виконати вручну. Щоб прискорити процес, доцільно скористатися засобами автоматизації. Засоби автоматизації також зменшують вартість тестування.
Список доступних інструментів -
Види тестування на мутації
In Розробка програмного забезпеченняТестування мутацій можна розділити на 3 типи: мутація твердження, мутація рішення та мутація значення.
- Мутація заяви – розробник вирізає та вставляє частину коду, результатом чого може бути видалення деяких рядків
- Мутація значення– змінено значення первинних параметрів
- Мутація рішення– контрольні звіти підлягають зміні
Оцінка мутації
Оцінка мутації визначається як відсоток убитих мутантів від загальної кількості мутантів.
- Показник мутації = (убиті мутанти / загальна кількість мутантів) * 100
Тестові випадки є адекватними мутаціям, якщо оцінка становить 100%. Експериментальні результати показали, що тестування на мутації є ефективним підходом для вимірювання адекватності тестів. Але головним недоліком є висока вартість генерації мутантів і виконання кожного тесту проти цієї програми-мутанта.
Переваги тестування на мутації
Переваги мутаційного тестування:
- Це потужний підхід для досягнення високого охоплення вихідної програми.
- Це тестування здатне всебічно протестувати програму-мутант.
- Тестування на мутації забезпечує хороший рівень виявлення помилок розробнику програмного забезпечення.
- Цей метод розкриває неоднозначності у вихідному коді та має здатність виявляти всі помилки в програмі.
- Клієнти отримують користь від цього тестування, отримуючи найнадійнішу та стабільну систему.
Недоліки тестування на мутації
З іншого боку, наступні недоліки тестування Mutant:
- Тестування на мутації є надзвичайно дорогим і трудомістким, оскільки існує багато програм-мутантів, які потрібно створити.
- Оскільки воно займає багато часу, справедливо буде сказати, що це тестування неможливо виконати без інструменту автоматизації.
- Кожна мутація матиме таку саму кількість тестів, як і вихідна програма. Таким чином, може знадобитися перевірити велику кількість програм-мутантів з оригінальним набором тестів.
- Оскільки цей метод передбачає зміни вихідного коду, він зовсім не застосовний для Black Box Тестування.
Висновок
Бажаєте вичерпного тестування своєї програми? Відповідь - тестування на мутації. Це найповніший метод тестування програми. Це метод, який перевіряє ефективність і точність програми тестування для виявлення збоїв або помилок у системі.