Содержание

Утро: планирование тестирования

Первое, что ты делаешь утром — смотришь задачи в спринте. Вместо того чтобы самому расписывать план тестирования, дай это Claude (как настроить контекст — в первой части серии).

Вот user story из Jira:

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

Acceptance criteria:
- Ползунок с min и max ценой
- Поля для ручного ввода цены
- Фильтрация без перезагрузки страницы
- Сброс фильтра кнопкой 'Очистить'"

Составь план тестирования для этой задачи.
Включи: что проверяем, приоритет, примерное время.

Claude вернёт структурированный план: сначала smoke-тест (ползунок работает), потом функциональные проверки, потом граничные случаи, потом UI.

Если задач несколько — спроси что тестировать первым:

В спринте 4 задачи:
1. Фильтр товаров по цене
2. Изменение аватара в профиле
3. Исправление бага с двойной оплатой
4. Новая страница "О нас"

Расставь приоритет тестирования. Учитывай: риск для бизнеса,
сложность, затронутые модули.

Тест-кейсы из требований

Главная ежедневная задача. Ты получаешь описание фичи — тебе нужны тест-кейсы.

Из user story

Я тестирую форму регистрации в мобильном приложении банка.
Платформа: iOS и Android.
Поля: имя, фамилия, телефон, email, пароль, подтверждение пароля.
Есть чекбокс "Согласие с условиями" (обязательный).
После регистрации — SMS-подтверждение.

Напиши тест-кейсы в формате таблицы:
ID | Тип | Название | Шаги | Ожидаемый результат | Приоритет
Типы: позитивный, негативный, граничный.
Включи минимум 15 тест-кейсов.

Claude выдаст таблицу. Вот фрагмент того, что ты получишь:

ID Тип Название Шаги Ожидаемый результат Приоритет
TC-01 Позитивный Успешная регистрация 1. Заполнить все поля корректно 2. Отметить чекбокс 3. Нажать "Зарегистрироваться" SMS-код отправлен, переход на экран подтверждения High
TC-02 Негативный Пустое поле имени 1. Оставить поле "Имя" пустым 2. Заполнить остальные поля 3. Нажать "Зарегистрироваться" Ошибка "Введите имя" High
TC-03 Граничный Пароль ровно 8 символов 1. Ввести пароль из 8 символов (минимум) 2. Заполнить остальные Регистрация проходит Medium

Из описания экрана

Если у тебя нет user story, но есть макет или описание экрана:

Описание экрана "Корзина":
- Список товаров с фото, названием, ценой, количеством
- Кнопки +/- для изменения количества
- Кнопка "Удалить" для каждого товара
- Промокод — поле ввода + кнопка "Применить"
- Итоговая сумма с учётом скидки
- Кнопка "Оформить заказ"

Напиши UI-тест-кейсы. Фокус: отображение, взаимодействие, состояния.

Для API (Postman)

Вот документация API-эндпоинта:

POST /api/orders
Headers: Authorization: Bearer {token}
Body: { "items": [...], "address_id": 123, "payment_method": "card" }
Ответы: 201 Created, 400 Bad Request, 401 Unauthorized, 422 Unprocessable

Напиши тест-кейсы для тестирования в Postman.
Для каждого: метод, URL, тело запроса, ожидаемый код и тело ответа.

Исследовательское тестирование

Когда ты исчерпал стандартные сценарии — попроси Claude подумать за тебя. Отдельные техники исследовательского тестирования с AI мы уже разбирали.

Я тестирую загрузку файлов в облачное хранилище.
Поддерживаемые форматы: jpg, png, pdf, docx.
Лимит: 50 МБ на файл, 10 файлов одновременно.

Придумай 15 нестандартных способов сломать эту фичу.
Чем креативнее — тем лучше.

Claude предложит:

  • Файл с расширением .jpg, но внутри — exe
  • Файл ровно 50 МБ, 50.01 МБ, 0 байт
  • Имя файла из 255 символов
  • Имя файла с пробелами, кириллицей, эмодзи
  • Загрузить 10 файлов и во время загрузки — 11-й
  • Загрузить и сразу удалить, не дожидаясь завершения
  • Два одинаковых файла одновременно
  • Потерять интернет во время загрузки

Персоны — ещё один мощный приём:

Я тестирую интернет-магазин одежды.
Представь что ты:
1. Пользователь с плохим зрением (шрифт увеличен до 200%)
2. Пользователь с медленным 3G интернетом
3. Пользователь с клавиатурой без мыши
4. Пользователь, который впервые покупает онлайн

