Разделы портала

Онлайн-тренинги

.
Автоматизированное тестирование: ожидание vs реальность
12.07.2017 09:17

Оригинал публикации: 

http://bytextest.ru/2017/06/20/autotest-vs-reality/#more-5727

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

Ожидание №1: Можно тратить время на изучение фреймворка и тест-кейсов при автоматизации нового приложения.

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

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



Решение проблемы:

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

Ожидание №2: Автоматизированное тестирование может заменить ручное тестирование.

Реальность: Существует заблуждение, что как только нужные скрипты написаны, можно сразу заменить тестировщика программой. Это не совсем так. Автотест пропустит даже самый маленький баг, если поиск багов такого типа не прописан в нем, что вряд ли произойдет при ручном тестировании. Кроме того, в большинстве случаев в приложения часто вносят изменения, что влияет на “область покрытия программы” и приводит к ошибкам в скрипте. Здесь и приходит на помощь тестировщик, который вручную проверяет изменения, пока скрипты обновляются.


Решение проблемы:

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

Ожидание №3: Используя автоматизацию, можно добиться результата гораздо быстрее, чем при выполнении ручного тестирования.

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


Решение проблемы:

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

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

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


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

Решение проблемы:

  • Во время написания скриптов регулярно информируй конечного пользователя о потоковых данных, необходимых для тест-кейсов, контрольных данных и т.д., чтобы у тестировщика или разработчика не возникало ложных представлений о приложении.
  • Разберись, какие данные будут вводными, а какие — константными. Это сведет ввод данных для каждого отдельного случая к минимуму.

Ожидание №5: Автоматизированное тестирование выполнит работу на 100% без единого сбоя.

Реальность: Автоматизация схожа с разработкой ПО и имеет свои недостатки и ограничения. Невозможно выполнить все скрипты без сбоев в них. Есть несколько причин, по которым эти сбои происходят, и не все они связаны с автоматизацией. Например, медленная работа системы, проблема целостности данных, изменения в пользовательском интерфейсе и т.д. Чаще всего это происходит с постоянно обновляющимися приложениями.


Решение проблемы:

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

Кирилл Флягин, геймдизайнер, QA Lead, компания Bytex:
Автоматизация тестирования может принести свои плоды в перспективе, но вряд ли ты увидишь ощутимые результаты сразу, так как скрипты нуждаются в постоянном обновлении. Автоматизация также не поможет тебе магическим образом выполнить работу в срок. Нужно понимать ограничения, которыми она обладает, и использовать ее соответственно. Только в этом случае ты сможешь достигнуть желаемого результата.

Обсудить в форуме.