TGViewer
QAжется, работает! QAжется, работает! @seems_to_be_working · 613 subscribers
Post #274 426
Как автотестируем систему батчинга заказов ч.2
Времени на нормальную отладку тестов у нас не было, мы сразу стали использовать эти тесты для проверки группировок и соответствия системы требованиям. Потому что нам надо было очень быстро тестить гипотезы и мы не могли долго разрабатывать и тестировать. Перед релизом новой версии группировщика запускали тесты, брали упавшие и начинали разбирать. Из инструментов для разбора - только логи системы, мы даже визуально не могли представить где находятся эти заказы. Вот есть координаты пиццерии 30, 31. И у нас есть метод который принимает отклонения в метрах от этих координат, дальше метод сам вычисляет координаты по методу линейного приближения сферических координат. Заказ создается таким образом
var order1 = new TestOrderBuilder(1)
.PlacedAt(currentDate.AddMinutes(-7))
.WithMeterOffsets(-2500, -3000)
.Please();


Если создано 2-3 заказа, то в целом это можно как-то представить в уме, но у нас были кейсы с 12-15 заказами (в след посте расскажу как вайбкодинг помог решить эту проблему).

Также всплыла проблем с тем, что до написания теста мы не знали ожидаемый результат каждого теста. Тут нам на помощь пришли требования - мы зафиксировали цели оптимизации, по приоритету:
1. Развезти все заказы
2. Отдать наименьшее количество сертификатов
3. Дать наилучший сервис (минимальное время от получения заказа до выдачи клиенту С2E)
4. Обеспечить справедливость распределения заказов на курьеров.

Если с 1 и 2 требованием все просто, то с расчетом C2E были проблемы. Представьте у вас 7 заказов и 3 курьера, вы можете возить заказы по 1, по 2 и по 3. Сколько комбинаций получится? Клод посчитал 30 240 комбинаций. Чтобы понять соответствует полученная группа требованию или нет сидели и считали С2E для разных вариаций групп, которые на наш человеческий взгляд выглядели логично. Пришлось даже написать вспомогательную утилиту, которая принимала лог с заказами и считала С2E разных групп.

По итогу задача оказалась сложнее чем ожидали - не были уверены какой результат должен быть в тесте, не видели заказы и как они сгруппированы, не могли быстро посчитать c2e. Но все равно даже с такими проблемами, мы поймали несколько проблем и исправляли логику группировок чтобы она стала соответствовать требованиям.
Telegram QAжется, работает! Тестирование сложных систем Я уже рассказывал, что плотно сижу на проекте «Умный трекинг» — это ключевой проект b2b-направления Додо Пиццы. Мы все помним, что он не умный и не трекинг (мы начинаем задумываться о ребрендинге), но это уже мало кого смущает…
  • 👍 2
More from @seems_to_be_working
  1. Aug 25, 2026Динамические тесты - база Если вы думали что история с тестированием группировщика закончи…
  2. Jul 30, 2026Как я перестал читать логи упавших тестов и начал их видеть Продолжаем истории про тестиро…
  3. Apr 30, 2026Как автотестируем систему батчинга заказов ч.1 Это продолжение предыдущего поста. У нас в…
  4. Apr 3, 2026Тестирование сложных систем Я уже рассказывал, что плотно сижу на проекте «Умный трекинг»…
  5. Mar 3, 2026Хотели бы вы найти багулю в самолёте? Я если честно не очень. Вот @DanilBabich нашел, пора…
  6. Feb 19, 2026Погружайтесь в бизнес Почти всю прошлую неделю я провел в пиццериях своего города. К нам н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →