Архитектура электронной коммерции
Платформы e-commerce — одни из самых сложных веб-приложений, объединяющие управление каталогом, инвентарь в реальном времени, процессинг платежей и логистику. Каждый баг в процессе покупки напрямую переводится в потерянную выручку.
Ключевые компоненты
- Каталог товаров: Данные товаров, категории, атрибуты, изображения, цены и варианты (размер, цвет)
- Поисковый движок: Поиск с ранжированием, фильтрами, фасетной навигацией и автодополнением
- Корзина: Временное хранение выбранных товаров с расчётом цены и скидок
- Оформление заказа: Многошаговый процесс: адрес, способ доставки, оплата, подтверждение
- Процессинг платежей: Интеграция с платёжными шлюзами (Stripe, PayPal, Adyen)
- Управление заказами: Жизненный цикл от размещения до фулфилмента, отправки и возвратов
- Управление инвентарём: Уровни запасов, распределение по складам, обработка предзаказов
Критические тестовые сценарии
Операции с корзиной
| Сценарий | Ожидаемое поведение |
|---|---|
| Добавить товар | Корзина обновляет счётчик, показывает товар, считает подитог |
| Обновить количество | Цена пересчитывается, проверяется наличие на складе |
| Удалить товар | Товар удалён, итоги пересчитаны, пустая корзина обработана |
| Слияние при входе | Гостевая корзина объединяется с сохранённой, конфликты разрешены |
| Истечение корзины | Товары возвращаются в инвентарь по тайм-ауту |
| Изменение цены | Клиент уведомлён, если цена изменилась после добавления |
Процесс оформления
Тестировать полный поток для:
- Оформление гостем vs. зарегистрированным пользователем
- Валидация адресов и подсказки
- Несколько способов доставки с корректными ценами
- Применение промокодов (одиночные, правила комбинирования)
- Оплата с 3D Secure аутентификацией
Управление инвентарём
Предотвращение overselling требует тестирования конкурентных сценариев:
Сценарий: Последний товар на складе
- Пользователь A добавляет товар в корзину
- Пользователь B добавляет тот же товар
- Пользователь A завершает оформление
- Пользователь B пытается оформить → должен получить "нет в наличии"
Тестирование поиска и обнаружения товаров
Поиск напрямую влияет на конверсию:
- Релевантность: Поиск «красное платье» возвращает красные платья, а не красные туфли
- Толерантность к опечаткам: «iphon» должен находить продукты iPhone
- Фильтры: Категория, диапазон цен, бренд, размер — все комбинации работают
- Сортировка: Цена по возрастанию, рейтинг, новинки — все дают корректный порядок
Продвинутое тестирование E-Commerce
Flash-распродажи и тестирование высокой нагрузки
Flash-распродажи создают экстремальную конкуренцию:
- Тысячи пользователей одновременно пытаются купить ограниченный товар
- Платёжный шлюз должен выдержать пик без тайм-аутов
- Инвентарь должен точно отслеживаться под экстремальной нагрузкой
Кросс-граничная торговля
Международный e-commerce добавляет сложности:
- Мультивалютное ценообразование и конвертация
- Расчёт таможенных пошлин и импортных налогов
- Ограничения товаров по странам
- Международные варианты доставки и отслеживание
- Локальные платёжные методы (iDEAL в Нидерландах, PIX в Бразилии, СБП в России)
Подписочная коммерция
Регулярные покупки имеют уникальные потребности тестирования:
- Создание, изменение и отмена подписок
- Обработка регулярных платежей и обработка сбоев
- Управление графиком доставок
Практическое задание
Разработайте end-to-end тест-план для процесса оформления заказа:
- Гостевое оформление: Завершить покупку без аккаунта, проверить подтверждение
- Валидация адреса: Тестировать невалидные адреса, абонентские ящики, международные адреса
- Способы доставки: Проверить цены для стандартной, экспресс и доставки в тот же день
- Промокоды: Применить валидный код, просроченный, минимальная сумма не достигнута
- Оплата: Тестировать успешную оплату, отклонённую карту, 3D Secure
- Подтверждение: Проверить email с корректными товарами, ценами и адресом
Руководство по решению
Тесты промокодов:
- Валидный код 20% на заказ $100: проверить итог $80
- Просроченный код: понятное сообщение об ошибке, исходная цена сохранена
- Код с минимумом $50 на заказ $30: ошибка с объяснением
- Два кода: проверить правила комбинирования
Тесты оплаты:
- Успешная оплата Visa: заказ подтверждён, инвентарь уменьшен
- Отклонённая карта: понятная ошибка, заказ не создан, инвентарь не изменён
- 3D Secure: пройти верификацию, проверить создание заказа
Советы из практики
- Тестируйте корзину между сессиями и устройствами — слияние при входе является частым источником багов
- Проверяйте, что инвентарь резервируется при оформлении, а не при добавлении в корзину
- Тестируйте с товарами по $0.01 и максимальной цене — граничные значения выявляют баги расчётов
- Всегда тестируйте расчёт налогов для нескольких юрисдикций
- Тестируйте отправку email при каждом изменении статуса заказа
Ключевые выводы
- Тестирование e-commerce напрямую влияет на выручку — баги в корзине и оформлении означают потерянные продажи
- Тестирование конкурентного доступа предотвращает overselling и ценовые ошибки при высоком трафике
- Полный цикл покупки от поиска до возвратов нуждается в end-to-end покрытии
- Тестирование налогов и доставки по нескольким юрисдикциям требует тщательного комбинаторного подхода