Архитектура электронной коммерции

Платформы e-commerce — одни из самых сложных веб-приложений, объединяющие управление каталогом, инвентарь в реальном времени, процессинг платежей и логистику. Каждый баг в процессе покупки напрямую переводится в потерянную выручку.

Ключевые компоненты

  • Каталог товаров: Данные товаров, категории, атрибуты, изображения, цены и варианты (размер, цвет)
  • Поисковый движок: Поиск с ранжированием, фильтрами, фасетной навигацией и автодополнением
  • Корзина: Временное хранение выбранных товаров с расчётом цены и скидок
  • Оформление заказа: Многошаговый процесс: адрес, способ доставки, оплата, подтверждение
  • Процессинг платежей: Интеграция с платёжными шлюзами (Stripe, PayPal, Adyen)
  • Управление заказами: Жизненный цикл от размещения до фулфилмента, отправки и возвратов
  • Управление инвентарём: Уровни запасов, распределение по складам, обработка предзаказов

Критические тестовые сценарии

Операции с корзиной

СценарийОжидаемое поведение
Добавить товарКорзина обновляет счётчик, показывает товар, считает подитог
Обновить количествоЦена пересчитывается, проверяется наличие на складе
Удалить товарТовар удалён, итоги пересчитаны, пустая корзина обработана
Слияние при входеГостевая корзина объединяется с сохранённой, конфликты разрешены
Истечение корзиныТовары возвращаются в инвентарь по тайм-ауту
Изменение ценыКлиент уведомлён, если цена изменилась после добавления

Процесс оформления

graph LR A[Просмотр] --> B[Поиск] B --> C[Страница товара] C --> D[В корзину] D --> E[Обзор корзины] E --> F[Оформление] F --> G[Оплата] G --> H[Подтверждение] H --> I[Фулфилмент] I --> J[Доставка] J --> K[Возвраты]

Тестировать полный поток для:

  • Оформление гостем vs. зарегистрированным пользователем
  • Валидация адресов и подсказки
  • Несколько способов доставки с корректными ценами
  • Применение промокодов (одиночные, правила комбинирования)
  • Оплата с 3D Secure аутентификацией

Управление инвентарём

Предотвращение overselling требует тестирования конкурентных сценариев:

Сценарий: Последний товар на складе
- Пользователь A добавляет товар в корзину
- Пользователь B добавляет тот же товар
- Пользователь A завершает оформление
- Пользователь B пытается оформить → должен получить "нет в наличии"

Тестирование поиска и обнаружения товаров

Поиск напрямую влияет на конверсию:

  • Релевантность: Поиск «красное платье» возвращает красные платья, а не красные туфли
  • Толерантность к опечаткам: «iphon» должен находить продукты iPhone
  • Фильтры: Категория, диапазон цен, бренд, размер — все комбинации работают
  • Сортировка: Цена по возрастанию, рейтинг, новинки — все дают корректный порядок

Продвинутое тестирование E-Commerce

Flash-распродажи и тестирование высокой нагрузки

Flash-распродажи создают экстремальную конкуренцию:

  • Тысячи пользователей одновременно пытаются купить ограниченный товар
  • Платёжный шлюз должен выдержать пик без тайм-аутов
  • Инвентарь должен точно отслеживаться под экстремальной нагрузкой

Кросс-граничная торговля

Международный e-commerce добавляет сложности:

  • Мультивалютное ценообразование и конвертация
  • Расчёт таможенных пошлин и импортных налогов
  • Ограничения товаров по странам
  • Международные варианты доставки и отслеживание
  • Локальные платёжные методы (iDEAL в Нидерландах, PIX в Бразилии, СБП в России)

Подписочная коммерция

Регулярные покупки имеют уникальные потребности тестирования:

  • Создание, изменение и отмена подписок
  • Обработка регулярных платежей и обработка сбоев
  • Управление графиком доставок

Практическое задание

Разработайте end-to-end тест-план для процесса оформления заказа:

  1. Гостевое оформление: Завершить покупку без аккаунта, проверить подтверждение
  2. Валидация адреса: Тестировать невалидные адреса, абонентские ящики, международные адреса
  3. Способы доставки: Проверить цены для стандартной, экспресс и доставки в тот же день
  4. Промокоды: Применить валидный код, просроченный, минимальная сумма не достигнута
  5. Оплата: Тестировать успешную оплату, отклонённую карту, 3D Secure
  6. Подтверждение: Проверить email с корректными товарами, ценами и адресом
Руководство по решению

Тесты промокодов:

  • Валидный код 20% на заказ $100: проверить итог $80
  • Просроченный код: понятное сообщение об ошибке, исходная цена сохранена
  • Код с минимумом $50 на заказ $30: ошибка с объяснением
  • Два кода: проверить правила комбинирования

Тесты оплаты:

  • Успешная оплата Visa: заказ подтверждён, инвентарь уменьшен
  • Отклонённая карта: понятная ошибка, заказ не создан, инвентарь не изменён
  • 3D Secure: пройти верификацию, проверить создание заказа

Советы из практики

  1. Тестируйте корзину между сессиями и устройствами — слияние при входе является частым источником багов
  2. Проверяйте, что инвентарь резервируется при оформлении, а не при добавлении в корзину
  3. Тестируйте с товарами по $0.01 и максимальной цене — граничные значения выявляют баги расчётов
  4. Всегда тестируйте расчёт налогов для нескольких юрисдикций
  5. Тестируйте отправку email при каждом изменении статуса заказа

Ключевые выводы

  1. Тестирование e-commerce напрямую влияет на выручку — баги в корзине и оформлении означают потерянные продажи
  2. Тестирование конкурентного доступа предотвращает overselling и ценовые ошибки при высоком трафике
  3. Полный цикл покупки от поиска до возвратов нуждается в end-to-end покрытии
  4. Тестирование налогов и доставки по нескольким юрисдикциям требует тщательного комбинаторного подхода