Метрики
Тесты — это такой же код, качество которого требует пристального контроля. Но чтобы управлять чем-то, необходимо уметь это измерять.
Рассмотрим основные показатели:
🛡️ Защита от регресса
Одна из главных функций тестов — защита от регресса. Она позволяет избежать нежелательного изменения поведения приложения при модификации деталей реализации, снижая вероятность случайных ошибок.
🔧 Устойчивость к рефакторингу
Тесты не должны препятствовать рефакторингу или значительно увеличивать его затраты по времени. Рефакторинг кода должен быть незаметным для тестов.
📈 Поддерживаемость
Тесты должны быть простыми в написании и обновлении. Если они требуют значительных ресурсов для поддержки, это обесценивает всю работу по оптимизации разработки — в данном контексте их проще не писать вовсе.
⚡ Быстродействие
Если тесты выполняются слишком медленно, их будут запускать реже. А редкий запуск увеличивает вероятность появления дефектов, что усложняет их обнаружение. В худшем случае долгие тесты игнорируются вовсе, что сводит их пользу к нулю. Это также негативно влияет на скорость и динамику рефакторинга.
storyshots делает особый акцент на быстродействие, в том числе из-за специального UI-режима, интерактивность в котором
требует высокой скорости выполнения тестов.
Определив данные измерения, можно сформировать ряд требований, направленных на их максимизацию.