Для каких приложений нужно писать автотесты?

Ответ

Писать автотесты целесообразно практически для любого приложения, где есть повторяющиеся сценарии проверок и важна стабильность. Однако приоритеты и подход различаются:

Высокий приоритет автоматизации:

  • Критичные для бизнеса функции (платёжные операции, расчёты, выпуск документов). Падение здесь ведёт к прямым финансовым потерям или репутационным рискам.
  • Часто изменяемый код (регрессия). Автотесты, интегрированные в пайплайн, мгновенно показывают, не сломало ли новое изменение старую логику.
  • API и микросервисы. Автоматизация интеграционного тестирования здесь часто проще и надёжнее, чем UI-тесты.
  • Сложные и длинные пользовательские сценарии (E2E). Например, полный путь оформления заказа от каталога до чека.

Практический пример приоритизации: В веб-проекте мы начали автоматизацию не с UI, а с API-слоя, используя Postman и Newman для CI:

  1. Написали коллекции тестов на основные endpoints (создание пользователя, получение данных, размещение заказа).
  2. Запускали их при каждом билде. Это быстро отлавливало проблемы в бизнес-логике бэкенда.
  3. UI-автотесты на Selenium писались уже для ключевых сценариев, которые прошли через стабильный API.

Автотесты — это инвестиция. Их стоит писать там, где они дадут максимальную отдачу в виде экономии времени на регресс и повышения уверенности в релизе.

Ответ 18+ 🔞

Смотри, давай без этих ваших умных книжек, на пальцах. Писать автотесты — это как брать в аренду робота-уборщика. В хрущёвке на сорок квадратов он нихуя не нужен, а вот в трёхэтажном особняке — спасение, иначе сдохнешь со шваброй в руках.

Где этот робот прям пиздец как нужен (высокий приоритет):

  • То, от чего бабки и репутация зависят. Платёжки, расчёты, документы. Упало тут — всё, пиши пропало. Это как фундамент дома, ёпта. Тут не «автоматизируем когда-нибудь», а «автоматизируем вчера, блядь». Доверия ебать ноль к ручным проверкам в таких местах.
  • Код, который меняют каждые пять минут. Пришёл новый чувак, поправил кнопочку, а сломал логику отправки письма. Регресс, Карл! Автотест в CI/CD впендюрит ему красный крестик сразу, и все поймут, что он распиздяй. Экономия нервов — овердохуища.
  • API и всякие микросервисы. Это вообще благодать для автоматизации. Интерфейс стабильный, проверить быстро. Не то что эти ебушки-воробушки с Selenium, где сегодня селектор работает, а завтра фронтендер всё перелопатил и тест накрылся медным тазом.
  • Длинные, нудные, как поход к тёще, сценарии. Типа «выбрать товар, добавить в корзину, оформить, оплатить, получить смс». Ручками это делать — терпения ноль ебать. Пусть машина страдает.

Как мы на проекте делали, чтоб не обосраться:

Не стали сразу хуй с горы делать и лепить сотню UI-тестов. Это долго и хрупко. Поступили хитрее:

  1. Взялись за API. Все эти ваши POST, GET запросы. Насрали коллекций в Postman, чтобы проверить, что бэкенд вообще жив и адекватен.
  2. Запускали это добро в CI (у нас Jenkins был) через Newman. Каждый новый билд — и уже подозрение ебать чувствую, если что-то пошло не так. Ломается бизнес-логика — узнаём через минуту, а не через неделю тестирования.
  3. И только потом, на стабильный фундамент, навесили ключевые UI-проверки на Selenium. Чтоб убедиться, что и фронт не подводит. Но не всё подряд, а самое главное.

Короче, суть в чём. Автотесты — это не религиозный догмат «надо везде». Это инструмент, чувак. Вкладываешь время сейчас, чтобы потом не орать «на бэке всё сломалось, а мы три дня ручками кликали и не заметили». Пиши их там, где боль от падения максимальна, а ручная проверка отнимает ядрёна вошь времени. Всё остальное — да похуй, можно и ручками, если дешевле.