Блог a1qa

О тестировании и качестве ПО

Как обеспечить своевременный релиз с помощью автоматизации тестирования ПО

Автоматизированное тестирование часто воспринимается как неотъемлемый аспект ускоренного процесса обеспечения качества ПО.

Многие топ-менеджеры компаний считают его чуть ли не единственным способом сократить время на тестирование. Но понимаем ли мы в полной мере, какую пользу оно может принести и какие риски при этом возникают? При неправильном подходе можно потратить средства впустую и не достичь желаемого результата. 

Автор: Дилип Марвей, технолоогический лидер и Agile-консультант, более 16 лет работающий в области обеспечения качества, руководил отделами тестирования и обеспесения качества в крупных продуктовых компаниях.

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

Что такое автоматизированное тестирование?

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

Автоматизированное тестирование требует значительных денежных и ресурсных вложений, поэтому его необходимо проводить надлежащим образом. 

Чем выгодна автоматизация тестирования?

По моему опыту, это лучший способ повысить эффективность, увеличить тестовое покрытие и ускорить релиз продукта. 

Приведу несколько фактов об автоматизации тестирования ПО: 

  • В некоторых случаях может быть на 70% быстрее, чем ручное тестирование. 
  • Более надежна при правильном выполнении и достаточной поддержке.     
  • Тесты могут выполняться многократно в любое время суток. 
  • Снижает влияние человеческого фактора и повышает точность процесса тестирования. 
  • Увеличивает тестовое покрытие. 

Когда у нас не было возможности и времени тестировать вручную, автоматизация стала спасением. Она помогла выявить дефекты, которые могли бы сильно повлиять на качество конечного продукта. 

Мой главный совет: проводите автоматизацию как можно чаще, и чем быстрее вы получите обратную связь, тем лучше! 

Что нужно автоматизировать?

Это действительно хороший вопрос. Не стоит автоматизировать все подряд, это может привести к возникновению нестабильных тестов, которые замедлят весь процесс.

Давайте рассмотрим 6 случаев, когда действительно нужна автоматизация: 

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

Примерные сценарии того, что мы “должны” автоматизировать: 

  • Сравнение двух изображений по пикселям. 
  • Сравнение двух электронных таблиц, содержащих тысячи строк и столбцов. 
  • Параллельное тестирование приложения на разных браузерах и разных операционных системах (ОС).  

Что не нужно автоматизировать?

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

Не нужно автоматизировать: 

  • Новые тест-кейсы, которые еще ни разу не были выполнены вручную. 
  • Тест-кейсы, требования к которым часто меняются. 
  • Тест-кейсы, которые выполняются интуитивно (ad hoc testing). 
  • Негативные тест-кейсы на отказоустойчивость (failover testing). 
  • Тест-кейсы, которые требуют долгой предварительной настройки. 
  • Тест-кейсы, окупаемость автоматизации которых займет много времени. 

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

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

При автоматизации тестирования ПО следует выполнить следующие шаги: 

  • Выбор инструмента тестирования. Для этого проводится проверка концепции (Proof of concept) с привлечением заинтересованных сторон, что позволяет принять правильное решение. 
  • Определение область автоматизации. При этом необходимо учесть ряд факторов: функциональность; разработка сценариев, которые требуют большого объема данных; анализ возможности технической реализации; анализ сложности тест-кейсов; необходимость проводить кросс-браузерное тестирование. 
  • Планирование, проектирование и разработка. Она включает выбор средств автоматизации. Также выбор фреймворка и его возможностей: наиболее популярным веб-фреймворком с открытым исходным кодом является ‘Selenium WebDriver’. Далее — определение стандартов написания сценариев, таких как: унифицированные скрипты, комментарии и отступы в коде, обработка исключений, кодирование сообщений, определяемых пользователем, область применения автоматизации (где она нужна и не нужна), подготовка тестового стенда для автоматизации, график и сроки написания и выполнения сценариев и результаты автоматизации тестирования.
  • Выполнение тестирования.
  • Поддержка. Последний шаг играет огромную роль. Если не поддерживать тесты, не работать над устранением технического долга и не избавляться от «нестабильных» тестов, то автоматизация тестирования может потребовать больше времени и денежных средств, чем ручное тестирование. 

Как измерить успех автоматизации? 

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

Метрики автоматизации тестирования, которые стоит отслеживать: 

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

Заключение 

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

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

Поделиться статьей: