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

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

Введение

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

  1. Использование софта для симуляции действия пользователя на сайте.
  2. Использование софта для симуляции действия пользователя в приложении.
  3. Автоматическое тестирование API
  4. Создание инструментов, которые помогают тестировщикам
  5. Написание скриптов для тестирования производительности
  6. Внедрение тестовых скриптов в существующий 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 и Opensource библиотеку PyWinAuto

В данный момент не имею достаточно опыта с последней, но уже столкнулся с ситуацией, где TestComplete не разобрался с WPF объектами а PyWinAuto справился.

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

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

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

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

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

Создание инструментов для тестировщиков

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

Разработчик написал скрипт, который будет делать часть этих действий на порядок быстрее.

Этот скрипт очевидно является автоматизацией.

Он участвует в процессе тестирования

Сам по себе тестом не является.

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

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

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

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

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

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

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

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

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

Автор статьи: Андрей Олегович

Изображение баннера