Башня Байткода
69 subscribers
26 photos
2 files
27 links
Авторские заметки об архитектуре ПО на основе реальной практики.

github: https://github.com/PHPTCloud
Download Telegram
#testing
Mutation Score Indicator (MSI)

Mutation Score Indicator (MSI) — это мощный метод оценки качества тестов, где в код вносятся искусственные ошибки (мутации), чтобы проверить, насколько хорошо тесты их обнаруживают.

Пример мутаций:
- Замена операторов (+ на -)
- Изменение условий (if x > 0 → if x >= 0)
- Удаление строк кода

После внесения изменений запускаются тесты. Результаты делятся на:

✔️ Убитые мутации — тесты упали (хороший результат)
❌ Выжившие мутации — тесты прошли (проблема в покрытии)

MSI рассчитывается по формуле:
MSI = (Убитые мутации / Всего мутаций) × 100%

Например, при 85 убитых мутациях из 100:
MSI = (85 / 100) × 100% = 85%

Интерпретация результатов:
🥇 90-100% — отличное покрытие
🥈 70-89% — приемлемый уровень
🚫 <70% — требуется доработка тестов

Преимущества подхода:
- Показывает реальную эффективность тестов
- Выявляет слабые места в тест-кейсах

Недостатки:
- Требует значительных ресурсов
- Возможны ложные срабатывания
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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3