Первый этап автоматизации тестирования — выбор подходящей стратегии. Но перед этим необходимо четко представлять себе цели и задачи этого процесса, а также выбрать нужные способы и инструменты. Расскажем, как это правильно сделать.

Зачем нужна автоматизация

Тестирование в целом используется для проверки качества ПО. Используя его, мы можем убедиться, что программный продукт правильно выполняет поставленные задачи и соответствует всем предъявляем требованиям.

Перед тем, как запускать процесс тестирования стоит ответить на основные вопросы:

  • Каковы наши цели?
  • Что будет проверяться?
  • Какое окружение будем использовать?
  • Какие виды и инструменты тестирования подойдут для выполнения задач?
  • Кто из членов команды возьмет на себя эти функции?
  • В какой момент будут проводиться мероприятия?
  • Есть ли ограничения по объему и количеству работ?

Это общие вопросы, применяемые к процессам в QA. Зная, что такое автоматизация тестирования, мы должны понять, где и как ее целесообразно применять.

Выбор конкретных стратегий тестирования

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

Основная цель — понять, что нам нужно проверить и в какой последовательности.

  • Функциональное — будет первоочередной целью. С его помощью мы проверим, выполняет ли интернет-магазин свою основную функцию. То есть можно ли с его помощью совершать покупки.
  • Производительности — позволит проверить, насколько ПО стабильно и быстро работает, а также дает ли оно необходимую масштабируемость.
  • Регрессионное — позволит оценить, насколько легко будет внедрять новые функции.
  • Безопасности — насколько система защищена от проникновений и кражи данных.
  • Проверка на соответствие требований законодательства.

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

В случае интернет-магазина у нас есть:

  • веб-интерфейс;
  • сервер на базе REST-архитектуры;
  • база данных с информацией о покупках;
  • интеграции с системой оплатой и доставкой.

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

Подходы к автоматизации тестирования

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

  • Эффективность — есть ли смысл тратить человекочасы на написания авто-тестов или проще и дешевле протестировать вручную?
  • Необходимость — иногда без автоматизации тестирования не обойтись, например, если речь идет о принятых стандартах разработки или конкретных отраслевых требованиях.
  • Ограничения ручной проверки — противоположная ситуация, когда ручная проверка в полной мере физически невозможна, например, из-за объема.

Тут важно понимать, зачем нужна автоматизация тестирования. Главная ее задача — оптимизировать обеспечение качества ПО. То есть нужно автоматизировать все, что дешевле и проще проверять автотестами.

При выборе стратегий автоматизации важно учитывать, что они дают хорошие результаты на долгий срок. Но требуют больших трудозатрат, которые не всегда экономически эффективны.

Исходя из этих критериев автоматизация тестирования показана на проектах:

  • С долгой разработкой и большим количеством изменений.
  • С высоконагруженными системами;
  • С большим объемом вычислений и фильтрацией данных;
  • Со специфическими требованиями к безопасности;
  • С высоким качеством разработки.

Автоматизировать стоит и отдельные части, например, проверку установки, сборки, протоколов, интеграции или API.

Автоматизация слабо оправдана на краткосрочных проектах без последующей поддержки.

Инструменты тестирования

Решив, что и как мы будем автоматизировать, можно перейти от стратегических задач к практическим. То есть необходимо сформировать определенный фреймворк для автоматизации тестирования.

К списку возможностей идеального инструмента относится умение выдавать нужные скрипты и применять их, а также управлять объектами тестирования. После проверок качества, он должен предоставлять результаты в виде понятных отчетов.

Если мы собираемся автоматизировать тестирование пользовательского интерфейса, то разумным будет рассмотреть Unified Functional Testing или Ranorex. Среди библиотек можно выбрать Appium.

Основываясь на тех же принципах, стоит определять инструменты тестирования для других компонентов. Например, если нам нужно автоматизировать проверку баз данных, то следует предпочесть ПО, которое умеет работать с СУБД.

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

На рынке существуют целые платформы, которые позволяют проверять качество нескольких объектов.

Виды инструментов автоматизации тестирования:

  • Open Source — отличаются гибкостью возможностей и широким комьюнити, но их использование требует относительно больших навыков. Кроме того, всегда есть риск, что решение устареет, а оно уже будет плотно интегрировано в проект.
  • Коммерческое ПО — главный минус — это цена и трудности взаимодействия с системами управления тестированием. Плюсов гораздо больше, такими решениями обычно легко управлять, функционал подробно описан в документации, идеально подходит для оптимизации типовых задач.
  • Собственная разработка — инструмент тестирования, созданный внутри команды для решения определенных задач. Такие инструменты идеально подходит под объект тестирования, но требует хорошей экспертизы и не всегда рентабельно в силу трудозатрат.

Веб-услуги и разработка в YuSMP Group основана на использовании современных инструментов автоматизации тестирования. За счет этого проекты, которые мы создали работают стабильно и полностью соответствуют пожеланиям заказчиков. Больше статей об IT читайте в блоге студии web-разработки YuSMP Group.