Тестирование на обезьянах

Привет, друзья! Сегодня мы познакомимся с увлекательным видом тестирования — Monkey testing, оно же тестирование на обезьянах или обезьянье тестирование. Этот подход часто обсуждается на  собеседованиях тестировщиков.

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

Обезьяна начнет случайным образом взаимодействовать с приложением, не имея никакого представления о его работе. Именно это и происходит в процессе Monkey testing — приложение тестируется в случайном порядке, без каких-либо знаний о его структуре и функциональности.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Содержание:

Определение

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

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

Ключевые особенности

  1. Минимум знаний о приложении: Тестировщик, выполняющий обезьянье тестирование, может не обладать глубокими знаниями о структуре и логике работы приложения.
  2. Отсутствие чёткой последовательности действий: Нет заранее созданного набора тест-кейсов или точных шагов. Всё происходит случайным образом.
  3. Возможность автоматизации: Этот метод тестирования может быть автоматизирован с помощью скриптов, которые генерируют случайные действия и данные. Однако чаще всего предпочтительнее проводить его вручную для большей спонтанности.

Виды тестирования на обезьянах

Обезьянье тестирование можно разделить на три основные категории:

  • Глупая обезьяна (Dumb Monkey) — это самый простой тип тестирования, при котором тестировщик не имеет никакого представления о том, как работает приложение. Его задача заключается в случайных взаимодействиях с приложением, чтобы попытаться вызвать ошибки или сбои, не зная ни исходных, ни конечных точек пользовательского сценария. Тестировщик не знаком ни с пользовательским интерфейсом, ни с функциональностью системы.
  • Умная обезьяна (Smart Monkey) — здесь тестировщик уже обладает базовым пониманием работы приложения. Он осознаёт, какие действия могут привести к определённым результатам, и понимает, как система должна реагировать на различные входные данные. Несмотря на наличие структуры, основная цель остаётся прежней — намеренно выявить слабые места приложения.
  • Выдающаяся обезьяна (Brilliant Monkey) — это самый продвинутый тип тестирования. Тестировщик не только глубоко понимает внутреннюю работу приложения, но и оценивает его с точки зрения пользователя. Задача заключается не только в нахождении сбоев, но и в сборе полезных данных о поведении приложения в конкретной предметной области. Такой подход позволяет глубже проникнуть в процесс тестирования, выявляя как функциональные, так и пользовательские ошибки.

Преимущества

  1. Обнаружение сложных дефектов: Этот метод позволяет выявить баги, которые могут не проявиться при стандартных сценариях тестирования.
  2. Идеален для стресс-тестов: Поскольку основная цель “обезьяньего” тестирования — вызвать сбой системы, оно часто используется для проверки её устойчивости под высокой нагрузкой.
  3. Не требует высокой квалификации: Для проведения такого тестирования не нужны глубокие знания о приложении или его внутренней структуре.
  4. Экономичность: Этот метод не требует сложной настройки или привлечения опытных специалистов, что делает его более доступным с точки зрения затрат.

Недостатки

  1. Трудность анализа ошибок: Из-за случайного характера тестирования баги могут быть обнаружены, но процесс их локализации и исправления усложняется.
  2. Проблемы с воспроизведением ошибок: Даже если баг найден, восстановить точную последовательность действий для его повторения бывает крайне сложно.
  3. Затраты времени: Тестирование может занять продолжительное время, при этом количество найденных багов может оказаться минимальным.
  4. Ограниченный охват: Полный охват функциональности приложения не гарантируется, поскольку тесты выполняются случайным образом.

Основные инструменты

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

1. UI/Application Exerciser Monkey для Android

Этот инструмент можно использовать как на реальных устройствах, так и на эмуляторах. Он автоматически генерирует поток случайных действий, таких как касания, нажатия и жесты, что позволяет проводить всестороннее тестирование и находить потенциальные уязвимости. Благодаря своей способности автоматизировать процессы, UI/Application Exerciser Monkey особенно эффективен для стресс-тестов, направленных на проверку устойчивости системы под нагрузкой.

2. Monkey Runner Tool

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

Monkey testing vs Gorilla testing

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

Тестирование на обезьянахТестирование на гориллах
Основано на случайном вводе данных в систему с целью проверки её поведения.Случайное ручное тестирование одного конкретного модуля для подтверждения его стабильности.
Проводится на уровне всей системы.Ориентировано на тестирование отдельных модулей.
Цель — убедиться, что система не выйдет из строя.Цель — выявить и устранить баги в конкретном модуле.
Применяется в основном на этапе системного тестирования.Используется на этапе модульного (юнит) тестирования.
Также называется случайным тестированием, тестированием Fuzz или стохастическим тестированием.Известно как пыточное тестирование, тестирование на отказоустойчивость или фрустрирующее тестирование.
Включает три типа: «глупая», «умная» и «выдающаяся» обезьяна.Разновидности горилла-тестирования отсутствуют.

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

Перевод статьи «Monkey Testing».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *