TGViewer
TESTOREST TESTOREST @testorest · 2.46K subscribers
Post #567 334
⚛️Мутационное тестирование

Основная идея мутационного тестирования:
Пробуем изменить код и смотрим, проходят ли после этого тесты.
Обычно применяется к unit тестам.

Если тесты прошли, то:
1) данный код не покрыт тестами
или
2) в тестах не учтена данная область


Мутационное тестирование состоит в выборе мутирующих операторов и применения их одного за другим к каждому фрагменту исходного кода программы.
Результат одного применения мутационного оператора к программе называется мутантом.

Если набор тестов способен обнаружить изменение (то есть один из тестов не проходит), то мутант называется убитым.

Например, есть код на C++:

if (a &
& b) {
c = 1;
} else {
c = 0;
}

Оператор мутации условий заменит & &(и) на || (или), и создаст следующий мутант:

if (a || b) {
c = 1;
} else {
c = 0;
}


Для того, чтобы тест мог убить этого мутанта, необходимо чтобы были выполнены следующие условия:

1️⃣Тест должен достигнуть (Reach) мутированного оператора.

2️⃣Входные данные теста должны привести к разным состояниям программы-мутанта и исходной программы. Например, тест с a = 1 и b = 0 приведет к этому.

3️⃣Значение переменной c должно повлиять на вывод программы и быть проверено тестом.

Данные условия вместе называются RIP моделью.

Слабое мутационное тестирование (или слабое мутационное покрытие) требует выполнение только первых двух условий.

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

🙂😜 вот такие они, мутанты в тестировании💡

#виды_тестирования
@testorest
  • 👍 4
  • ❤ 2
More from @testorest
  1. Sep 30, 2026⚛️Новая статья в блоге🚀 Изучение Java для автотестов. #3 Теория: Циклы (for и for-each).…
  2. Sep 23, 2026⚛️Изучение Java для автотестов. #2 Теория: Оператор if-else. Сегодня публикую следующий ша…
  3. Sep 16, 2026⚛️Изучение Java для автотестов. #1 Теория: Переменные и типы данных. Продолжаем изучение j…
  4. Sep 9, 2026⚛️Изучение Java для автотестов. #0 Подготовка окружения. Сегодня многие в сфере тестирован…
  5. Sep 9, 2026С Днем тестировщика! 🐞 С нахождения первого бага прошло 66 лет, компьютеры с тех пор знач…
  6. Sep 8, 2026У тестировщиков редко бывает одинаковая работа. 😺 Один меняет IT на стройку и заново соби…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →