Автоматизация тестирования ПО

Содержание
Введение
WEB: Симуляция действий пользователя
Desktop: Симуляция действий пользователя
Выбор языка программирования
Автоматическое тестирование API
Написание скриптов для тестирования производительности
Внедрение тестовых скриптов в существующий CI/CD процесс
Связанные статьи
Автоматизация тестирования изображение с сайта www.andreyolegovich.ru
Automated Testing
freepik.com

Введение

Обычно под автоматизацией тестирования подразумевается что-то из списка:

  1. Использование софта для симуляции действия пользователя на сайте.
  2. Использование софта для симуляции действия пользователя в приложении.
  3. Автоматическое тестировани API
  4. Написание скриптов для тестирования производительности
  5. Внедрение тестовых скриптов в существующий CI/CD процесс.

Как в русскоязычной, так англоязычной среде нет на сто процентов устоявшегося термина для автоматизации тестирования.

Частота запросов по фразам Test Automation и Automated Testing в Google сопоставима в США.

Автоматизация тестирования изображение с сайта www.andreyolegovich.ru
Automated Testing vs Test Automation в США
google.com

Но в мире более популярным является вариант Test Automation

Автоматизация тестирования изображение с сайта www.andreyolegovich.ru
Automated Testing vs Test Automation в мире
google.com

WEB: Симуляция действий пользователя

Более современная библиотека для симуляции браузера - PlayWright

В автотестировании сайтов, или как это можно ещё назвать - Web UI Testing, в основном всё было завязано на Selenium

Можно изучить эту библиотеку и использовать вместе с одним из следующих языков программирования:

Выбор языка

Так как и Selenium и Playwright поддерживают работу с совершенно разными языками программирования перед начинающим тестировщиком может встать вопрос - на каком из них стоит изучать автоматизацию.

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

Решающий фактор - это имеющаяся инфраструктура. Ваши автотесты будут интегрированы в существующий CI/CD процесс и делать это желательно самым органичным образом.

Например, если все используют Maven то и тесты желательно писать на Java а если везде Ruby то вам возможно нужно присмотреться к Watir а не к чистому Selenium.

Что делать, если вы пока нигде не работаете?

Советую изучить сайты с вакансиями и выучить ту связку язык-фреймворк, на которую больше спрос.

Я пользовался следующими связками:

Python я выбрал, потому что немного знал язык + он присутствует во многих вакансиях.

Java я выбрал, потому что это наиболее родной язык, часть Selenium написано на Java + в интернете довольно много самоучителей именно по этой связке.

Пара слов про библиотеку Selenium.

Учить сам Selenium необязательно. Существует несколько фреймворков более высокого уровня с «более простыми» командами, рассчитанные на непрограммистов.

Самый популярный из них это, пожалуй Robot Framework

Есть ещё Watir

Cucumber и другие.

С появлением Playwright многие проекты переориентируются на него с Selenium.

Автоматическое тестирование десктоп приложений

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

Под Windows мне доводилось использовать TestComplete

Другие фреймворки/библиотеки для тестирование десктопа

Автоматическое тестировани API

Первый шаг к автоматическому тестированию API - это изучение обращений к API с помощью какого-либо инструмента.

Как обращаться к REST API с помощью Python 3 вы можете узнать здесь

Примеры обращений к API GitHub с помощью curl можете изучть здесь

Написание скриптов для тестирования производительности

В этой дисциплине понадобится знание хотя бы одного языка программирвоания.

Выбор широк и завист от стэка компании. Но в целом это может быть как Bash Scripting так и Python или Golang

Пример простейшего Bash скрипта, который мониторит состояние системы можете изучить здесь

Внедрение тестовых скриптов в существующий CI/CD процесс.

Это совсем другая история и учить нужно инструмент, который используют для CI/CD . Это может быть

или что-то ещё.

Умение грамотно интегрировать свои тесты - это первый шаг в направлении к DevOps