Всем привет! Последний год я работаю в финтех-стартапе, делаем платформу для автоматизации инвестиций. В ее основе заложен умный алгоритм, который подбирает портфель на основе целей и рискового профиля пользователя. Очень футуристично, но реализуется через пень-колоду.
Недавно у нас был релиз нового модуля: авторебалансировка портфеля. Смысл такой: если рынок трясёт, система должна корректно перераспределить активы без лишних дерганий. Разрабы сказали, что все ок, тестируем.
Открываю аккаунт, загружаю тестовый портфель с акциями, облигациями, ETF. Чтобы симулировать рыночную турбулентность, запускаю наш внутренний тул для стресс-тестирования (на базе Jupyter, с кастомными сценариями: изменение индексов, всплески волатильности, падение ликвидности). Выбираю сценарий "обвал S&P500 на 5%" — и наблюдаю, как отрабатывается, ноооо...
Тут начинается шоу и вместо корректной ребалансировки система начинает просто продавать всё подряд, как по алфавиту, без стратегии.
Вижу в логах, что при массовых продажах алгоритм игнорирует приоритеты активов. Срабатывает какая-то очередь, и активы уходят один за другим, без учёта их веса и роли в портфеле. Юнит-тесты, конечно, зелёные, но это потому, что они проверяют куски, а не общее поведение всей системы.
Ну я пишу баг-репорт: с пошаговой инструкцией, скриншотами интерфейса, графиками из симуляции, логами.
Мне сразу предъявили за сценарий, типа кто так вообще ставит условия, это нереально. А я не знаю, мне кажется, что в условиях рынка все реально, вспомните, что было в 2008 и в 2020.
Три дня дебаггинга и разборов с командой, нашли проблему, оказалась дыра в логике. Когда её залатали, я снова прогнала симуляции: теперь поведение системы соответствует заявленной стратегии, всё чётко.
А знаете, что самое крутое? Эта история нормально так повлияла на мою зп и на работу. Этот кейс отметили, а мне предложили возглавить группу (из 2 чел) по автоматизации тестирования алгоритмических модулей.
Теперь, когда кто-то жалуется на баги, я просто улыбаюсь думаю, что мне это неплохо сыграло на руку один раз. Потому что пока есть код — будут и баги. А пока есть баги — у тестировщиков будет работа. И рост зп.
А вы как, рады багам?
Бот для историй тут 👈🏻
Post #551
9.66K
- ❤ 82
- 👍 44
- 🔥 27