Пока мы чинили биллинг, в проде клиенты получили права СЕО
Пока мы чинили биллинг, в проде новые клиенты получали права CEO компании.
Утро началось с ручного регресса. Я создавал тестовые учетки в проде, проверял вход через госуслуги, Google, Яндекс и почту. На одном из аккаунтов заметил админские кнопки, которые должен видеть только руководитель. Первая мысль: фронт глючит. Открыл DevTools, посмотрел тело ответа API, и внутри оказался массив permissions с полным доступом уровня CEO. Не read-only админка, не менеджер телефонии, а роль владельца бизнеса на всю нашу компанию.
Я поднял Apache Superset, написал SQL-запрос и убедился в результатах корреляции: баг воспроизводился для всех новых регистраций. Не выборочно, не по таймингу, а стабильно. Причина нашлась быстро: небольшой рефакторинг логики прав, который менеджеры посчитали несерьезным патчем. Видимо, слово "небольшой" отключило у всех инстинкт самосохранения, и патч улетел в прод без тестирования выдачи ролей.
Дальше было почти комично. Я поднялся на второй этаж к проджект-менеджеру, рассказал устно. Он не поверил: "Ну вы, QA, можете надумать всякого". Я сел за ПК разработчика и показал все шаги кейса от регистрации до ответа API с чужими правами. Он сглотнул и спросил: "Надеюсь, ты нашему CEO об этом пока не доложил". Не доложил. Шефу рассказали уже после исправления бага.
Самое паршивое, что автотесты у нас были. Они проверяли создание пользователя, логин, покупку услуг. Но валидация выданных прав не входила ни в один тест-кейс. Этот инцидент добавил в наш чек-лист железное правило: рефакторинг авторизационной логики не бывает несерьезным, а права доступа нужно проверять в автотестах всегда, даже если патч называется "поправил опечатку в импорте".
Что из "несерьезных" изменений у вас улетало в прод и аукалось самым неожиданным способом?
#qa #regressiontesting #apitesting #permissions #rolebasedaccess #productionbug #devtools #autotests #softwaretesting #qualityassurance #sql #superset #backendtesting #authorization #refactoring
· 08.06
Очень удиволо как могло что-то попасть в прод без ведома QA. Не собираются от QA команды аппрувы на хотфиксы? Вообще лучше алерты ставить, на любые действия с прод веткой в CI
В целом похожая штука с ролями была на проекте ФНС, но мы просто не учли определенный функционал, а потом выяснили, что его кейс юзеры описывали в саппорт тикете ещё полгода назад и он на холде стоит с того времени - до команды аналитики и разработки его никто не донес, т.к. назначен он был на сотрудника в декрете.
ответить
коммент удалён
· 08.06
Проблемы были в процессах. Компанию строили еще до актуальности найма QA, и уж тем более не было претендентов возглавить новую избранную команду QA для внедрения гейтов и регламента принятия решений для выпуска версий ПО. Для многих это может быть жизненным
ответить
ответ удалён