Ответ
Автоматизация не всегда оправдана. Вот основные категории тест-кейсов, которые обычно не стоит автоматизировать:
- Одноразовые или редкие проверки – если тест выполняется один раз или очень редко, затраты на разработку и поддержку скрипта превышают выгоду.
- Тесты с нестабильными требованиями или UI – частые изменения в функционале или интерфейсе делают поддержку автотестов дорогой и неэффективной.
- Субъективные проверки (UX/Usability) – оценка удобства, дизайна или восприятия пользователем. Автоматизация не может заменить человеческое суждение.
# НЕ для автоматизации: "Интуитивно ли расположены элементы меню?" # Это субъективная оценка, требующая ручного тестирования. - Сложные физические или аппаратные взаимодействия – тестирование работы с принтерами, сканерами, специфическими жестами (мультитач) или датчиками.
- Критически важные сценарии перед релизом (Smoke/Sanity) – в момент выпуска версии надежнее выполнить ключевые проверки вручную, чтобы избежать рисков из-за возможных сбоев в автоматизации.
- Тесты с низким приоритетом или минимальным impact – если вероятность дефекта мала, а его влияние на бизнес незначительно, автоматизация не окупается.
Критерий решения: всегда оценивайте ROI (Return on Investment) – соотношение затрат на создание/поддержку автотеста и пользы от его повторного выполнения.
Ответ 18+ 🔞
Да ты послушай, что за дичь творится в этом нашем тестировании! Все вокруг кричат "автоматизируй всё, блядь!", а потом сидят и плачут, когда скрипты ломаются чаще, чем фичи. Так вот, слушай сюда, не всё, что шевелится, надо запихивать в автотесты, ёпта!
Вот тебе святая правда, проверенная на моих костылях:
-
Одноразовое или раз в пятилетку – ну серьёзно, чувак. Ты будешь неделю писать скрипт, чтобы он запустился один раз и накрылся медным тазом? ROI, блядь, ноль ебать! Затраты на разработку просто съедят всю гипотетическую пользу. Лучше ручками разок ткнуть и забыть.
-
Меняется чаще, чем перчатки у хирурга – если требования или интерфейс пляшут джигу-дрыгу с каждым спринтом, то твой автотест превращается в вечную головную боль. Ты будешь только его и править, а не новые штуки тестить. Поддержка сожрёт все твои ресурсы, вот тебе чих-пых в сраку.
-
Про "удобненько-красивенько" – автоматизация тут бессильна, как хуй с горы. Она не скажет тебе, интуитивный ли интерфейс или дизайн говно.
# Вот эту хуйню автоматом не проверишь: # "А не режет ли глаз, блядь, эта анимация? А кнопка не мелковата?" # Это ж чисто человеческое, субъективное восприятие. -
Железяки и физический мир – хочешь протестить, как софт жмёт кнопку на реальном принтере или ловит жест тремя пальцами? Удачи, ёперный театр! Настраивать эту адскую машинерию часто дольше и дороже, чем проверить вручную разок-другой.
-
Перед самым выкатом, когда все трясутся – вот тут, блядь, нужно трезво мыслить. Твой дымовой тест (Smoke) перед релизом — это святое. Положиться на скрипт, который мог сломаться от обновления драйвера? Рисковать всем из-за глюка в автоматизации? Да ты шутишь! Критичный путь — только руками, медленно и вдумчиво. Чтобы не было потом: "ой, автотест проглотил баг, а мы всё зарелизили, пиздец".
-
Какая-то незначительная хрень – если баг в этой фиче максимум вызовет лёгкое "хм" у одного пользователя из ста, а вероятность его появления — как у меня стать космонавтом, то зачем тратить время на автотест? Impact — ноль, приоритет — ниже плинтуса.
Главный принцип, блядь: считай окупаемость (ROI). Спроси себя: сколько сил и денег я вложу в написание и, что важнее, в поддержку этого скрипта, и сколько он сэкономит мне времени и нервов в будущем? Если первое перевешивает — брось эту затею, иди лучше кофе выпей. Автоматизация — это инструмент, а не священная корова, которую нужно доить до последнего.