#testing
Mutation Score Indicator (MSI)
Mutation Score Indicator (MSI) — это мощный метод оценки качества тестов, где в код вносятся искусственные ошибки (мутации), чтобы проверить, насколько хорошо тесты их обнаруживают.
Пример мутаций:
- Замена операторов (
- Изменение условий (
- Удаление строк кода
После внесения изменений запускаются тесты. Результаты делятся на:
✔️ Убитые мутации — тесты упали (хороший результат)
❌ Выжившие мутации — тесты прошли (проблема в покрытии)
MSI рассчитывается по формуле:
Например, при 85 убитых мутациях из 100:
Интерпретация результатов:
🥇 90-100% — отличное покрытие
🥈 70-89% — приемлемый уровень
🚫 <70% — требуется доработка тестов
Преимущества подхода:
- Показывает реальную эффективность тестов
- Выявляет слабые места в тест-кейсах
Недостатки:
- Требует значительных ресурсов
- Возможны ложные срабатывания
Mutation Score Indicator (MSI)
Mutation Score Indicator (MSI) — это мощный метод оценки качества тестов, где в код вносятся искусственные ошибки (мутации), чтобы проверить, насколько хорошо тесты их обнаруживают.
Пример мутаций:
- Замена операторов (
+ на -)- Изменение условий (
if x > 0 → if x >= 0)- Удаление строк кода
После внесения изменений запускаются тесты. Результаты делятся на:
MSI рассчитывается по формуле:
MSI = (Убитые мутации / Всего мутаций) × 100%Например, при 85 убитых мутациях из 100:
MSI = (85 / 100) × 100% = 85%Интерпретация результатов:
Преимущества подхода:
- Показывает реальную эффективность тестов
- Выявляет слабые места в тест-кейсах
Недостатки:
- Требует значительных ресурсов
- Возможны ложные срабатывания
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
#testing
Infection — мутационное тестирование для PHP
Infection — это крутой инструмент, который:
- Создаёт "мутации" (искусственные баги) в коде
- Проверяет, падают ли тесты на этих изменениях
- Даёт MSI-метрику — % "убитых" мутаций
Как это помогает?
- Находит "спящие" баги, которые тесты пропускают
- Показывает реальную эффективность тестов (не путать с code coverage)
- Особенно полезно для критически важного кода
Пример результата:
Mutation Score: 85%
✔️ 34 mutations killed
❌ 6 mutations survived
https://github.com/infection/infection
Infection — мутационное тестирование для PHP
Infection — это крутой инструмент, который:
- Создаёт "мутации" (искусственные баги) в коде
- Проверяет, падают ли тесты на этих изменениях
- Даёт MSI-метрику — % "убитых" мутаций
Как это помогает?
- Находит "спящие" баги, которые тесты пропускают
- Показывает реальную эффективность тестов (не путать с code coverage)
- Особенно полезно для критически важного кода
Пример результата:
Mutation Score: 85%
https://github.com/infection/infection
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3