Автоматизированное тестирование часто воспринимается как неотъемлемый аспект ускоренного процесса обеспечения качества ПО.
Многие топ-менеджеры компаний считают его чуть ли не единственным способом сократить время на тестирование. Но понимаем ли мы в полной мере, какую пользу оно может принести и какие риски при этом возникают? При неправильном подходе можно потратить средства впустую и не достичь желаемого результата.
Автор: Дилип Марвей, технолоогический лидер и Agile-консультант, более 16 лет работающий в области обеспечения качества, руководил отделами тестирования и обеспесения качества в крупных продуктовых компаниях.
В этой статье я расскажу об основных принципах и дам несколько советов, которые помогут вам ориентироваться в мире автоматизации.
Что такое автоматизированное тестирование?
Это метод, при котором специалисты используют программные средства автоматизации тестирования для выполнения набора тестовых проверок.
Автоматизированное тестирование требует значительных денежных и ресурсных вложений, поэтому его необходимо проводить надлежащим образом.
Чем выгодна автоматизация тестирования?
По моему опыту, это лучший способ повысить эффективность, увеличить тестовое покрытие и ускорить релиз продукта.
Приведу несколько фактов об автоматизации тестирования ПО:
- В некоторых случаях может быть на 70% быстрее, чем ручное тестирование.
- Более надежна при правильном выполнении и достаточной поддержке.
- Тесты могут выполняться многократно в любое время суток.
- Снижает влияние человеческого фактора и повышает точность процесса тестирования.
- Увеличивает тестовое покрытие.
Когда у нас не было возможности и времени тестировать вручную, автоматизация стала спасением. Она помогла выявить дефекты, которые могли бы сильно повлиять на качество конечного продукта.
Мой главный совет: проводите автоматизацию как можно чаще, и чем быстрее вы получите обратную связь, тем лучше!
Что нужно автоматизировать?
Это действительно хороший вопрос. Не стоит автоматизировать все подряд, это может привести к возникновению нестабильных тестов, которые замедлят весь процесс.
Давайте рассмотрим 6 случаев, когда действительно нужна автоматизация:
- Области повышенного риска — тест-кейсы, которые проверяют критически важную для бизнеса функциональность.
- Тест-кейсы, которые выполняются многократно.
- Позитивные тесты-кейсы.
- Тестирование пользовательского интерфейса (UI).
- Тест-кейсы, которые очень затратно или трудно проводить вручную.
- Тест-кейсы, на выполнение и создание которых уходит много времени.
Примерные сценарии того, что мы “должны” автоматизировать:
- Сравнение двух изображений по пикселям.
- Сравнение двух электронных таблиц, содержащих тысячи строк и столбцов.
- Параллельное тестирование приложения на разных браузерах и разных операционных системах (ОС).
Что не нужно автоматизировать?
Теперь встречный вопрос, который не менее важен и требует особого внимания при разработке автоматизированных тестов.
Не нужно автоматизировать:
- Новые тест-кейсы, которые еще ни разу не были выполнены вручную.
- Тест-кейсы, требования к которым часто меняются.
- Тест-кейсы, которые выполняются интуитивно (ad hoc testing).
- Негативные тест-кейсы на отказоустойчивость (failover testing).
- Тест-кейсы, которые требуют долгой предварительной настройки.
- Тест-кейсы, окупаемость автоматизации которых займет много времени.
Процесс автоматизации тестирования
Всю работу по автоматизации необходимо планировать заранее, что занимает некоторое время. В своей работе над ИТ-продуктами я часто сталкивался с ситуациями, когда автоматизация не приносила желаемых результатов из-за некачественных тест-кейсов и применения автоматизации без особой необходимости.
При автоматизации тестирования ПО следует выполнить следующие шаги:
- Выбор инструмента тестирования. Для этого проводится проверка концепции (Proof of concept) с привлечением заинтересованных сторон, что позволяет принять правильное решение.
- Определение область автоматизации. При этом необходимо учесть ряд факторов: функциональность; разработка сценариев, которые требуют большого объема данных; анализ возможности технической реализации; анализ сложности тест-кейсов; необходимость проводить кросс-браузерное тестирование.
- Планирование, проектирование и разработка. Она включает выбор средств автоматизации. Также выбор фреймворка и его возможностей: наиболее популярным веб-фреймворком с открытым исходным кодом является ‘Selenium WebDriver’. Далее — определение стандартов написания сценариев, таких как: унифицированные скрипты, комментарии и отступы в коде, обработка исключений, кодирование сообщений, определяемых пользователем, область применения автоматизации (где она нужна и не нужна), подготовка тестового стенда для автоматизации, график и сроки написания и выполнения сценариев и результаты автоматизации тестирования.
- Выполнение тестирования.
- Поддержка. Последний шаг играет огромную роль. Если не поддерживать тесты, не работать над устранением технического долга и не избавляться от «нестабильных» тестов, то автоматизация тестирования может потребовать больше времени и денежных средств, чем ручное тестирование.
Как измерить успех автоматизации?
Итак, мы на этапе, когда автоматизация уже внедрена. Теперь важно отслеживать ее эффективность. В случае необходимости, основываясь на имеющихся данных, можно исправлять допущенные ошибки.
Метрики автоматизации тестирования, которые стоит отслеживать:
- Процент дефектов, найденных с помощью автоматизации.
- Время, необходимое для автоматизации тестирования для каждого цикла релиза.
- Время, затраченное на релиз благодаря автоматизации тестирования, по сравнению со временем, затраченным на прогон скриптов вручную.
- Индекс удовлетворенности клиентов.
- Повышение производительности.
Заключение
Автоматизация тестирования действительно может расширить ваши возможности при обеспечении качества программного продукта, но она требует тщательного планирования и профессиональной команды для быстрого внедрения и успешной реализации.
Напишите экспертам a1qa, чтобы узнать больше об услуге автоматизации тестирования ПО, а также рассчитать время ее внедрения и определить необходимый объем работ.