Що таке мутаційний тест? (Приклад)

Що таке мутаційний тест?

Тестування мутацій це тип тестування програмного забезпечення, під час якого певні оператори вихідного коду змінюються/мутуються, щоб перевірити, чи здатні тестові випадки знаходити помилки у вихідному коді. Метою мутаційного тестування є забезпечення якості тестових прикладів з точки зору надійності, щоб він не витримав мутований вихідний код.

Зміни, внесені в програму мутантів, повинні бути дуже незначними, щоб вони не вплинули на загальну мету програми. Тестування на мутації також називають стратегією тестування на основі помилок, оскільки воно передбачає створення помилки в програмі та є різновидом білий 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, щоб перевірити, як поводиться програма

Деякі приклади операторів мутації:

  • Заміна етикетки GOTO
  • Заміна заяви про повернення
  • Видалення заяви
  • Унарна вставка оператора (Like – і ++)
  • Логічна заміна роз'єму
  • Заміна імен порівняльного масиву
  • Видалення частини else в операторі if-else
  • Додавання або заміна операторів
  • Заміна заяви шляхом зміни даних
  • Модифікація даних для змінних
  • Модифікація типів даних у програмі

Автоматизація мутаційного тестування

Тестування на мутації займає дуже багато часу, і його складно виконати вручну. Щоб прискорити процес, доцільно скористатися засобами автоматизації. Засоби автоматизації також зменшують вартість тестування.

Список доступних інструментів -

Види тестування на мутації

In Розробка програмного забезпеченняТестування мутацій можна розділити на 3 типи: мутація твердження, мутація рішення та мутація значення.

  1. Мутація заяви – розробник вирізає та вставляє частину коду, результатом чого може бути видалення деяких рядків
  2. Мутація значення– змінено значення первинних параметрів
  3. Мутація рішення– контрольні звіти підлягають зміні

Оцінка мутації

Оцінка мутації визначається як відсоток убитих мутантів від загальної кількості мутантів.

  • Показник мутації = (убиті мутанти / загальна кількість мутантів) * 100

Оцінка мутації

Тестові випадки є адекватними мутаціям, якщо оцінка становить 100%. Експериментальні результати показали, що тестування на мутації є ефективним підходом для вимірювання адекватності тестів. Але головним недоліком є ​​висока вартість генерації мутантів і виконання кожного тесту проти цієї програми-мутанта.

Переваги тестування на мутації

Переваги мутаційного тестування:

  • Це потужний підхід для досягнення високого охоплення вихідної програми.
  • Це тестування здатне всебічно протестувати програму-мутант.
  • Тестування на мутації забезпечує хороший рівень виявлення помилок розробнику програмного забезпечення.
  • Цей метод розкриває неоднозначності у вихідному коді та має здатність виявляти всі помилки в програмі.
  • Клієнти отримують користь від цього тестування, отримуючи найнадійнішу та стабільну систему.

Недоліки тестування на мутації

З іншого боку, наступні недоліки тестування Mutant:

  • Тестування на мутації є надзвичайно дорогим і трудомістким, оскільки існує багато програм-мутантів, які потрібно створити.
  • Оскільки воно займає багато часу, справедливо буде сказати, що це тестування неможливо виконати без інструменту автоматизації.
  • Кожна мутація матиме таку саму кількість тестів, як і вихідна програма. Таким чином, може знадобитися перевірити велику кількість програм-мутантів з оригінальним набором тестів.
  • Оскільки цей метод передбачає зміни вихідного коду, він зовсім не застосовний для Black Box Тестування.

Висновок

Бажаєте вичерпного тестування своєї програми? Відповідь - тестування на мутації. Це найповніший метод тестування програми. Це метод, який перевіряє ефективність і точність програми тестування для виявлення збоїв або помилок у системі.