Урок 2 из 8 · 20 мин · обновлено

Как делают приложения и где в этом тестирование

Кто есть в команде разработки, через какие этапы проходит задача и почему тестировщику стоит подключаться ещё до того, как написан код.

Кто есть в команде

Приложение почти никогда не делает один человек. В типичной команде:

Роль Чем занимается Что получает от неё тестировщик
Менеджер продукта Решает, что и зачем делать, расставляет приоритеты Понимание, что важнее для пользователей и бизнеса
Аналитик Описывает, как именно должна работать функция Требования — главный источник «как должно быть»
Дизайнер Рисует экраны и продумывает, как ими пользоваться Макеты, с которыми сверяют вёрстку
Разработчики Пишут код: фронтенд (то, что видно), бэкенд (сервер), мобильные приложения Готовые задачи на проверку
Тестировщик Проверяет, что всё работает как задумано —

В маленьких командах роли совмещают: менеджер может писать требования, а разработчик — проверять свой код. Но взгляд со стороны, который даёт тестировщик, ничем не заменить: автору сложно заметить ошибку в собственной работе.

Путь задачи

Любая новая функция — например, «оплата по QR-коду» — проходит примерно один путь:

  1. Идея. Менеджер продукта решает, что функция нужна.
  2. Требования. Аналитик описывает, как она работает: что видит пользователь, какие проверки, что делать при ошибке.
  3. Дизайн. Дизайнер рисует экраны.
  4. Разработка. Разработчики пишут код.
  5. Тестирование. Тестировщик проверяет, что всё сделано по требованиям и ничего не сломалось.
  6. Выпуск (релиз). Новая версия попадает к пользователям.
  7. Поддержка. Команда следит за ошибками, которые нашли уже пользователи, и исправляет их.

Каскад и гибкая разработка

Раньше многие проекты делали каскадом (waterfall): сначала месяцами пишут все требования, потом всё разрабатывают, потом всё тестируют. Минус — об ошибках в замысле узнают слишком поздно.

Сейчас чаще работают гибко (Agile), и самый популярный вариант — Scrum. Работу делят на короткие спринты по 1–4 недели, чаще всего по две. В начале спринта команда выбирает задачи, каждый день коротко сверяется на встрече (её называют стендапом), а в конце показывает готовый результат.

Для тестировщика это значит: проверять приходится постоянно, небольшими порциями, прямо внутри спринта, а не одним большим этапом в конце.

Тестирование начинается с требований

Ошибки рождаются не только в коде. Возьмём строчку из требований: «Пароль должен быть надёжным». Звучит понятно, но разработчик и тестировщик могут понять её по-разному. Сколько символов? Нужны ли цифры? Можно ли пробелы? Что увидит человек, если пароль ненадёжный?

Если не задать эти вопросы заранее, разработчик сделает «как понял», тестировщик проверит «как понял», и баг всплывёт уже у пользователей. Поэтому тестировщики читают требования до разработки и ищут:

  • неясности — «надёжный», «быстро», «удобно» без конкретики;
  • противоречия — в одном месте «до 10 товаров», в другом «до 20»;
  • пропуски — что будет при ошибке, пустом поле, потере связи.

Где проверяют: окружения

Одно и то же приложение обычно живёт в нескольких местах — окружениях:

  • окружение разработчика — на его компьютере, для черновой проверки;
  • тестовое окружение (его ещё называют тестовым стендом) — копия приложения с ненастоящими данными: здесь работает тестировщик;
  • рабочее окружение, или продакшен, — то, чем пользуются настоящие клиенты.

Эксперименты, которые могут что-то сломать, проводят только на тестовом окружении. Оплатить «тестовый» заказ настоящей картой на продакшене — плохая идея.

Статусы задачи

Задачи живут в трекере (о трекерах — в уроке 7) и переходят из статуса в статус. Названия везде свои, но смысл похож:

  1. Нужно сделать
  2. В работе
  3. Готово к тестированию
  4. Тестируется
  5. Готово

Тестировщик берёт задачи из «Готово к тестированию» и либо отправляет их дальше, либо возвращает разработчику с найденными ошибками, описанными в баг-репортах.

Попробуйте сами. Вот требование к регистрации в приложении доставки:

При регистрации пользователь вводит имя, телефон и пароль. Пароль должен быть надёжным. После регистрации пользователь получает скидку на первый заказ.

Найдите хотя бы пять вопросов, которые стоит задать аналитику до начала разработки.

Пример ответа
  1. Какой пароль считается надёжным: длина, цифры, буквы, спецсимволы?
  2. В каком формате вводится телефон? Принимаются ли номера других стран?
  3. Все ли поля обязательные? Что будет, если не заполнить имя?
  4. Что, если такой телефон уже зарегистрирован?
  5. Какая скидка, на какую сумму и сколько дней она действует?
  6. Как пользователь узнает о скидке?
  7. Нужно ли подтверждать телефон кодом из СМС?

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Кто обычно описывает, как должна работать новая функция?

  2. Что такое спринт?

  3. Зачем тестировщику читать требования до разработки?

  4. Где нельзя ставить эксперименты, которые могут что-то сломать?