Что такое мутационное тестирование? (Пример)

Что такое мутационное тестирование?

Мутационное тестирование — это тип тестирования программного обеспечения, при котором определенные утверждения исходного кода изменяются/мутируются, чтобы проверить, могут ли тестовые примеры найти ошибки в исходном коде. Целью мутационного тестирования является обеспечение качества тестовых примеров с точки зрения надежности, чтобы они не допускали сбоев в работе мутировавшего исходного кода.

Изменения, вносимые в программу мутантов, должны быть крайне небольшими, чтобы они не влияли на общую цель программы. Мутационное тестирование также называют стратегией тестирования на основе ошибок, поскольку оно включает в себя создание ошибки в программе и является разновидностью тестирования. Белый Box Тестирование который в основном используется для Модульное тестирование.

Первоначально мутация была предложена в 1971 году, но ее не стали использовать из-за высоких затрат. Теперь он снова набрал обороты и широко используется в таких языках, как Java и XML.

Как провести мутационное тестирование?

Выполнить мутационное тестирование

Ниже приведены шаги для выполнения мутационного тестирования (мутационного анализа):

Шаг 1: Ошибки в исходный код программы вносятся путем создания множества версий, называемых мутантами. Каждый мутант должен содержать одну ошибку, и цель состоит в том, чтобы привести к сбою мутантной версии, что демонстрирует эффективность тестовых примеров.

Шаг 2: Тестовые примеры применяются к исходной программе, а также к программе-мутанту. А Тестовый кейс должен быть адекватным и настроен для обнаружения ошибок в программе.

Шаг 3: Сравните результаты оригинальной и мутантной программы.

Шаг 4: Если исходная программа и программы-мутанты генерируют разные выходные данные, то тестовый пример уничтожает мутанта. Следовательно, тестовый пример достаточно хорош, чтобы обнаружить разницу между исходной и мутантной программой.

Шаг 5: Если исходная программа и программа-мутант генерируют одинаковый вывод, Mutant остается в живых. В таких случаях необходимо создать более эффективные тестовые сценарии, уничтожающие всех мутантов.

Как создавать программы-мутанты?

Создание программ-мутантов

Мутация — это не что иное, как одно синтаксическое изменение, внесенное в оператор программы. Каждая программа-мутант должна отличаться от исходной программы на одну мутацию.

Оригинальная программа Программа мутантов
Если (х>у)

Напечатать «Привет»

Еще

Напечатайте «Привет»

Если(х <у)

Напечатать «Привет»

Еще

Напечатайте «Привет»

Что изменить в программе-мутанте?

Существует несколько методов, которые можно использовать для создания мутантных программ. Давайте посмотрим на них

Operand операторы замены Модификация выражения OperaTORs Модификация заявления OperaTORs
Замените операнд другим операндом (x на y или y на x) или постоянным значением. Замена оператора или вставка новых операторов в оператор программы. Программные операторы модифицируются для создания мутантных программ.
Пример-

If(x>y) заменить значения x и y

Если (5>y) замените x на константу 5

Пример-

Если (х == у)

Мы можем заменить == на >= и получить программу-мутант как

If(x>=y) и вставка ++ в оператор

Если(х==++у)

Пример-

Удалить часть else в операторе if-else

Удалите весь оператор if-else, чтобы проверить, как ведет себя программа.

Некоторые из примеров операторов мутации:

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

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

Мутационное тестирование занимает чрезвычайно много времени и его сложно выполнять вручную. Чтобы ускорить процесс, рекомендуется использовать инструменты автоматизации. Инструменты автоматизации также снижают стоимость тестирования.

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

Типы мутационного тестирования

In Программная инженерияМутационное тестирование можно условно разделить на три типа: мутация утверждения, мутация решения и мутация значения.

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

Оценка мутаций

Оценка мутации определяется как процент убитых мутантов от общего числа мутантов.

  • Оценка мутации = (Убитые мутанты / Общее количество мутантов) * 100

Оценка мутаций

Тестовые случаи адекватны мутации, если оценка равна 100%. Результаты экспериментов показали, что мутационное тестирование является эффективным подходом для измерения адекватности тестовых случаев. Но основным недостатком является высокая стоимость создания мутантов и выполнения каждого тестового примера против этой мутантной программы.

Преимущества мутационного тестирования

Ниже приведены преимущества мутационного тестирования:

  • Это мощный подход для достижения высокого охвата исходной программы.
  • Это тестирование способно всесторонне протестировать мутантную программу.
  • Мутационное тестирование обеспечивает разработчику программного обеспечения хороший уровень обнаружения ошибок.
  • Этот метод выявляет неоднозначности в исходном коде и способен обнаружить все ошибки в программе.
  • Клиенты получают выгоду от этого тестирования, поскольку получают наиболее надежную и стабильную систему.

Недостатки мутационного тестирования

С другой стороны, у мутантного тестирования есть недостатки:

  • Мутационное тестирование является чрезвычайно дорогостоящим и трудоемким, поскольку необходимо создать множество мутантных программ.
  • Поскольку это тестирование требует много времени, справедливо будет сказать, что такое тестирование невозможно провести без инструмента автоматизации.
  • Каждая мутация будет иметь такое же количество тестовых случаев, как и исходная программа. Таким образом, возможно, потребуется протестировать большое количество мутантных программ с помощью исходного набора тестов.
  • Поскольку этот метод предполагает изменение исходного кода, он совершенно неприменим для Цвет - Черный. Box Тестирование.

Заключение

Вам нужно исчерпывающее тестирование вашего приложения? Ответ: мутационное тестирование. Это наиболее полный метод тестирования программы. Это метод, который проверяет эффективность и точность программы тестирования для обнаружения неисправностей или ошибок в системе.

Подведем итог этой публикации следующим образом: