Что и зачем автоматизировать
Автоматизация — инвестиция: разбираемся, что окупается, а что лучше оставить рукам.
Автоматизация тестов — это написание кода, который сам проверяет другой код. Она окупается, когда проверка повторяется часто, требования стабильны, а результат однозначен.
Автоматизация — это инвестиция
Написать автотест дороже, чем один раз проверить вручную. Но потом он запускается бесплатно тысячи раз. Поэтому автоматизация выгодна там, где проверка повторяется. Разовую проверку нового, ещё не устаканившегося экрана автоматизировать рано — требования изменятся, и тест придётся переписывать.
| Автоматизировать стоит | Лучше вручную |
| Регрессию (повторяется каждый релиз) | Исследовательское тестирование |
| Стабильную бизнес-логику | Юзабилити и «ощущение» интерфейса |
| Расчёты, валидации, API | Одноразовые проверки |
| Критичные пользовательские пути | Часто меняющиеся прототипы |
Однозначность результата
Автоматизировать легко то, у чего есть чёткий правильный ответ: «2+2 должно быть 4», «невалидный e-mail должен отклоняться». А вот «дизайн должен нравиться» машина проверить не может — нужен человек.
def is_valid_email(s):
"""Очень упрощённая проверка e-mail: один @ и точка после него."""
if s.count("@") != 1:
return False
name, _, domain = s.partition("@")
return bool(name) and "." in domain
# Однозначные правила -> идеальные кандидаты на автоматизацию
assert is_valid_email("[email protected]") is True
assert is_valid_email("no-at-sign.com") is False
assert is_valid_email("two@@example.com") is False
assert is_valid_email("name@nodot") is False
print("Автотесты валидации e-mail пройдены — это окупается на каждом релизе")
Вывод:
Автотесты валидации e-mail пройдены — это окупается на каждом релизе
Пирамида подсказывает приоритет
Из урока о пирамиде следует и приоритет автоматизации: в первую очередь автоматизируют unit-уровень (дёшево, быстро, стабильно), затем ключевые интеграционные и лишь несколько критичных e2e-сценариев. Не наоборот.
Итог
- Автоматизация окупается при частом повторении и стабильных требованиях.
- Однозначный результат — обязательное условие автоматизации.
- Приоритет автоматизации повторяет форму пирамиды: сначала unit.