Автоматизация тестирования от «А» до «Я»: часть 2

12 августа 2019
Дата публикации
Автоматизация тестирования от «А» до «Я»: часть 2
  • Тестирование ПО
  • Автоматизация тестирования
Продолжаем разговор про автоматизацию тестирования.

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

Это не так: стереотипы об автоматизации тестирования

Многие ошибочно думают, что автоматизация тестирования – это область знаний, которая совсем не связана с проведением ручных проверок.

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

Чтобы избежать путаницы, мы собрали 4 распространеннных мифа об автоматизации.

1) Автоматизация всегда эффективнее, чем ручное тестирование.

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

Например, ручное тестирование выходит на первый план, когда:
  •  Мы говорим о начальном этапе разработки, где автоматизация еще не может быть внедрена из-за частичной реализации проекта.
  •  Нужно очень быстро провести тестирование (hotfix testing), но автоматизация функциональности не может быть реализована за слишком короткий промежуток времени.
  •  Требования к программному продукту постоянно меняются, из-за чего необходимо регулярно обновлять автотесты, а внедрять автоматизацию для каждого из требований очень трудно
В любом случае и автоматизация, и ручное тестирование могут проводиться вместе для обеспечения качества программного продукта. Особенно когда нельзя полагаться только на ручные проверки. Например, при работе с Большими данными (Big data).

2) Автоматизация полностью исключает участие QA-инженера в тестировании.

Автоматизация применяется для повторяющихся тестов, тестов с большим объемом данных или тестов, которые необходимо часто запускать (например, регрессионные проверки), – в этих случаях она позволяет в определенной степени снизить затраты на ручное тестирование.

Но участие инженера в самом процессе автоматизации нужно как минимум на двух этапах: разработка автотестов и их регулярная поддержка.

Кроме того, не все типы тестов можно автоматизировать. Например, usability-тесты, исследовательские проверки, когда для проведения тестов нужен опыт реального человека.

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

3) С помощью автоматизации можно достичь полного тестового покрытия.

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

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

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

4) Автоматизация поможет найти множество дефектов.

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

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

Согласно World Quality Report (WQR) 2018-19, активное использование искусственного интеллекта, машинного обучения, предсказательной аналитики в автоматизации в ближайшие годы сильно изменит сферу QA и тестирования ПО.

Как искусственный интеллект оптимизирует процесс автоматизации тестирования

Сегодня термин «искусственный интеллект» (ИИ) — один из самых популярных в сфере программного обеспечения (возможно, после Agile и DevOps).

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

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

Согласно отчету WQR, 45% респондентов используют ИИ для того, чтобы сделать автоматизацию тестирования более «умной».

Источник также указывает на то, что одним из ключей повышения эффективности автоматизации является внедрение в нее искусственного интеллекта. В этом случае QA-инженеры должны сами решать, что автоматизировать, что не стоит автоматизировать, а что автоматизировать в первую очередь – и делать это нужно, опираясь на принципы «умной» автоматизации.

Как понять, выигрывает ли ваш бизнес от автоматизации
Если решение по автоматизации внедрено правильно, потраченное время и усилия не пропадут зря, а помогут создать удачный клиентский опыт (CX). Тем не менее бизнес-преимущества сервиса не ограничиваются только этим.

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

Автоматизация тестирования стала важным компонентом в процессе обеспечения качества программных продуктов на всех этапах их жизненных циклов. Следуя за такими трендами, как предсказательная аналитика, роботизация (robotic process automation), она становится «умнее» и приносит еще больше преимуществ для компаний.

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

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