Основа качественного тестирования — правильная организация процесса и подходящие инструменты. Собрали в статье приложения и сервисы, которые нужны тестировщику в работе, а еще взяли комментарии у экспертов и узнали, какими инструментами и программами на самом деле пользуются тестировщики.
Инструменты для организации работы
Благодаря инструментам для управления тестированием можно систематизировать процесс, отслеживать результаты и снизить риск ошибок.
Jira
Jira — одно из наиболее популярных приложений. Это баг-трекер, который помогает управлять задачами и отслеживать ошибки. Для каждого бага можно создать карточку, назначить ответственных и сроки исправления. Еще в Jira удобно разбивать крупные задачи на мелкие этапы. Можно согласовывать конкретные задания с целями, чтобы каждый член команды понимал, какой вклад в общую работу он вносит.
Другие преимущества Jira:
- Единая рабочая среда. Jira предоставляет пространство для совместной работы команды.
- Гибкая настройка. В Jira много инструментов, также сервис можно интегрировать с другими приложениями для тестирования.
- Наглядность. Для удобства планирования работы есть доски, бэклоги, списки.
- Подробная аналитика. Сервис в режиме реального времени предоставляет информацию о ходе тестирования.
![Доска в Jira](https://blog.skillfactory.ru/wp-content/uploads/2024/07/image1-3.png)
TestRail
TestRail — веб-инструмент для организации и управления тестированием на разных уровнях. С его помощью удобно вести учет тест-кейсов, отслеживать их приоритет и этапы, контролировать результаты работы. TestRail позволяет налаживать управление тестами и общение между членами команды. Также инструмент может формировать отчеты и тем самым экономит время тестировщиков.
Другие преимущества TestRail:
- Понятный интерфейс. Даже новички смогут быстро освоить инструмент и приступить к работе.
- Гибкая настройка. Можно адаптировать сервис под свои нужды.
- Много функций. Есть инструменты для создания, управления, выполнения, отслеживания тестов.
- Возможность интеграции с другими приложениями. Например, с Jira, Bugzilla, Zendesk, TestLink.
Test IT
Инструмент для управления процессом тестирования. Представляет собой единое пространство для ручных и автоматизированных тестов. Сервис помогает упростить работу с тест-кейсами, сохраняет результаты проверки в базе данных, где их можно изучить и проанализировать. Также инструмент позволяет выстроить прозрачную работу в отделе QA-инженеров и получать подробные отчеты о работе.
Другие преимущества Test IT:
- Общие шаги. При внесении изменений все связанные этапы обновляются автоматически.
- Возможность создавать чек-листы. Это поможет сэкономить время на создание тестов.
- Распределение задач. Система сама поделит тесты среди членов команды.
- Интеграция с таск-трекерами. Есть возможность связывать артефакты проверки, дефекты и требования.
![инструмент Test It](https://blog.skillfactory.ru/wp-content/uploads/2024/07/image2-2.png)
Zephyr Jira
Zephyr — плагин для Jira. Он расширяет возможности инструмента и помогает управлять процессом тестирования. В Zephyr у каждого сотрудника есть собственный рабочий стол с набором инструментов для тестирования. Все они связаны с помощью централизованного сервера Zephyr, что упрощает взаимодействие между QA-инженерами.
Другие преимущества Zephyr:
- Контроль в режиме реального времени. Приборные панели работают онлайн, поэтому каждый участник команды может отслеживать процесс тестирования.
- Мониторинг показателей. Есть удобные отчеты, чтобы наглядно представлять результаты работы.
- Интеграция с другими сервисами. Например, можно интегрировать Zephyr с Confluence, Capture, HipChat и Crowd.
Для ручного тестирования наша команда использует довольно большой объем инструментов. Основное время, как и многие другие команды, мы проводим в Jira и Confluence, потому что тут «живет» вся аналитика по продукту и представлена наглядная доска с задачами команды, по некоторым моментам аналитики мы добавляем ссылки на mind-карты по продукту, которые нарисованы в X-mind. Mind-карты помогают не забыть, на какие составляющие разбит продукт, а некоторые фичи помогают сориентироваться новичкам команды, так как карты довольно наглядные.
Непосредственно для самого тестирования мы часто используем Postman и Swagger, очень удобно с помощью данных продуктов проверять работы бэк-систем: пока визуальная часть фичи еще разрабатывается, можно провести достаточно объемный тест на корректные ответы сервисов, на правильность обработки ошибок.
Для визуального тестирования приложения мы пишем тест-кейсы, которые ведем в программе Test IT. Это довольно хорошая альтернатива ушедшим сервисам, типа TestRail. Удобно планировать тест-планы, писать тест-кейсы, создавать задания для регрессного прогона сборок и т.д. Есть довольно забавная встроенная система ачивок, которая не дает заскучать, пока проходишь смоук-тесты и регрессы. Получаешь виртуальные награды за созданные кейсы и пройденные прогоны кейсов.
Инструменты для тестирования API
API — описание взаимодействия сервера и приложения. Тестирование API необходимо, чтобы увидеть, как одна система отвечает на запросы другой. Инструменты посылают запросы к API, анализируют их и проверяют, насколько результат соответствует ожиданиям. Благодаря этому можно убедиться, что API без проблем взаимодействует с другими приложениями.
Postman
Postman нужен для создания, тестирования и документирования API. Позволяет создавать и отправлять HTTP-запросы, а также наборы последовательных запросов и папки, чтобы сократить время тестирования, менять параметры и окружения для запросов. Еще инструмент может переводить API в код для JavaScript и Python.
Другие преимущества Postman:
- Минималистичный интерфейс. Поэтому в сервисе быстро разберется даже начинающий тестировщик.
- Автоматизация тестирования. Можно создавать коллекции запросов и выполнять их автоматически, чтобы проводить регрессионное тестирование и отслеживать изменения в API.
- Совместная работа. В Postman можно делиться коллекциями, рабочими пространствами и результатами тестирования с коллегами.
![Интерфейс Postman](https://blog.skillfactory.ru/wp-content/uploads/2024/07/image3-4.png)
SoapUI
SoapUI — инструмент для диагностики и отладки протоколов SOAP и REST API. Позволяет работать с запросами и оценивать производительность систем. Подходит для разных видов проверки, в том числе функционального, нагрузочного, регрессионного тестирования и тестирования совместимости.
Другие преимущества SoapUI:
- Поддержка Drag-Drop. Функция ускоряет процесс создания сценариев тестирования.
- Встроенная аналитика. Можно формировать детальные отчеты.
Первый инструмент, про который я хотела рассказать, относится к мобильному тестированию. Называется платформа LambdaTest.
Мы ее использовали при тестировании мобильной версии сайта, когда у нас не было физических устройств от Apple. Платформа позволяет запускать и эмуляторы, и подавленные реальные устройства, как айфоны, так и планшеты, и макбуки. Это помогло нам протестировать продукт на iOS и на Safari-браузерах посмотреть верстку.
LambdaTest — это платформа для тестирования веб-приложений в облаке, которая позволяет разработчикам проверять свои сайты и приложения на разных браузерах, операционных системах и устройствах.
Второй очень полезный инструмент — это Charles Proxy, или так называемый Sniffer Traffic.
Очень сложно новичкам в тестировании понять, для чего он нужен. Приведу реальный пример.
На проекте у нас была произведена доработка фронта — в окне элементы действуют по определенным правилам, но оказывается, не приходил какой-то необходимый параметр с бэка. Мы столкнулись с проблемой: нужно будет завести баг, дождаться, пока фронтенд-разработчик его поправит, при этом нет возможности тестировать дальше и просто проверить весь функционал.
Решение:
С помощью Charles Proxy мы подменили запрос на ходу, и получилось, что бэк как будто присылал необходимый параметр. Таким образом, не пришлось дожидаться ничего, протестировали фронт и дали им свои замечания, они параллельно исправили, и сэкономили мы примерно неделю на всем этом.
Поэтому Charles Proxy — это, конечно, очень полезный инструмент.
Charles Proxy — это мощный инструмент для отладки и анализа сетевого трафика. Он позволяет вам перехватывать, просматривать, изменять и записывать HTTP/HTTPS-запросы и ответы, которые проходят между вашим компьютером и веб-серверами.
Третий полезный инструмент, который встречается на проектах с микросервисами, это OpenSearch.
Система OpenSearch имеет web-интерфейс с расширенным функционалом, где мы можем посмотреть все логи, которые различные сервисы присылают в эту систему, и они собираются в едином месте. Работа в данной системе специфична.
В системе свой язык запросов для создания поиска, нужно время, чтобы привыкнуть; далее можно просто копированием различных ошибок тоже осуществлять поиск.
Таким образом разбираются инциденты, когда непонятно, что случилось, на каком сервисе происходит ошибка. С помощью данной системы мы находим это сообщение, понимаем, от какого оно сервиса пришло. И можем даже разработчику скинуть stack trace — это путь, как отрабатывала программа.
OpenSearch — это бесплатный и открытый поисковый движок и аналитическая платформа, совместимая с Elasticsearch. Он предназначен для поиска, анализа и визуализации данных, построен на открытом коде и имеет большое и активное сообщество.
На наших проектах часто требуется создавать большие таблицы с тестовыми данными. Существуют разные инструменты для этого, но я хотела бы рассказать про сайт generate-data, который позволяет создавать данные с различными полями.
Этот инструмент может задавать очень много разных параметров, например имя, телефон, страну и т.д. Он позволяет сформировать большое количество строк с рандомными данными и выгружать затем их в необходимом формате (JSON, CSV, SQL, XML и т.д.).
Сервис помогает сформировать рандомные реальные тестовые данные, что очень удобно для тестирования.
generate-data — это инструмент, который позволяет создавать синтетические данные для различных целей.
Синтетические данные — это искусственно созданные данные, которые имитируют реальные, но не содержат настоящей информации о конкретных людях или событиях.
Еще один очень хороший инструмент называется DBeaver.
Это универсальный клиент, который позволяет работать с базами данных. На крупных проектах очень много баз данных и много стендов, есть баз данных Clickhouse, есть стандартные PostgreSQL.
В данной программе собираем все подключения, все распределяем по папочкам и смотрим через один инструмент — очень удобно!
DBeaver — это бесплатный и свободно распространяемый универсальный инструмент для работы с базами данных, который предоставляет комплексный набор функций для работы с широким спектром баз данных. Он обладает удобным интерфейсом и мощными возможностями, что делает его популярным выбором как для начинающих, так и для опытных специалистов по базам данных.
Инструменты для автоматизации тестирования
Автоматизация тестирования делает процесс проверки более быстрым, простым и точным. Еще этот вид тестирования, в отличие от ручного, позволяет работать с большими проектами и часто повторяющимися тестовыми случаями.
Jenkins
Jenkins — фреймворк с открытым исходным кодом для автоматизации тестирования на базе языка Java. Инструмент выполняет множество задач, например документирование, сборку кода, его развертывание, статический анализ. При тестировании ПО Jenkins упрощает процесс внесения изменений, что сокращает время на разработку проекта.
Другие преимущества Jenkins:
- Кросс-платформенность. Есть версии фреймворка для Linux, macOS и Windows.
- Возможность интеграции. Фреймворк можно интегрировать с облачными платформами, например с Azure, Google Cloud, DigitalOcean, Yandex Cloud.
- Большое количество плагинов. Маркетплейс Jenkins включает более 2000 дополнений.
Pytest
Pytest — фреймворк для тестирования на Python. Он делает проще создание и выполнение тест-кейсов, помогает в формировании отчетов. Важный плюс Pytest — большое количество плагинов для расширения возможностей фреймворка. Их можно интегрировать с другими сервисами, помогающими в тестировании. Например, для разработки подробных отчетов или настройки обнаружения тестов.
Другие преимущества Pytest:
- Универсальность. Фреймворк подходит для тестирования отдельных частей ПО и проверки совместимости кода и бизнес-требований.
- Независимость от API. Благодаря этому в Pytest меньше повторяющегося кода по сравнению со встроенными инструментами тестирования.
- Гибкая настройка. Архитектура основана на плагинах, которые можно устанавливать отдельно.
Selenium
Selenium — группа программ с открытым исходным кодом для тестирования ПО. С помощью инструмента можно писать автоматизированные тесты для проверки веб-приложений на разных языках программирования, например на Java, C#, Python, Ruby, JavaScript.
Другие преимущества Selenium:
- Универсальность. Selenium можно использовать для разных браузеров и операционных систем, а также на мобильных устройствах.
- Масштабируемость. Инструмент можно интегрировать с разными сервисами для тестирования. Благодаря этому получится применять сервис для решения даже узкоспециализированных задач.
- Кросс-платформенность. Selenium работает на разных ОС, в том числе на Windows, Linux и macOS.
Cucumber
Cucumber — еще один фреймворк для тестирования ПО с открытым исходным кодом. Главное преимущество инструмента в том, что с его помощью можно создавать автоматизированные тест-кейсы, в которых разберется специалист даже без глубоких технических знаний. А затем автоматически проверять, насколько продукт соответствует заданным критериям.
Другие преимущества Cucumber:
- Масштабируемость. Можно интегрировать Cucumber с другими инструментами, например с Selenium и Jira.
- Совместная работа. В едином веб-пространстве могут работать одновременно несколько специалистов, например тестировщики и разработчики.
- Поддержка разных языков программирования. В том числе Java и JavaScript.
Cypress
Cypress — фреймворк сквозного тестирования на основе JavaScript. Он нужен для автоматизации тестирования — запуска тестов прямо в браузере. У инструмента есть подробная, хорошо проработанная документация. В ней содержатся полезные советы для новичков. Рекомендации постоянно обновляются, чтобы у тестировщиков всегда была актуальная информация.
Другие преимущества Cypress:
- Быстрая работа. Cypress запускается прямо в браузере, поэтому выполняет тестирование быстрее, чем аналогичные инструменты.
- Встроенные механизмы подтверждения и ожидания. Благодаря этому повышается точность результатов тестирования.
- Простой синтаксис. Поэтому создавать и запускать тест-кейсы просто, с этим справится даже новичок.
TestLink
TestLink — бесплатная система управления тестами с открытым исходным кодом. У нее большой набор инструментов, например для управления тестовыми планами, тестовыми случаями, требованиями. Можно группировать тесты, объединять их в проекты, назначать ответственных. Также в TestLink много встроенных отчетов, чтобы оценивать качество тестирования.
Другие преимущества TestLink:
- Гибкая система ролей. Можно давать разные уровни доступа, менять права пользователей.
- Удобная настройка тестирования. Легко распределять задачи между разными специалистами, создавать планы.
- Простая и понятная структура. Даже если много сотрудников и задач, вероятность запутаться в них минимальная.
В зависимости контекста тестирования перечень используемых инструментов сильно отличается, но я выделю основные, которые помогают мне в работе и чаще всего используются, в частности на веб-проектах, так как это моя специализация.
Управление тестовой документацией
Jira, Youtrack — для работы с отчетами о дефектах и ежедневными задачами по проекту, разработке и тестированию.
TestRail, QASE, Test IT — для создания тест-кейсов, их управления и запуска тестовых прогонов.
Тестирование веб-приложений
Стандартные браузеры и инструменты разработчика, например DevTools, — для тестирования клиентских взаимодействий, графического интерфейса, базовых задач по работе с API.
Postman — для более глубокого тестирования API и базовой автоматизации. Отправка запросов, анализ ответов, отработка тестовых случаев.
Charles Proxy, Fiddler — для анализа и перехвата трафика, симуляции тестовых сценариев, тестирования API.
DBeaver и другие СУБД — для работа с базами данных, создания тестовых данных, исследования проблем, связанных с БД, так как чаще всего баги появляются именно из-за них.
Git и GitHub — система контроля версий для работы с исходным кодом и для анализа изменений в нем.
Jenkins — для развертывания приложений на тестовых средах и сборки необходимых для тестирования билдов.
Это далеко не весь перечень, а то, что базово используется на проектах.
Инструменты для нагрузочного тестирования
Если знать, какую максимальную нагрузку выдерживает ПО, можно планировать обновления и не волноваться, что проект не справится с наплывом пользователей. Чтобы выяснить это, QA-инженеры проводят нагрузочное тестирование с помощью специальных сервисов.
Apache JMeter
Apache JMeter — сервис для нагрузочного тестирования с открытым исходным кодом на основе Java. Включает нагрузочные и стресс-тесты, то есть проверку в условиях превышения допустимых пределов. Позволяет измерять производительность десктопных и веб-приложений. Еще инструмент анализирует работу сервера или группы серверов под высокой нагрузкой.
Другие преимущества Apache JMeter:
- Разные типы тестирования. Инструмент позволяет проверить производительность статических ресурсов, например HTML, JavaScript, и динамических — JSP, AJAX.
- Подробная аналитика. В Apache JMeter можно создавать разнотипные отчеты тестирования производительности.
- Расширенные возможности. С помощью инструмента получится определить максимальную нагрузку на продукт за единицу времени.
LoadView
LoadView — облачный инструмент, который симулирует поведение пользователей на сайте или сервере. Для этого сервис имитирует разные действия: поиск, добавление товаров в корзину, оформление заказа, просмотр карточки. За одно тестирование можно генерировать миллионы активностей, чтобы испытать продукт при пиковой нагрузке.
Другие преимущества LoadView:
- Гибкая настройка. Можно создать собственный сценарий с виртуальными пользователями.
- Онлайн-аналитика. Результаты тестов автоматически преобразуются в графики, чтобы отслеживать показатели в режиме реального времени.
- База знаний. У LoadView большая документация, которая поможет быстрее освоить сервис.
![Интерфейс LoadView](https://blog.skillfactory.ru/wp-content/uploads/2024/07/image4-2.png)
LoadNinja
LoadNinja упрощает тестирование производительности сайтов и программ. Сервис выполняет действия обычных пользователей в реальных браузерах. Важная особенность LoadNinja — тестировщикам не нужны глубокие технические знания.
Другие преимущества LoadNinja:
- Встроенный рекордер. С его помощью тестировщики могут создавать тест-кейсы, записывать действия в интерфейсе.
- Кросс-платформенность. Можно выбрать любое разрешение экрана для выполнения нагрузочного тестирования.
Gatling
Приложение для нагрузочного тестирования, использующее исходный код для имитации действий пользователей. Благодаря этому можно измерить производительность веб-приложения в разных условиях нагрузки. Gatling разработан на базе легко читаемого языка Scala, поэтому создать кейс-тест и провести проверку сможет человек без технических навыков. Также благодаря этому можно использовать сервис на любой ОС.
Другие преимущества Gatling:
- Наглядные HTML-отчеты. Тестировщики получают их онлайн и могут следить за процессом и промежуточными результатами прямо во время проверки.
- Многократное использование скриптов. Можно задавать разные сценарии или вводные для проверки, но при этом не переписывать весь тест-кейс.
Neoload
Инструмент для тестирования устойчивости и мощности ПО при разной нагрузке, от минимальной до пиковой. Его особенности — создание скриптов без кода, возможность проверить масштабируемость. Neoload можно применять при тестировании разного ПО, а также API.
Другие преимущества Neoload:
- Удобный интерфейс. Подходит для профессиональных тестировщиков и специалистов, далеких от QA.
- Непрерывная интеграция CI/CD. Благодаря этому можно автоматизировать процесс проверки ПО.
- Моделирование сложной инфраструктуры и пользовательского поведения. Позволяет получить более точный результат.
Рады поделиться опытом и рассказать о ключевых инструментах для тестирования и программах, которые мы используем в работе.
Платформа для ручного тестирования
Применяем для этих целей BrowserStack. Выбор пал именно на этот инструмент, потому что он позволяет проводить тестирование в различных браузерах и их версиях, в том числе мобильных. То есть он обеспечивает кросс-браузерную совместимость, и можно выявить возможные проблемы на разных платформах.
Например, недавно мы использовали BrowserStack для тестирования нашего нового веб-приложения на более чем 20 различных устройствах и браузерах. Это помогло увидеть и исправить несовместимости. Пользователи получили безупречный продукт, который подходит ко всем устройствам.
Фреймворки для автоматизации тестирования
Для автоматизации тестирования применяем в основном три программных платформы:
1. Selenium
Мощный и гибкий инструмент, который позволяет писать тесты на разных языках программирования – Java, Python и JavaScript. Мы используем Selenium для создания надежных и повторяемых тестов, что значительно ускоряет процесс тестирования и улучшает его качество.
Так, с помощью Selenium мы автоматизировали регрессионное тестирование для одного из крупных проектов. В итоге время тестирования сократилось с нескольких дней до нескольких часов.
2. Cypress
Позволяет легко писать и выполнять тесты для современных веб-приложений. Он обеспечивает быструю обратную связь и удобен для разработчиков благодаря встроенным возможностям отладки.
В одном проекте мы использовали Cypress для тестирования сложных пользовательских интерфейсов. Благодаря его возможностям отладки и визуализации тестов мы быстро обнаружили и исправили ошибки, улучшив качество конечного продукта.
3. Playwright
Playwright предоставляет мощные инструменты для тестирования современных веб-приложений на разных браузерах. Он особенно полезен для сложных сценариев и высокоинтегрированных приложений.
Использовали Playwright для тестирования мультибраузерной поддержки сложного веб-приложения. Это обеспечило высокую совместимость и производительность на всех поддерживаемых платформах.
Фреймворк для BDD-тестирования
Используем Cucumber. Мы можем писать тесты на естественном языке, понятном для всех членов команды, даже тех, кто далек от технической специализации. Коммуникация сотрудников и в целом совместная работа улучшаются. Например, Cucumber очень помог нам в написании тестовых сценариев вместе с бизнес-аналитиками. Члены команды лучше поняли требования, в итоге тесты получились более релевантными и точными.
Тестирование API
Для тестирования API подходят такие инструменты, как SoapUI и Postman. Они помогают проверять корректность и производительность API-запросов. SoapUI используется для более комплексного тестирования с поддержкой различных протоколов, а Postman — для быстрого и удобного создания и выполнения запросов.
С помощью SoapUI мы автоматизировали тестирование сложных API-сценариев для одного из наших крупных проектов, обеспечив стабильность и надежность системы. Postman использовался для быстрой проверки API во время разработки, что ускорило процесс внедрения новых функций.
Нагрузочное тестирование
Мы оцениваем производительность системы под нагрузкой с помощью JMeter и Яндекс Танк. Можно легко выявлять узкие места и обеспечивать стабильность работы приложения при высоких нагрузках. JMeter и Яндекс Танк незаменимы для тестирования через API и проведения масштабных нагрузочных тестов.
Использовали JMeter для моделирования высокой нагрузки на сервер нашего приложения, что помогло выявить и устранить узкие места в производительности. Яндекс Танк применялся для тестирования стабильности под реальными условиями использования.