Какие проблемы каждый из них может встретить?
Какие тест-кейсы нужны для каждого?

Баг-репорты

Ты нашёл баг. Вместо того чтобы 10 минут оформлять — дай Claude сырое описание.

Оформи баг-репорт для Jira:

Зашёл в профиль, нажал "Сменить аватар", выбрал фото с телефона,
фото загрузилось но отображается вверх ногами. Если обновить
страницу — показывается старый аватар. В консоли ошибка
"EXIF orientation not supported". Chrome 125, macOS.

Claude выдаст:

Заголовок: Аватар отображается с неправильной ориентацией при загрузке фото с EXIF-данными

Severity: Major

Шаги воспроизведения:

  1. Авторизоваться в системе
  2. Перейти в Профиль → Настройки
  3. Нажать "Сменить аватар"
  4. Выбрать фото, снятое на телефон (с EXIF orientation)
  5. Подтвердить загрузку

Ожидаемый результат: Аватар отображается с правильной ориентацией

Фактический результат: Аватар перевёрнут на 180°. После обновления страницы отображается старый аватар

Окружение: Chrome 125, macOS Sonoma

Доп. информация: В консоли ошибка EXIF orientation not supported. Предположительно, сервер не обрабатывает EXIF-данные при сохранении изображения.

Скопировал — вставил в Jira. Две минуты вместо десяти.

Тестовые данные

Email-адреса

Сгенерируй 20 email-адресов для тестирования поля email:
- 5 валидных (разные домены, длины)
- 5 невалидных (типичные ошибки)
- 5 граничных (максимальная длина, спецсимволы)
- 5 для проверки безопасности (XSS, SQL-инъекции)

Формат: email | тип | что проверяем

JSON для API

Сгенерируй 5 тел запросов для POST /api/users:
{ "name": "", "email": "", "age": 0, "role": "" }

1. Валидный запрос
2. Пустые обязательные поля
3. Возраст = -1, 0, 150, 999
4. Email с SQL-инъекцией
5. Name длиной 1000 символов

Формат: JSON + что проверяем.

SQL для тестовой БД

Напиши SQL-запросы для создания тестовых данных:
- 10 пользователей (разные роли: admin, user, moderator)
- 50 товаров (разные категории, цены от 0.01 до 999999.99)
- 20 заказов (разные статусы: new, paid, shipped, delivered, cancelled)

База данных: PostgreSQL. Таблицы: users, products, orders.

CSV для импорта

Создай CSV-файл с 15 строками для тестирования импорта пользователей.
Колонки: name, email, phone, role, status.

Включи:
- 5 корректных строк
- 2 с пустыми обязательными полями
- 2 с дублирующими email
- 2 с невалидным форматом телефона
- 2 с несуществующей ролью
- 2 со спецсимволами в имени

Работа с ошибками и логами

Что значит эта ошибка?

При тестировании получил ошибку:

HTTP 502 Bad Gateway
nginx/1.24.0

Что это значит? Где проблема? Что мне написать в баг-репорте?

Claude объяснит: 502 — сервер-посредник (nginx) не смог получить ответ от backend. Проблема не на стороне клиента, а на сервере. В баг-репорт: "Backend не отвечает, nginx возвращает 502".

Стектрейс

Объясни эту ошибку простым языком, как для тестировщика:

System.NullReferenceException: Object reference not set to an instance of an object.
   at OrderService.CalculateTotal(Order order) in OrderService.cs:line 47
   at OrderController.Checkout(CheckoutRequest request) in OrderController.cs:line 123
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.Execute()

Claude скажет: "При оформлении заказа (Checkout) система пытается посчитать итог (CalculateTotal), но объект заказа пустой (null). Строка 47 в файле OrderService.cs. Скорее всего, заказ не был создан перед попыткой оплаты."

Теперь ты можешь написать баг-репорт с точным указанием: "NullReferenceException в OrderService.cs:47 при пустом заказе".

Плавающий баг

У меня баг, который воспроизводится примерно в 1 из 5 попыток:
- Добавляю товар в корзину
- Перехожу к оплате
- Иногда сумма показывается 0 руб

Какие могут быть причины? Как его стабильно воспроизвести?
Какую информацию собрать для разработчика?

Claude предложит: гонка условий (race condition), кеширование, асинхронный запрос не успевает, проблемы с сессией. Подскажет: попробовать быстрые переходы, открыть две вкладки, проверить Network-вкладку в DevTools.

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

Поделиться: