Найти в Дзене

6 типов языков и 6 типов инструментов необходимых тестировщику в 2024 году

Есть мнение, что тестировщик — самая лёгкая для старта в IT профессия. Может, это и так. Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить. Что ж, вот минимальный набор языков и технологий, которые стоит знать тестировщику в 2024 чтобы быть востребованным: Помимо языков сценариев и фреймворков, существует множество инструментов, специально разработанных для тестирования API. Вот некоторые из самых популярных: Таким образом, минимальный набор включает хотя бы один язык программирования для автоматизации тестирования (например, Python или Java), основы HTML, YAML, JSON и SQL, знание GIT для работы с системами контроля версий, JMeter для тестирования производительности, снифферы трафика для анализа сетевых взаимодействий, и Burp Suite для тестирования безопасности. Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика? Не забудьте подписаться на канал, чтобы не про
Оглавление

Есть мнение, что тестировщик — самая лёгкая для старта в IT профессия. Может, это и так.

Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить.

Что ж, вот минимальный набор языков и технологий, которые стоит знать тестировщику в 2024 чтобы быть востребованным:

Языки

1. Языки программирования для автоматизации тестирования:

  • Python — простой для изучения и широко используемый язык для написания автоматизированных тестов. Много библиотек для тестирования, таких как Selenium, PyTest, unittest, а также фреймворк Playwright для тестирования веб-приложений.
  • Java — часто используется для автоматизации тестирования веб-приложений с использованием Selenium и других фреймворков. Java также поддерживает Playwright и другие инструменты для тестирования. Кроме того, Java применима для тестирования Android-приложений.
  • JavaScript — необходим для тестирования веб-приложений, особенно в связке с фреймворками, такими как Cypress, Jest, Puppeteer, а также Playwright, который активно используется для автоматизации браузеров.
  • C# — актуален для тестировщиков, работающих с экосистемой .NET, например, для тестирования приложений на базе Microsoft технологий. Selenium и Playwright также доступны для автоматизации тестов на C#.
  • Ruby — используется в некоторых компаниях для тестирования веб-приложений с помощью фреймворков типа Cucumber, Capybara и других.
  • Kotlin — язык программирования, активно используемый для разработки и тестирования Android-приложений. Kotlin поддерживается многими фреймворками для мобильного тестирования, такими как Espresso и Appium.
  • Swift — основной язык программирования для разработки и тестирования приложений на iOS. Тестировщикам мобильных приложений на iOS полезно владеть Swift для написания тестов с использованием фреймворков, таких как XCTest и Appium.

2. Языки разметки:

  • HTML — знание основ HTML необходимо для тестирования веб-приложений, чтобы понимать структуру веб-страниц и анализировать DOM. Это помогает при создании автоматизированных тестов и работе с инструментами для тестирования UI, такими как Selenium, Cypress, Playwright и другие.
  • XML — часто используется для описания данных в API, конфигурациях и отчетах. Знание XML необходимо для работы с SOAP API, а также для анализа тестовых данных и отчетов.
  • JSON — это формат обмена данными, который широко используется в REST API. Знание JSON важно для тестировщиков, работающих с API-тестированием и анализа данных.
  • YAML — легковесный язык разметки, который используется для описания конфигураций и сценариев тестирования. YAML часто применяется в инструментах для тестирования API (например, Tavern), а также для написания файлов конфигураций в CI/CD пайплайнах и других автоматизированных процессах.

3. Языки запросов:

  • SQL — знание основ SQL необходимо для работы с базами данных, чтобы проверять корректность данных, создавать запросы для тестирования и анализировать результаты. Способность писать простые запросы на выборку данных (SELECT) и обновления (UPDATE) крайне важна.
  • MDX (Multidimensional Expressions) — используется для работы с многомерными базами данных и OLAP-системами. Полезен для тестирования BI-систем и отчетности, особенно при работе с аналитическими запросами.

4. Скриптовые языки:

  • Bash/Shell — полезен для автоматизации задач в операционных системах на основе UNIX/Linux. Часто используется для написания скриптов для запуска тестов, обработки логов и управления окружением.
  • PowerShell — аналог Bash для операционных систем Windows, используется для автоматизации задач на платформе Microsoft.

5. Языки для тестов BDD (Behavior-Driven Development):

  • Gherkin — язык, используемый для написания тестов в стиле BDD. Применяется в инструментах вроде Cucumber. Это простой язык, который позволяет писать тестовые сценарии в формате "Given-When-Then".

6. Языки для работы с API:

  • Postman Scripts (JavaScript) — Postman позволяет автоматизировать API-тестирование с помощью встроенных скриптов на JavaScript. Знание JavaScript помогает создавать сложные тесты и проверки внутри Postman.
  • Groovy — используется в инструменте SoapUI для тестирования SOAP и REST API. Groovy позволяет создавать сложные тестовые сценарии и проверки.
  • K6 Scripts (JavaScript) — используется в инструменте K6 для нагрузочного тестирования API. Язык сценариев в K6 основан на JavaScript, что делает его понятным для веб-разработчиков и тестировщиков.
  • Tavern (YAML) — язык сценариев, используемый в инструменте Tavern для тестирования API. Tavern поддерживает как REST, так и MQTT API и использует формат YAML для описания тестов.
  • JMeter JSR223 Scripting (Groovy) — в JMeter можно использовать язык Groovy для создания более сложных тестовых сценариев при нагрузочном тестировании API.

Инструменты

1. Инструменты (системы) контроля версий:

  • GIT — это не язык программирования, но крайне важная технология для любого тестировщика. GIT — это система контроля версий, которая позволяет отслеживать изменения в коде, управлять ветками, откатываться к предыдущим версиям и работать в команде. Владение GIT необходимо для эффективной работы над тестовыми сценариями, особенно в среде автоматизации.
  • Subversion (SVN) - Более старая система контроля версий с центральным репозиторием. Каждый разработчик работает с копией данных, но все изменения должны отправляться в центральный репозиторий.
  • Mercurial - Распределенная система контроля версий, похожая на Git, но с другой философией пользовательского интерфейса. Mercurial делает упор на простоту использования и производительность. Mercurial используется на таких платформах, как Bitbucket (в прошлом).
  • Perforce (Helix Core) - Коммерческая система контроля версий, широко используемая в индустрии видеоигр и в других крупных проектах, где требуется контроль за большими бинарными файлами и сложными сборками. Используется в крупных корпорациях, таких как Google и Ubisoft.
  • ClearCase - Коммерческая система контроля версий, разработанная IBM. Используется в основном в крупных организациях для сложных проектов с требованиями к управлению конфигурацией. Применяется в корпорациях, особенно в индустриях с высокими требованиями к качеству и безопасности, например, в авиастроении.

2. Инструменты для работы с очередями и потоковой обработки данных:

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

3. Инструменты для тестирования производительности и нагрузочного тестирования:

  • JMeter — популярный инструмент для нагрузочного тестирования и тестирования производительности веб-приложений и API. JMeter позволяет симулировать многочисленные запросы к серверу, чтобы оценить, как система справляется с высоким трафиком. Инструмент поддерживает работу с HTTP/HTTPS, SOAP, REST, FTP, базами данных и другими протоколами. Знание JMeter полезно для тестировщиков, работающих с высоконагруженными системами, чтобы выявить узкие места и протестировать стабильность системы под нагрузкой.
  • K6 — инструмент для написания и запуска сценариев нагрузочного тестирования API, основанный на JavaScript. Он позволяет легко интегрировать тесты с CI/CD пайплайнами.

4. Инструменты для работы с сетевым трафиком (снифферы трафика):

  • Wireshark — один из самых популярных инструментов для захвата и анализа сетевого трафика. Wireshark позволяет тестировщикам перехватывать и анализировать сетевые пакеты, выявлять проблемы с передачей данных, а также проверять безопасность сетевого взаимодействия.
  • Fiddler — инструмент для перехвата HTTP/HTTPS трафика. Fiddler полезен для тестировщиков, работающих с веб-приложениями и API, так как позволяет анализировать запросы и ответы, изменять их, а также выявлять проблемы с подключениями и передачей данных.
  • Charles Proxy — аналог Fiddler, который также используется для перехвата HTTP/HTTPS трафика и анализа взаимодействия между клиентом и сервером. Charles Proxy особенно полезен для тестирования мобильных приложений.
  • tcpdump — мощный инструмент командной строки для перехвата сетевого трафика в UNIX/Linux-системах. tcpdump полезен для анализа сетевых взаимодействий на низком уровне и может использоваться как для функционального тестирования, так и для тестирования безопасности.

5. Инструменты для тестирования безопасности:

  • Burp Suite — один из самых популярных инструментов для тестирования безопасности веб-приложений. Burp Suite используется для поиска уязвимостей, таких как SQL-инъекции, XSS-атаки, и других проблем безопасности. Тестировщикам полезно владеть Burp Suite для проведения тестов на проникновение (penetration testing), анализа HTTP-запросов, перехвата трафика и поиска уязвимостей в веб-приложениях. Знание этого инструмента особенно важно для QA-специалистов, занимающихся тестированием безопасности (Security Testing).

6. Инструменты для работы с API:

Помимо языков сценариев и фреймворков, существует множество инструментов, специально разработанных для тестирования API. Вот некоторые из самых популярных:

  • Postman — один из самых популярных инструментов для тестирования REST API. Postman позволяет легко создавать запросы, проверять ответы, писать автотесты (на JavaScript) и создавать коллекции для автоматизации тестирования.
  • SoapUI — инструмент для тестирования как SOAP, так и REST API. SoapUI поддерживает сложные сценарии тестирования, включая тесты безопасности и нагрузочные тесты. Инструмент также позволяет интегрировать Groovy-скрипты для гибкой настройки тестов.
  • Insomnia — еще один популярный инструмент для тестирования API, который поддерживает как REST, так и GraphQL. Insomnia предлагает простоту в использовании и гибкие настройки для работы с API-запросами.
  • Tavern — инструмент для тестирования API, который использует формат YAML для описания сценариев тестирования. Tavern поддерживает как REST API, так и протокол MQTT, что делает его полезным для тестирования IoT-устройств.
  • Swagger/OpenAPI — это не только спецификация для документирования API, но и полезные инструменты, такие как Swagger Editor и Swagger UI, которые позволяют разрабатывать, тестировать и документировать API.
  • Dredd — инструмент для автоматического тестирования API на основе спецификаций Swagger/OpenAPI. Dredd проверяет, соответствует ли фактическое поведение API его спецификации.
  • K6 — инструмент для написания и запуска нагрузочных тестов API на JavaScript. K6 позволяет легко интегрировать тесты с CI/CD пайплайнами и поддерживает тестирование производительности API.
  • Newman — это CLI-версия Postman, которая позволяет запускать коллекции тестов в автоматическом режиме через командную строку. Newman чаще всего используется для интеграции тестов API в CI/CD пайплайны.
  • Hoppscotch — это легковесный и быстрый инструмент для тестирования API, который поддерживает REST, GraphQL и WebSocket. Он предлагает простой интерфейс для создания запросов и тестирования ответов.

Важно отметить:

  • Языки программирования зависят от конкретной платформы и набора инструментов, используемых в компании. Например, если компания использует Selenium или Playwright для автоматизации тестирования, то тестировщику нужно будет знать язык, на котором написаны тесты — это может быть Python, Java, C#, JavaScript и т.д. Для мобильных тестировщиков полезно владение Kotlin для Android и Swift для iOS.
  • Языки разметки и запросов важны для работы с веб-приложениями, базами данных и API. Владение YAML и JSON особенно полезно для тестирования API и написания конфигураций.
  • GIT — важная технология для управления тестами и совместной работы в команде.
  • Kafka и RabbitMQ — это системы очередей сообщений, которые используются в микросервисных архитектурах и распределенных системах. Тестировщикам, работающим с такими системами, важно понимать, как проверять корректность передачи сообщений и состояние очередей.
  • JMeter и K6 — ключевые инструменты для нагрузочного тестирования и тестирования производительности, особенно в высоконагруженных системах.
  • Wireshark, Fiddler и Charles Proxy — важные инструменты для перехвата и анализа сетевого трафика, полезные для тестирования API, веб-приложений и мобильных приложений.
  • Burp Suite — важный инструмент для тестировщиков, занимающихся тестированием безопасности, который помогает в поиске уязвимостей веб-приложений.

Таким образом, минимальный набор включает хотя бы один язык программирования для автоматизации тестирования (например, Python или Java), основы HTML, YAML, JSON и SQL, знание GIT для работы с системами контроля версий, JMeter для тестирования производительности, снифферы трафика для анализа сетевых взаимодействий, и Burp Suite для тестирования безопасности.

Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?

Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика

Пишите в комментариях какой пункт было бы интересно рассмотреть более подробно.

Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам

-2