Проект представляет собой комплексное ручное тестирование REST API и XML-сервиса для сервиса "Яндекс.Прилавок" версии 3.1.1. Основная цель работы — оценить корректность, надежность и безопасность ключевых бизнес-процессов, связанных с формированием наборов продуктов, расчетом стоимости доставки и управлением корзиной заказов.
Объем и глубина проведенного тестирования:
- Протестировано 3 основных функциональных модуля API:
- Управление наборами продуктов (POST
/api/v1/kits/id/products). - Расчет стоимости и возможности доставки курьерской службой "Привезём быстро" (POST
/fast-delivery/v3.1.1/calculate-delivery.xml). - Полный жизненный цикл корзины заказов: получение (GET), изменение (PUT) и удаление (DELETE) через
/api/v1/orders/id.
- Управление наборами продуктов (POST
- Разработано и выполнено более 108 детализированных тест-кейсов, покрывающих:
- Позитивные сценарии (валидные данные).
- Негативные сценарии (обработка неверных, отсутствующих, пограничных и некорректных данных).
- Проверку валидации входных параметров (типы данных, диапазоны, обязательность полей).
- Проверку бизнес-логики (лимиты на количество продуктов, доступность товаров на складе, рабочие часы доставки).
- Проверку целостности и корректности структур запросов и ответов (JSON, XML).
В результате тестирования обнаружено 76 дефектов (багов), что свидетельствует о существенных проблемах в коде.
-
Критические баги (19 шт.): Нарушают основную функциональность. Например:
- БР-4, БР-5, БР-6: Система принимает несуществующие, нулевые или строковые ID товаров и добавляет в набор "битый" продукт (200 OK вместо 400 Bad Request). Это ведет к порче данных.
- БР-11: Игнорируется проверка остатков на складе. Можно добавить 1000 несуществующих единиц товара (200 OK вместо 409 Conflict).
- БР-17, БР-21: Сервис доставки рассчитывает стоимость для нулевого, текстового или спецсимвольного количества товаров, что может искажать финансовые расчеты.
- БР-44, БР-48, БР-49, БР-50: Корзина допускает добавление товаров с нулевым, отрицательным, дробным или строковым количеством (200 OK).
-
Блокирующие баги (3 шт.): Приводят к полному отказу сервиса (500 Internal Server Error), требуя перезапуска.
- БР-10, БР-54, БР-55: Отправка дробного (1.3) или нечислового ID ("Багет", "%") в набор продуктов вызывает краш сервера.
-
Стандартные и желательные баги (54 шт.): Нарушают согласованность API, валидацию или удобство использования. Например:
- БР-1, БР-2, БР-3: Некорректная обработка пустого или неверного тела запроса (возврат 200 OK или 500 вместо 400).
- БР-31, БР-32: Ответ сервиса доставки в нерабочие часы не содержит атрибута
isItPossibleToDeliver="false", что делает его неинформативным. - БР-39: Нарушена структура JSON-ответа ручки корзины (возвращаются лишние или неожиданные поля).
Вывод о готовности продукта: При текущем состоянии выпуск продукта в прод недопустим. Наличие 19 критических и 3 блокирующих дефектов означает, что базовые функции сервиса работают некорректно или небезопасно. Это может привести к:
- Финансовым потерям (некорректный расчет доставки, прием заказов с несуществующими товарами).
- Порче данных (наборы и корзины наполняются "битыми" записями).
- Нестабильности системы (риск частых отказов из-за блокирующих багов).
- Недоверию пользователей из-за непредсказуемого поведения.