Записки тестировщика, или как выжить в финтехе

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Всем привет! Меня зовут Данилов Егор, я ведущий тестировщик в компании ЮMoney. Как известно, в основе работы тестировщика лежит рутина. Я хочу рассказать, как мы с ней боремся. Но сначала погрузимся в контекст.

Тестирование в ЮMoney

У нас есть 25 продуктовых команд, в них трудятся порядка 50 тестировщиков. А ещё есть более 150 микросервисов, число которых постоянно растёт. Каждый день появляется в среднем 50 новых задач и проходит более 50 релизов. Наш рекорд — 100 релизов за день. И мы на этом не останавливаемся — наша пропускная способность намного выше.

Чтобы поддерживать высокое качество наших продуктов при такой непрерывной разработке, мы постоянно расширяем экспертизу и стараемся автоматизировать всё, что можно автоматизировать. Все тестировщики в ЮMoney пишут автотесты, поэтому у нас более пяти тысяч E2E-тестов на всевозможные сценарии.

Две стадии тестирования 

В жизненном цикле задачи есть две стадии тестирования: после разработки и на этапе релиза. Разберёмся подробнее.

1. Тестирование на этапе фичесборки

Этим занимаются тестировщики в любой компании. Основная цель тестирования на этом этапе — получить предварительную сборку, проверить новую функциональность и провести регрессионное тестирование, то есть убедиться, что уже существующая, работающая функциональность не пострадала от новых изменений.

2. Тестирование на этапе релиза

На этом этапе производится приёмочное тестирование. Мы проверяем, чтобы в процессе мержа фичесборки в мастер не было никаких артефактов. Этап приёмочного тестирования у нас полностью автоматизирован, о нём мы рассказывали в этой статье.

Регрессионное тестирование

Рассмотрим, как выглядит регрессионное тестирование фичесборки и какие действия предпринимает тестировщик.

Для запуска регрессионных тестов тестировщику необходимо:

  • найти схему для прогона;

  • задеплоить свою фичесборку;

  • проверить, что в процессе деплоя не было никаких проблем;

  • запустить прогон необходимых тестов;

  • разобрать результаты прогона;

  • откатить фичесборку и вернуть схему в эталонное состояние.

Все автоматические процессы (деплой сборок, запуск тестов и т.д.) у нас интегрированы в CI/CD. Тестировщику надо лишь зайти в нужные джобы Jenkins и запустить их с необходимым набором параметров. Или же воспользоваться нашими самописными сервисами. О них мы и поговорим.

Внутренние сервисы, которые помогают нашим тестировщикам

Нужно сказать пару слов про тестовые схемы — это набор виртуальных машин с запущенными на них приложениями. Как я уже говорил, у нас более 150 микросервисов. У каждой команды есть несколько тестовых схем с необходимым количеством приложений.

Чтобы тестировщику не приходилось вручную искать нужные хосты, подключаться по SSH и устанавливать нужные версии приложений через apt-get install, мы реализовали самописный сервис под кодовым названием Pinger.

Сервис имеет простой UI. Можно найти нужную схему по префиксу команды, посмотреть текущее состояние компонент на схеме и выполнить ряд действий над компонентом. Нажатие на компонент позволяет:

  • установить нужную версию;

  • запустить прогон автотестов на компонент;

  • сделать рестарт или пересоздание компоненты;

  • подключиться по SSH.

С помощью Pinger мы упростили жизнь тестировщикам и сократили время, которое тратится на рутинные действия. Теперь не нужно искать схемы и приложения, подключаться к ним по SSH, чтобы установить нужную версию, и следить по логам за ходом установки. За всё это отвечает один сервис.

Ещё одна задача тестировщика заключается в том, чтобы разобрать и обработать результаты прогона автотестов. С этим ему помогает сервис Reporter.

В сервисе можно: 

  • Посмотреть детальную статистику по тестам, их Success Rate, количество успешных и неудачных запусков.

  • Заблокировать тесты.

  • Посмотреть детальный отчёт о прогоне (узнать, сколько тестов запускалось и сколько из них прошло успешно, найти все необходимые ссылки на джобы деплоя и запуска тестов, на Allure отчёт и в TMS для просмотра тест-кейса).

  • Перезапустить прогон автотестов — весь целиком или только упавшие тесты.

Предвосхищаю вопрос: зачем изобретать велосипед, когда есть, например, Allure TestOps?  Да, но мы сделали наш сервис в те времена, когда мейнстримом был Allure Report. Да и реализовывать нужные фичи нам удобнее и быстрее в своих сервисах, не дожидаясь комьюнити. 

Подведём итог

Перечисленные сервисы закрывают почти все потребности тестирования в запуске, аналитике и разборе автотестов. Тестировщику остаётся только вручную проверить новую функциональность — или ту, которая не автоматизирована. При этом у тестировщиков по-прежнему есть доступ ко всем джобам и виртуальным машинам для более детального анализа проблем.

В этой статье я рассказал лишь о малой части сервисов, которые используются у нас в компании. В следующей публикации поговорим о регрессионном тестировании и о том, как мы с ним справляемся.

Источник: https://habr.com/ru/company/yoomoney/blog/693004/


Интересные статьи

Интересные статьи

В своем дебютном посте напишу про то, как я искал работу продактом джуном в разгар 24 февраля. Скорее всего, вы уже тысячу раз перечитывали ТГ каналы или статьи про рынок труда в ИТ секторе РФ, читали...
Я сидел в незнакомой комнате. Передо мной было двое. Имена - единственное, что я знал о них. В комнате был ещё один человек. Он сидел по левую руку от меня. Когда он говорил, мне приходилось разворачи...
ВведениеВ данной статье я бы хотел рассмотреть проблему обновления PHP в виртуальной машине BitrixVM, и действия, которые возможно применить если выполнение переезда на машину с обновленным ПО невозмо...
Всем привет. Когда я искал информацию о журналировании (аудите событий) в Bitrix, на Хабре не было ни чего, в остальном рунете кое что было, но кто же там найдёт? Для пополнения базы знаний...
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...