Всем привет! Меня зовут Вадим Лунин. Я — QA Manager из Альфа Банка в Беларуси. Этой статьёй хочу начать цикл статей по инструментам, которые мы используем для тестирования наших продуктов в Альфа Банке.
Три месяца назад мы запустили Альфа Среду – серию митапов для IT-специалистов. Один из митапов был посвящен теме тестирования - "Тестирование в Альфа Банке: на пути к TestOps". На митапе мы рассказали про наши подходы и инструменты в тестировании. Больше новостей о цифровой трансформации Альфа Банка и анонсы следующих митапов можно найти в Telegram Альфа-Среда. В этой статье я подробнее опишу наш инструментарий, как мы его используем и как выбирали.
На картинке выше вы можете видеть те инструменты, которые используют тестировщики в Альфа Банке. Это достаточно разнообразные инструменты, которые применяются для решения разных задач. Поэтому я решил сделать 4 отдельных статьи по инструментам:
Part 0. Инструментарий QA в Альфа Банке - текущая статья, в которой я расскажу про тестировщиков, покажу какие инструменты и плагины используем.
Part 1. Инструменты автоматизации тестирования - в этой статье больше углубимся в наши инструменты автоматизации, где расскажу почему сделали такой выбор и покажу схему взаимодействия.
Part 2. Инструменты управления тестированием - в этой статье поговорим про систему управления тестированием. Расскажу, почему выбрали и приведу примеры работы.
Part 3. Инструменты тестирования производительности - в финальной статье расскажу как у нас выглядит схема тестирования производительности и какие инструменты мы для этого используем.
Прежде чем перейти к инструментам хотелось бы поговорить про тестировщиков, которые работают в Альфа Банке. У нас работают все Full-stack QA — это квалифицированные специалисты, которые объединяют в себе знания, умения и навыки quality assurance инженера (QA) и автоматизатора тестирования.
Это люди, которые будут думать о различных аспектах качества продукта, таких как функциональность, удобство использования, производительность, безопасность, глобализация и так далее. Они будут знакомы со стратегиями и технологиями автоматизации тестирования. Full-stack QA обладает богатым набором знаний предметной области, технических навыков и опыта тестирования, и все это с точки зрения пользователя. В современном мире, где используются гибкие технологии, тестирование нельзя проводить во время выпуска, оно делается в каждом спринте, Таким образом, работа по обеспечению качества с полным стеком начинается со сбора требований, понимания функциональности приложения, тесного сотрудничества с командой разработчиков, консультируя их по созданию приложения в соответствии с точкой зрения пользователя, а после тестирования приложения с точки зрения пользователя с использованием опыта и инструментов тестирования. Это приводит к более протестированному продукту с меньшим количеством ошибок и более быстрой доставке продукта.
Мы не делим наших тестировщиков на ручных и автоматизаторов, потому что мы считаем, что каждый тестировщик должен уметь и то, и другое. Но у нас есть разные направления тестирования: QA Web и QA Mobile. Потому, что разные платформы требуют разных навыков и инструментов для тестирования.
Тестировщики, которые работают на веб-проектах, пишут свои UI и API тесты на TypeScript. TypeScript - это расширение JavaScript, которое добавляет строгую типизацию и другие возможности для улучшения качества кода. На некоторых веб-проектах тестировщики могут писать интеграционные тесты на Java. Java - это один из самых популярных и универсальных языков программирования, который поддерживает множество библиотек и фреймворков для автоматизации тестирования.
Тестировщики, работающие на мобильных проектах, также используют Java для написания тестов, так как он подходит для тестирования разных платформ.
И вот теперь мы подобрались к инструментам, которые мы используем. Далее будет перечень инструментов и плагинов, которые используют наши тестировщики для проведения всех видов тестирования от функционального до тестирования производительности.
Языки программирования
Cтрого типизированный объектно-ориентированный язык программирования общего назначения, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Разработка ведётся сообществом, организованным через Java Community Process; язык и основные реализующие его технологии распространяются по лицензии GPL. |
|
Мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией спецификации ECMAScript |
|
Язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript |
|
Компилируемый многопоточный язык программирования, разработанный внутри компании Google, на котором написан K6. Необходим для понимания нюансов работы инструмента и создания плагинов к нему. |
Среда разработки
Редактор исходного кода, разработанный Microsoft для Windows, Linux и macOS. Позиционируется как «лёгкий» редактор кода для кроссплатформенной разработки веб- и облачных приложений |
|
Интегрированная среда разработки программного обеспечения для многих языков программирования, в частности Java, JavaScript, Python, разработанная компанией JetBrains |
|
Интегрированная среда разработки для работы с платформой Android, анонсированная 16 мая 2013 года на конференции Google I/O |
|
Интегрированная среда разработки программного обеспечения для платформ macOS, iOS, watchOS и tvOS, разработанная корпорацией Apple. Первая версия выпущена в 2003 году. |
|
Коробочное решение, позволяющее управлять как ручным, так и автоматизированным тестированием: создавать тест-кейсы и чек-листы, запускать ручные и автоматические прогоны, заводить дефекты и собирать статистику по проделанной работе. |
|
Удобно для просмотра тестовых файлов разных форматов (xml, json, html и тд) |
Работа с API
Наименование инструмента |
Используется для решения задачи |
API-платформа взаимодействия с REST API сервисов |
|
Приложение с открытым исходным кодом для тестирования веб-сервисов сервис-ориентированных архитектур и передачи состояний представлений |
|
Кроссплатформенная служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL. |
|
Собирательный инструмент для работы с запросами на бэк и параллельным предоставлением схем запросов и ответов |
|
Инструмент отладки прокси-сервера, используемый для регистрации, проверки и изменения трафика HTTP и HTTPS между компьютером и веб-сервером. |
|
Кроссплатформенное приложение прокси-сервера для отладки HTTP, написанное на Java. Он позволяет пользователю просматривать HTTP, HTTPS, HTTP/2 и включенный трафик портов TCP, доступ к которому осуществляется с локального компьютера, на него или через него. |
|
Проксирование REST запросов c Android/iOS эмуляторов |
|
Кросс-платформенный HTTPS-прокси с открытым исходным кодом |
|
Кроссплатформенное приложение с визуальным интерфейсом, бесплатно для использования, с платной поддержкой. Есть версии для Windows, Mac, Linux. С помощью него можно легко настроить мок-сервер для отладки и тестирования rest запросов |
|
Библиотека на java для создания HTTP заглушек над веб-сервисами |
Тестирование производительности
Наименование инструмента |
Используется для решения задачи |
OpenSearch / OpenSearch Dashboard |
Программное обеспечение, состоящее из поисковой системы и OpenSearch Dashboards, панели визуализации данных для этой поисковой системы |
Масштабируемая утилита полнотекстового поиска и аналитики, которая позволяет быстро в режиме реального времени хранить, искать и анализировать большие объемы данных. |
|
Инструмент тестирования производительности с открытым исходным кодом, сценарии пишутся на JavaScript, "под капотом" - Golang. Совмещает API и клиентское тестирование производительности. |
|
Инструмент тестирования производительности с открытым исходным кодом, сценарии пишутся в визуальном редакторе и хранятся в формате XML, "под капотом" - Java. |
|
Фреймворк для тестирования клиентской производительности веб-сервисов, их настольных и мобильных версий. |
|
Docker / Podman |
Взаимодействие с docker-совместимыми образами |
Бесплатное программное приложение, используемое для мониторинга и оповещения о событиях. Он записывает метрики в базу данных временных рядов, созданную с использованием модели запроса HTTP, с гибкими запросами и оповещениями в реальном времени. |
|
Свободная система мониторинга статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования. |
|
Свободная программная система визуализации данных, ориентированная на данные систем ИТ-мониторинга |
|
Позволяет создавать кастомные сборки K6 с различными плагинами |
Работа с БД
Наименование инструмента |
Используется для решения задачи |
Для подключения к базе РКО |
|
Просмотр базы данных на проде |
|
Платформа с открытым исходным кодом для администрирования и разработки для PostgreSQL и связанных с ней систем управления базами данных |
Фреймворки и библиотеки
Наименование инструмента |
Используется для решения задачи |
Основные фреймворки и библиотеки | |
Библиотека Node.js для автоматизации Chromium, Firefox и WebKit с помощью одного API. |
|
Фреймворк для модульного тестирования программного обеспечения на языке Java |
|
Библиотека, разработанная для упрощения тестирования и валидации REST API, с учетом практик, применяемых в динамических языках |
|
Фреймворк, который помогает автоматизировать приложения как для Android, так и для iOS |
|
Универсальный фреймворк с открытым исходным кодом для Java-платформы. |
|
Фреймворк, который позволяет создавать тестовые двойные объекты в автоматизированных модульных тестах с целью разработки через тестирование или разработки через поведение. |
|
Библиотека, которая позволяет использовать удобные и читабельные выражения для проверки результатов тестов |
|
Фреймворк для автоматизации сборки, построенная на принципах Apache Ant и Apache Maven, но предоставляющая DSL на языках Groovy и Kotlin вместо традиционной XML-образной формы представления конфигурации проекта |
|
Фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM, являющемся подмножеством XML |
|
Вспомогательные фреймворки и библиотеки | |
Работа с xml и json для Java |
|
Библиотека для сокращения кода в классах и расширения функциональности языка Java |
|
Библиотека парсинга CSV-подобных массивов строк |
|
NPM-библиотеки | |
Библиотека для переключения версии node |
|
Установка переменных окружения для разных платформ (используется в cmd командах) |
|
Вы можете использовать его для проверки сообщений о фиксации , запуска тестов , проверки кода и т. д. при фиксации или отправке. |
|
Считывание переменных окружения (в том числе из .env файла) |
|
Инструмент для выявления шаблонов, обнаруженных в коде ECMAScript/JavaScript, и составления отчетов о них. |
|
Авто-форматирование кода |
|
Работа с Allure | |
Отображение в репорте запросов |
|
Отображение в репорте результатов проверок в более красивом виде |
|
Оболочка командной строки API Allure TestOps, позволяющая загружать результаты тестирования в режиме реального времени из задания сборки и управлять объектами на стороне Allure TestOps (тестовые случаи, запуски, проекты). |
Плагины для Visual Studio Code
Это расширение интегрирует Playwright в ваш рабочий процесс VS Code |
|
Базовая проверка орфографии, которая хорошо работает с кодом и документами. |
|
Расширение Docker позволяет легко создавать, управлять и развертывать контейнерные приложения из Visual Studio Code. Он также обеспечивает отладку Node.js, Python и . NET внутри контейнера. |
|
Интегрирует ESLint в VS Code. Если вы новичок в ESLint, проверьте документацию. |
|
Это расширение VS Code обеспечивает поддержку создания и редактирования XML-документов на основе языкового сервера LemMinX XML. |
|
Расширение Better Comments поможет вам создавать более удобные для человека комментарии в вашем коде. Комментарии разных цветов |
|
Расширение для Visual Studio Code, которое добавляет встроенные аннотации параметров при вызове функции. |
|
Расширение VS Code, которое дает вам простую команду для быстрого переключения глобальной настройки «Раскрашивание пары скобок, добавленной в VS Code v1.60. Более понятные фигурные скобки |
|
Просмотрите Git Graph вашего репозитория и легко выполняйте действия Git из графика. Настраивается так, чтобы выглядеть так, как вы хотите! |
|
Это расширение раскрашивает отступ перед вашим текстом, чередуя четыре разных цвета на каждом шаге. Некоторые могут найти это полезным при написании кода для Python, Nim, Yaml и, вероятно, даже типов файлов, которые не зависят от отступов. |
|
Расширение Postman VS Code позволяет разрабатывать и тестировать ваши API в Postman непосредственно из Visual Studio Code. |
|
Todo+ |
Todo+ (для списка дел/правок и т.д) |
Интеграция с Allure TestOps |
Плагины для IntelliJ IDEA
Интеграция с Allure TestOps |
|
Этот плагин обеспечивает сканирование файлов Java как в режиме реального времени, так и по требованию с помощью Checkstyle из IDEA. |
|
Обеспечивает интеграцию с Gradle для автоматизации создания, тестирования, публикации и развертывания пакетов программного обеспечения. |
|
Плагин, который добавляет первоклассную поддержку Project Lombok |
|
Этот плагин генерирует тесты JUnit из меню «Создать...», щелкнув правой кнопкой мыши, сосредоточившись на классе java. Выходной код модульного теста можно настроить с помощью предоставленного шаблона скорости для форматирования кода на основе исходного класса. Если модульный тест создается там, где он уже существует, пользователю предлагается перезаписать или объединить. Операция слияния позволяет пользователю выборочно создавать содержимое целевого файла. |
|
Расширяет интеграцию Git дополнительными функциями |
Прочие инструменты
Заключение
Сегодня я поделился инструментами и плагинами, которые мы используем в рамках тестирования в Альфа Банке. Вы узнали, что мы работаем с разными платформами и технологиями, и что является Full-stack QA, которые объединяют в себе знания и навыки quality assurance инженера и автоматизатора тестирования. Не пропустите мои статьи о наших инструментах автоматизации тестирования, управления тестированием и тестирования производительности. Я надеюсь, что это будет очень интересно и полезно для вас. А чтобы не пропустить ничего важного и быть в курсе всех новостей и событий Альфа Банке в Беларуси, подписывайтесь на наш telegram-канал Альфа-Среда. Для меня важен ваш фидбек, делитесь им в комментариях.
Комментарии (10)
Nikitkin
11.10.2023 09:08Чем дибивер для вас предпочтительнее датагрпа
VadimLunin Автор
11.10.2023 09:08Основной плюсы у DBeaver это то что у него есть бесплатная версия и он достаточно прост в использовании
SaintMihail
11.10.2023 09:08А вы не пробовали покупать сотрудникам интележ идею ультимейт, которая заменяет кучу клиентов для подключениям к СУБД?
Pryanik71
11.10.2023 09:08А расскажите про инструменты тестирования логики вашего мобильного приложения.
Есть уведомления, которые постоянно висят непрочитанными. Чтобы сбросить счетчик на иконке-нужно кликнуть на уведомление. Уведомление автоматом начинает оформление кредита. Я понимаю, что ничего личного, только бизнес. Но это как-то за гранью.
Griwski
Хорошо, что вы перечислили софт. Хотелось бы узнать на примере задач и решений, как вы это используете. Иначе зачем это здесь?
VadimLunin Автор
В следующих статьях буду рассказывать подробнее