Тестування мутації при тестуванні програмного забезпечення: Mutant Score & Приклад аналізу

Зміст:

Anonim

Тестування мутацій

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

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

Спочатку мутація була запропонована в 1971 році, але втратила запал через великі витрати. Тепер він знову набрав популярності і широко використовується для таких мов, як Java та XML.

У цьому підручнику ви дізнаєтесь-

  • Що таке тестування мутацій?
  • Як виконати тестування мутації?
  • Як створити програми мутантів?
  • Що змінити в програмі мутантів?
  • Види мутаційного тестування
  • Оцінка мутації:
  • Переваги мутаційного тестування:
  • Недоліки мутаційного тестування:

Як виконати тестування мутації?

Нижче наведені кроки для проведення тесту на мутацію (аналіз мутації):

Крок 1 : Помилки вводяться у вихідний код програми шляхом створення багатьох версій, які називаються мутантами. Кожен мутант повинен містити одну помилку, і мета полягає в тому, щоб вийти з ладу версії мутанта, що демонструє ефективність тестових випадків.

Крок 2 : Тестові кейси застосовуються до оригінальної програми, а також до програми-мутанта. Тестовий кейс повинен бути достатнім, і його налаштовано для виявлення несправностей у програмі.

Крок 3 : Порівняйте результати оригінальної та мутантної програми.

Крок 4 : Якщо оригінальна програма та мутантні програми генерують різні результати, тоді тестовий випадок вбиває мутанта. Отже, тестовий приклад є достатньо хорошим, щоб виявити зміну між оригіналом та програмою мутантів.

Крок 5 : Якщо оригінальна програма та програма-мутант генерують однакові результати, Мутант залишається живим. У таких випадках потрібно створити більш ефективні тестові випадки, які вбивають усіх мутантів.

Як створити програми мутантів?

Мутація - це не що інше, як одна синтаксична зміна, яка вноситься до оператора програми. Кожна програма мутантів повинна відрізнятися від початкової програми однією мутацією.

Оригінальна програма Програма мутантів
Якщо (x> y)
Друк "Привіт" В
іншому випадку
Друк "Привіт"
Якщо ( x )Друк "Привіт" В
іншому випадку
Друк "Привіт"

Що змінити в програмі мутантів?

Існує кілька методів, які можна використовувати для створення програм мутантів. Давайте розглянемо їх

Оператори заміни операндів Оператори модифікації виразів Оператори модифікації виписки
Замініть операнд іншим операндом (x на y або y на x) або на постійне значення. Замінити оператор або вставити нові оператори в оператор програми. Програмні висловлювання модифікуються для створення програм-мутантів.
Приклад -
Якщо (x> y) замінити значення x та y
Якщо (5> y) замінити x на константу 5
Приклад -
If (x == y)
Ми можемо замінити == на> = і мати мутантну програму як
If (x> = y) та вставити ++ в оператор
If (x == ++ y)
Приклад -
Видалити частину else у операторі if-else
Видалити весь оператор if-else, щоб перевірити, як поводиться програма
Деякі зразки операторів мутації:
  • Заміна етикетки GOTO
  • Повернення заяви про заміну
  • Видалення заяви
  • Вставка одинарного оператора (як - і ++)
  • Заміна логічного роз'єму
  • Порівнянна заміна імені масиву
  • Видалення частини else у операторі if-else
  • Додавання або заміна операторів
  • Заміна виписки шляхом зміни даних
  • Модифікація даних для змінних
  • Модифікація типів даних у програмі

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

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

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

  • Страйкер
  • Тестування ПДФО

Види мутаційного тестування

У розробці програмного забезпечення тестування на мутацію можна принципово поділити на 3 типи - мутація твердження, мутація рішення та мутація значень.

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

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

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

  • Оцінка мутації = (Вбиті мутанти / Загальна кількість мутантів) * 100

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

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

Нижче наведено переваги мутаційного тестування:

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

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

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

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

Висновок:

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