Все мы прекрасно знаем,что такое техники тест‑дизайна, тест‑кейсы и так далее. Уже есть несколько лет собственного опыта, применяем ИИшки и все «стильно, модно, молодежно». Но в один «прекрасный» момент все это перестает работать. Мы находим одни и те же баги по 3, 5 и более раз. Баги начинают вылазить из тех частей системы, которые вроде как не трогали уже более 6 месяцев. Работоспособность системы стремительно начинает падать, а ваш «синдром самозванца» расцветает ярким цветом. Знакомо? Если да, то на своем опыте расскажу что бывает и что можно с этим сделать.
Откуда начинается все
В зависимости от того как организованы процессы на проекте:
Задача
Стори
Фича
Везде по разному, но суть одна. Все это части системы. Должно быть описание «Что надо реализовать». С этим ни у кого вопросов не возникает.
Вроде бы все ок
После получения задачи/стори/фичи, мы судорожно начинаем накидывать тест‑кейсы, смотреть макеты. В общем все то, что нам говорилось в теории тестирования/курсах и так далее. Ждем, когда же нам дадут то, что мы будем тестировать. И вот здесь начинается все то приключение, которое я описал в начале статьи.
Билет в котел
Если вы смиренно дождались когда вам разработчик, девопс или кто‑то еще выкатит изменения на стенд — поздравляю. Вас уже садят в котел и будут варить как лягушку. И дело не в злых намерениях коллег. А дело в том, что вы сами приняли это. Вот опыт из прекрасного мира под названием геймдев:
Как‑то получил задачу проверить заточку снаряжения. Дождался пока выкатят патч клиента. Скачал патч. Зашел первым тестовым юзером и заточил снаряжение до +15(максимальный уровень заточки). Перезашел на второй аккаунт и сделал тоже самое.
Зашел в «два окна» и устроил проверку урона с броней и без. Проверил разницу с не заточенным снаряжением/оружием. Сравнил данные с патч ноутом(да, он к счастью там был) и все соответствует. На все про все ушло 4 часа. Отчет тест‑лиду и продюсеру проекта. Аппрув и готовимся в релиз.
А на релизе прилетает море тикетов: «После заточки до +15, пропало снаряжение». И тут в голове только одна фраза, которую говорил коммисар Жебер в фильме «Такси». Я захожу на тестовый стенд и да, у меня тоже пропало все заточенное на +15.
Следующий вопрос, который без мата выглядит так: «А каким оружием пинали друг друга тестовые персонажи». На +10 оружие есть, на +5 тоже. Ответа нет.
Итог очевиден: Получил эпичнейших люлей.
Если у кого‑то есть сразу мысли где тут просчет, то велком в комментарии.
Меня сварили
Вроде бы и все сделал правильно, с точки зрения процесса тестирования:
Написал тест‑кейсы
Скорректировал с патч ноутом
Скачал обновление
Прогнал тест‑кейсы по несколько раз
Составил отчет
Сходил к тест‑лиду и объяснил ситуацию. На что получил ответ: «В следующий раз проверяй внимательно». Обидно, досадно, но ладно.
Так кто‑же облажался.
Так как я был ведущим тестировщиком на проекте, то у меня были доступы к логам сервера и к самому серверу(для чтения конфигов игровых событий). В одной из папок, я обнаружил, что дата изменения 2 х файлов на пару часов отличается от остальных. После того как я запросил у продюсера патч ноут, я был немного удивлен. Их оказалось 2. Правда 1 из них технический(нет). Выяснил что технический патч ноут имел следующие изменения:
Добавлена функция восстановления, при случайном удалении предмета. Используется флаг «isDeleted».
То есть, если кто‑то случайно удалил предмет, то он не исчезал из бд, а просто ставился флаг «isDeleted = true». Но при заточке снаряжения до +15 он проставлялся. Да, баг. Но как его можно было прощелкать?
Желание доказать что невиновен
Сопоставлением времени начала тестирования и выкатывание патчей, получился такой забавный результат:
начало тестирования в 14:00
Этап заточки снаряжения закончился в 15:00
Выкатка технического патча 16:45
А так как патч был серверный, то обновление клиента не требуется и можно «на горячую» накатить патч.
Восстановление собственного достоинства
Собрав всю фактуру, я пришел к лиду и объяснил что на самом деле было. Но уже никому до этого нет дела. Как говорится «Виновники найдены, а ямы остались».
Итог
Если вы не контролируете то, что выкатывается, то вы точно и не знаете что вы тестируете. И виноваты, в случае факапа, будете вы. Горькая, но правда.
Vanya_QA
Классическая история: источник правды - описание изменений, а не то, что реально лежит на стенде. Я перед каждой проверкой первым делом смотрю, какой коммит развёрнут на стенде и что туда попало с прошлого раза, помимо своей задачи. И перед релизом отдельно сверяю, что все задачи действительно слиты: пару раз ловил, что фронт задачи в ветке дева, а бэк забыли. По итогу на стенде раздел как бы есть, но при переходе в него 404ая