Мутация Тестирование - Преимущества и недостатки мутационного тестирования

Содержание:

Anonim

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

Как слово «мутировать» в целом означает «изменение», так и тестирование мутаций означает. Мутационное тестирование - это тип тестирования программного обеспечения, который выполняется путем изменения или изменения фрагмента кода, чтобы проверить / убедиться, что тестовые сценарии способны обнаружить ошибки / дефекты. Мутационное тестирование проходит тестирование Белого ящика и в основном выполняется при выполнении модульных тестов определенного модуля приложения. Изменения, сделанные в исходном / основном коде, сделаны в небольшом количестве, чтобы это не повлияло на его общую цель. Это также известно как Техника Обнаружения Сбоев, поскольку это делается с целью определения слабых мест тестов путем создания ошибки в исходном коде.

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

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

Есть в основном 3 типа мутационного тестирования, которые выполняются для создания мутантов исходного кода:

1. Значение мутации

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

Оригинальный код:

int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);

Код мутанта:

int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);

2. Решение мутации

В Мутации Решений, логические и арифметические операторы, используемые в программе, изменены, что изменяет общее принятие решения в программе и ее соответствующие результаты. Например, определенный оператор if выполняется только тогда, когда (a> b). В мутантном коде этот оператор изменяется на (a <b), что изменяет общее принятие решений в коде.

Оригинальный код:

if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)

Код мутанта:

if (a (
print(“yes”);
)
else
(
print (“No”);
)

3. Утверждение Мутация

В Statement Mutation изменения вносятся в полные операторы кода для создания мутантной программы. Изменениями в утверждении могут быть удаление всего оператора, изменение порядка операторов в коде, копирование и вставка операторов в каком-то другом месте кода, повторение или дублирование нескольких операторов в исходном коде.

Оригинальный код:

if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)

Код мутанта:

if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)

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

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

преимущества

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

  1. Одним из самых больших преимуществ Mutation-тестирования является то, что оно помогает найти скрытые дефекты и максимальное покрытие кода, чтобы идентифицировать часть кода, которая не была тщательно протестирована в исходных тестовых примерах.
  2. Мутационное тестирование помогает определить качество тестовых случаев, которые используются для тестирования программного обеспечения, и обеспечивает подлинную обратную связь с тестировщиками о процессе тестирования и качестве теста.
  3. Это помогает находить качественные ошибки, которые не легко найти при обычном тестировании.
  4. Мутационное тестирование иногда выявляет скрытые дефекты, такие как неоднозначность кода, неправильные значения переменных и т. Д. В коде на ранних этапах тестирования программного обеспечения, что очень полезно.
  5. Иногда и код, и тестовый пример верны, но проблема вызвана данными теста. Мутационное тестирование помогает выяснить проблемы в тестовых данных.

Недостатки

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

  1. В мутационном тестировании различные мутанты кода создаются и тестируются в соответствии с исходным набором тестов, и, следовательно, он отнимает много времени, выполняя только модульное тестирование одной функции / модуля приложения.
  2. Как упомянуто выше, все мутанты тестируются на соответствие исходному набору, поэтому должно быть выполнено большое количество тестовых случаев, и, следовательно, это не может быть выполнено без инструмента автоматизации, который является дорогостоящим и может ограничить бюджет проекта.
  3. Сложные мутанты, созданные из оригинального кода, могут привести к путанице и ошибкам в оригинальном коде.

Вывод

Вышеприведенное объяснение четко определяет, что такое тестирование на мутации и его важность в области тестирования приложения. Если мы хотим провести исчерпывающее тестирование приложения с тестовыми сценариями максимального покрытия кода, тестирование мутаций играет решающую роль.

Рекомендуемые статьи

Это руководство по мутационному тестированию. Здесь мы обсуждаем, что такое Mutation Testing? и типы мутационного тестирования наряду с преимуществами и недостатками. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше

  1. Что такое React?
  2. Отрицательное Тестирование
  3. Тестирование Мобильного приложения
  4. Расширенный стандарт шифрования
  5. Код покрытия против тестирования покрытия | Лучшие 4 отличия для изучения
  6. Инструменты покрытия кода | 6 лучших инструментов покрытия кода