Noveo

Наш блог Автоматизация QA: когда и зачем

Автоматизация QA: когда и зачем

Когда и зачем нужно автоматическое тестирование и что это вообще такое? Senior Test Engineer Noveo Елена раскладывает все по полочкам:

 

Тестирование — это неотъемлемая часть процесса разработки приложений. Каждое изменение в приложении нужно проверять, ведь любое изменение может «сломать» уже существующий функционал. Для ускорения тестирования и повышения его надежности этот процесс можно автоматизировать. Для автоматизации используются специально предназначенные для этого инструменты. Это и называется «автоматизация тестирования».

Noveo QA automation

Что можно автоматизировать и зачем:

подготовку тестовых окружений — для тестирования на различных платформах и версиях приложения;

генерацию тестовых данных — для уменьшения объема рутинных ручных операций и увеличения скорости подготовки данных перед началом тестирования;

формирование отчётов о результатах тестирования — автоматически сгенерированные отчеты сокращают время на описание результатов тестирования и имеют стандартный вид;

контроль связей между артефактами — автоматическое создание задач для разработчиков на основе failed-тестов;

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

Пирамида тестирования

Noveo Testing Pyramid

Если представить все виды автотестов в форме пирамиды, то на вершине пирамиды окажутся самые медленные и самые «дорогие» тесты — ручные тесты.

 

Далее идут автотесты для пользовательского интерфейса (UI). Они также требуют существенных временных и финансовых вложений и достаточно медленные по скорости (прогон полного набора UI-автотестов может занимать часы). Эти тесты еще называют end-to-end-тестами, так как они, как правило, автоматизируют проверку пользовательских сценариев, которые проходят через все приложение. С технической точки зрения — это имитация действий пользователя в браузере с помощью специальных драйверов (например, Selenium WebDriver, Cypress и др.). Так инженеры по автоматизации тестирования могут имитировать клики по веб-элементам, ввод текста в поля форм, скроллы, выбор из выпадающего списка, ожидания и многое другое.

 

API-тесты разрабатываются намного быстрее. Этот вид тестирования имеет дело не с графическим интерфейсом, а с программным. Автотесты проверяют основной функционал приложения без обращения к элементам пользовательского интерфейса, посредством отправки запросов к серверу и получения ответов от него. Прогон таких тестов занимает минуты, что существенно быстрее end-to-end-тестов.

 

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

Когда начинать автоматизацию тестирования на проекте

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

— Проект долгосрочный (от года и более).

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

— Частые релизы (и, следовательно, частое регрессионное тестирование).

— Много рутинных проверок, которые влекут за собой большой процент пропуска багов (человеческий фактор).

Почему автоматизация тестирования — это выгодно?

С точки зрения бизнеса автоматизация тестирования дает следующие конкурентные преимущества:

  • Сокращение time to market — более короткие и частые релизы.
  • Раннее обнаружение ошибок в приложении — тестировщики точно обнаружат баги раньше, чем пользователи.
  • Понятные отчеты о тестировании с графическим представлением информации для менеджмента — легко мониторить качество продукта.
  • Мотивация инженеров по тестированию к профессиональному развитию, повышение интереса к работе и сокращение рутинных операций.
  • Меньше ручных тестов — дешевле тестирование (согласно пирамиде тестирования).

 

Технические преимущества автоматизации:

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

Заключение

Внедрение автоматизации тестирования — это в первую очередь долговременные инвестиции в качество продукта, которые приведут проект к экономии времени и ресурсов на тестирование. На начальном этапе затраты на автоматизацию тестирования несколько превышают затраты на ручное тестирование, но в долгосрочной перспективе это даст существенную выгоду:

Noveo Manual vs Automated testing

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

 

В компании Noveo наработан обширный опыт внедрения и поддержки автоматизации тестирования на проектах разной сложности. Работа производится с использованием различного стека технологий, в частности таких языков программирования, как Java/Python/JS. Внедрение автотестов наряду с ручными кейсами дает существенное повышение качества приложений и сокращение time-to-market. Кроме того, инженеры по автоматизации тестирования компании работают совместно с DevOps-инженерами над настройкой автоматического запуска тестов на удаленных серверах по заданному расписанию, что существенно ускоряет процесс поиска дефектов и своевременного их исправления.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

НазадПредыдущий пост ВпередСледующий пост

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: