Что такое тестирование на обезьянах и гориллах? Примеры, Разница
⚡ Умное резюме
В ходе «обезьяньего» тестирования в работающее приложение подаются случайные, незапланированные входные данные, и отслеживается, сохраняются ли они, поэтому сбои, зависания и необработанные состояния выявляются задолго до того, как будет написан какой-либо заранее определенный тестовый случай.
Что такое «обезьянье тестирование»?
Обезьяна тестирование «Обезьянье тестирование» — это метод тестирования программного обеспечения, при котором тестировщик вводит случайные входные данные в приложение без заранее определенных тестовых случаев и проверяет, как приложение себя ведет, в частности, не происходит ли сбой. Цель «обезьяньего тестирования» — обнаружение ошибок и багов посредством экспериментального, не запрограммированного взаимодействия.
Название происходит от простой картинки, представленной ниже.
- При «обезьяньем тестировании» тестировщик (а иногда и разработчик) рассматривается как «обезьяна».
- Если бы обезьяна пользовалась компьютером, она выполняла бы задачи случайным образом, не понимая принципа работы системы.
- Аналогичным образом, тестировщик подает случайные входные данные на тестируемую систему для поиска ошибок, не определяя заранее никаких тестовых случаев.
- В некоторых случаях тестирование на обезьянах направлено на модульное тестирование or Тестирование графического интерфейса.
Что такое тестирование Gorilla?
Гориллы проводят тестирование Это метод тестирования программного обеспечения, при котором один модуль программы многократно тестируется для подтверждения его корректной работы и отсутствия дефектов.
Один и тот же модуль может быть протестирован сто раз или более совершенно одинаковым образом, поэтому «тестирование горилл» также называют «фрустрирующим тестированием». «Обезьянье тестирование» распространяется случайным образом по всему приложению; «тестирование горилл» концентрируется на одном месте, пока оно не сломается или не окажется надежным.
Виды тестирования на обезьянах
Обезьянье тестирование делится на категории в зависимости от того, насколько хорошо тестировщик знаком с системой. Приведенная ниже диаграмма суммирует три типа.
- Глупая обезьяна: Тестировщик ничего не знает о системе или ее функциональности, и нет никакой гарантии, что какие-либо входные данные являются корректными.
- Умная обезьяна: Тестировщик имеет четкое представление о системе, ее назначении и функциональности, перемещается по ней и предоставляет корректные входные данные.
- Блестящая обезьяна: Тестировщик работает, основываясь на реальном поведении пользователей, и может определить, где, вероятно, появятся дефекты.
Обезьянье тестирование против горилльего тестирования против нерегламентированного тестирования
Эксперименты на обезьянах, эксперименты на гориллах и нерегламентированное тестирование Их объединяет непредсказуемый характер, поэтому их часто путают. Две таблицы ниже помогают их различить.
Обезьянье тестирование против горилльего тестирования
| Обезьяна Тестирование | Горилла Тестирование |
|---|---|
| Тестирование проводилось в случайном порядке, без каких-либо заранее определенных тестовых случаев. | Ни предопределенные, ни случайные — одни и те же проверки просто повторяются. |
| Проводится на всей системе и может включать множество тестовых случаев. | Проведено на нескольких выбранных модулях с использованием небольшого количества тестовых примеров. |
| Цель состоит в том, чтобы проверить наличие сбоя системы. | Цель состоит в том, чтобы проверить, правильно ли работает модуль. |
Обезьянье тестирование против нерегламентированного тестирования
| Обезьяна Тестирование | Специальное тестирование |
|---|---|
| Тестирование проводилось в случайном порядке, без каких-либо заранее определенных тестовых случаев. | Выполнено без планирования и документации, поэтому тестовые примеры и требования к программному обеспечению не подготовлены. |
| Тестировщики могут не знать, что это за система и для чего она нужна. | Перед началом тестирования тестировщик должен хорошо понимать систему. |
| Цель состоит в том, чтобы проверить наличие сбоя системы. | Цель состоит в том, чтобы случайным образом разделить систему на подсистемы и проверить их работоспособность. |
Преимущества и недостатки обезьяньего тестирования
Поскольку в этом методе планирование уступает место скорости, его преимущества и недостатки обусловлены одним и тем же свойством.
Преимущества обезьяньего тестирования
- Новые виды насекомых: Тестировщик может работать вне рамок ранее оговоренных сценариев, что приводит к обнаружению ошибок, которые никто не предусмотрел в сценарии.
- Легко выполнить: Сопоставление случайных действий со случайными данными — это бысткий способ проверить систему.
- Less квалифицированные специалисты: Проведение тестирования на обезьянах зачастую возможно и без участия высококвалифицированных специалистов.
- Less дорого: Для его установки и запуска требуется значительно меньше затрат, чем для запуска скриптового пакета.
Недостатки обезьяньего тестирования
- Воспроизвести ошибки бывает сложно: Поскольку входные данные являются случайными, воспроизведение ошибки может быть невозможно без записанного начального значения генератора случайных чисел.
- Less точность: Тестировщик не может точно определить сценарий и не может гарантировать точность того, что было проверено.
- Технические знания по-прежнему полезны: Для того чтобы результаты были значимыми, тестировщикам необходимо хорошее знание предметной области.
- Медленный темп роста относительно урожайности: Процессы могут продолжаться долгое время и при этом выявлять лишь небольшое количество дефектов, оставляя пробелы в системе.
Как проводить тестирование с помощью обезьян.
Тестирование с помощью «обезьяньих лапок» становится намного эффективнее, когда оно осуществляется с помощью специального инструмента, позволяющего запускать его непосредственно на выбранной модели. Android Сборка включает в себя разработку как настольных, так и веб-приложений. Общий процесс выглядит следующим образом:
- Зарегистрируйте тестируемое приложение в инструменте или на выделенном сервере, который будет его запускать.
- Подготовьте необходимые справочные материалы и конфигурацию для создания набора тестов.
- Запустите собранный набор тестов.
- Пусть инструмент записывает свой лог — файл лога «monkey test» записывает каждое сгенерированное событие и его результаты.
- Разрешите выполнение программы до тех пор, пока система не достигнет точки сбоя, в которой проблемное действие будет зафиксировано в журнале.
- Передайте отчет ответственной команде и сохраните тестовые данные для дальнейшего использования.
Сохраняйте все записи в журнале. Случайный запуск будет полезен в дальнейшем только в том случае, если последовательность событий и начальное значение, которое его породило, были сохранены, поэтому управление дефектами можно связать сбой с воспроизводимым входным сигналом.
Инструменты тестирования обезьян
Тестирование с помощью обезьян обычно автоматизировано, поскольку машина может сгенерировать тысячи событий за то время, пока человек генерирует несколько десятков. Наиболее часто используемые варианты:
- UI/Application Exerciser Monkey: инструмент командной строки, встроенный в Android который работает в ADB оболочки и отправляет псевдослучайные потоки пользовательских событий, таких как касания, жесты и нажатия клавиш, а также события системного уровня, на устройство или эмулятор.
- ОбезьянаРаннер: отдельный Python API Это устройство управляет устройствами и эмуляторами с рабочей станции, отправляя определенные команды и делая снимки экрана. Несмотря на название, это не то же самое, что и «обезьянка-тренажер».
- UI Automator и Appium: Генеральная мобильное тестирование Фреймворки, которые можно запрограммировать для запуска полуслучайных последовательностей событий во время сборки.
- Инструменты фаззинга, такие как AFL: Та же идея случайного ввода, примененная к данным, а не к жестам, рассматривается в нечеткое тестирование.
Поддержка инструментов для «обезьяньего» тестирования менее развита, чем для «скриптового» тестирования. автоматизация тестированияПоэтому большинство команд используют универсальный генератор событий в сочетании со своей существующей платформой, а не покупают специализированный продукт.
Когда использовать «обезьянье тестирование»?
Обезьянье тестирование оправдано в конкретных ситуациях, а не в качестве универсальной замены планового тестирования.
Используйте его, когда:
- На ранней стадии разработки необходима недорогая проверка стабильности, прежде чем появятся формальные тестовые примеры.
- Интерфейс отличается высокой интерактивностью — игры, инструменты для рисования, медиаплееры — и предсказать реальное поведение пользователей сложно.
- Вы хотите принять ванну или напряжение запускает программу, которая в течение многих часов отслеживает сбои, утечки памяти и необработанные состояния.
- Релиз прошел проверки, выполненные скриптом, и вам нужна независимая проверка всего, что скрипт не затронул.
Избегайте этого, когда:
- Вам необходимы воспроизводимые доказательства выполнения требования — именно для этого и предназначен письменный документ. прецедент.
- Сборка настолько нестабильна, что каждый запуск немедленно завершается с ошибкой, что скрывает все проблемы за первой же неудачей.
- Времени мало, поскольку случайный запуск не гарантирует обнаружения чего-либо.
На практике наиболее эффективные результаты достигаются при сочетании различных подходов: скриптовые тесты охватывают известные сценарии, исследовательское тестирование Они целенаправленно исследуют неизвестное, а обезьяны, используя экспериментальные методы, атакуют то, что, по их мнению, никогда не должно было произойти.


