Тестирование на обезьянах
При тестировании программного обеспечения обезьянье тестирование — это метод, при котором пользователь тестирует приложение или систему, предоставляя случайные входные данные и проверяя поведение или проверяя, произойдет ли сбой приложения или системы. Тестирование на обезьянах обычно реализуется в виде случайных автоматизированных модульных тестов .
Хотя источник названия «обезьяна» неизвестен, некоторые полагают, что это название связано с теоремой о бесконечных обезьянах . [1] в котором говорится, что обезьяна, нажимающая случайным образом клавиши на клавиатуре пишущей машинки в течение бесконечного промежутка времени, почти наверняка напечатает заданный текст, например, полное собрание сочинений Уильяма Шекспира . Некоторые другие полагают, что название происходит от классического приложения Mac OS «The Monkey», разработанного Стивом Кэппсом до 1983 года. Оно использовало перехватчики журналирования для подачи случайных событий в программы Mac и использовалось для проверки ошибок в MacPaint . [2]
Monkey Testing также включен в Android Studio как часть стандартных инструментов стресс-тестирования . [3]
Виды тестирования на обезьянах
[ редактировать ]Тестирование на обезьянах можно разделить на тесты на умных обезьянах и тесты на глупых обезьянах .
Умные тесты на обезьянах
[ редактировать ]Умных обезьян обычно идентифицируют по следующим характеристикам: [4]
- Иметь краткое представление о приложении или системе
- Знать свое местоположение, куда он может идти и где он был.
- Знать свои собственные возможности и возможности системы
- Сосредоточьтесь на том, чтобы сломать систему
- Сообщайте об обнаруженных ошибках
Некоторых умных обезьян еще называют гениальными обезьянами . [ нужна ссылка ] которые выполняют тестирование в зависимости от поведения пользователя и могут оценить вероятность возникновения определенных ошибок.
Тесты на тупых обезьян
[ редактировать ]Глупых обезьян, также известных как «невежественные обезьяны», обычно характеризуют по следующим характеристикам: [ нужна ссылка ]
- Не иметь знаний о приложении или системе.
- Не знаю, действительны ли их вводимые данные или поведение.
- Не знаю ни своих возможностей, ни возможностей системы, ни хода выполнения приложения.
- Может находить меньше ошибок, чем умные обезьяны, но также может находить важные ошибки, которые умным обезьянам трудно обнаружить.
Преимущества и недостатки
[ редактировать ]Преимущества
[ редактировать ]Тестирование на обезьянах — эффективный способ выявить некоторые нестандартные ошибки. Поскольку тестируемые сценарии обычно носят разовый характер , обезьянье тестирование также может быть хорошим способом выполнения нагрузочного и стресс-тестирования. Присущая тестированию на обезьянах случайность также делает его хорошим способом обнаружения серьезных ошибок, которые могут сломать всю систему. Настройка обезьяньего тестирования проста, поэтому подходит для любого приложения. Умные обезьяны, если у них правильно настроена точная модель состояния, могут действительно хорошо находить различные виды ошибок.
Недостатки
[ редактировать ]Случайность тестирования на обезьянах часто делает обнаруженные ошибки трудными или невозможными для воспроизведения. Неожиданные ошибки, обнаруженные при тестировании на обезьянах, также могут оказаться сложными и трудоемкими для анализа. В некоторых системах тестирование на обезьянах может продолжаться в течение длительного времени, прежде чем будет обнаружена ошибка. Для умных обезьян способности во многом зависят от предоставленной модели состояния, а разработка хорошей модели состояния может оказаться дорогостоящей. [1]
Похожие методы и различия
[ редактировать ]Хотя тестирование на обезьянах иногда рассматривается так же, как нечеткое тестирование. [5] и эти два термина обычно используются вместе, [6] некоторые считают, что они отличаются, утверждая, что тестирование на обезьянах — это скорее случайные действия, а нечеткое тестирование — это скорее случайный ввод данных. [7] Тестирование на обезьянах также отличается от специального тестирования тем, что специальное тестирование выполняется без планирования и документации, а цель специального тестирования состоит в том, чтобы случайным образом разделить систему на части и проверить их функциональность, чего не происходит в обезьяньем тестировании. тестирование.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Что такое тестирование на обезьянах | ИТ-обучение и консалтинг – Exforsys» . www.exforsys.com . Проверено 22 апреля 2016 г.
- ^ «Folklore.org: Обезьяна жива» . www.folklore.org . Проверено 22 апреля 2016 г.
- ^ «Обезьяна-тренажер пользовательского интерфейса/приложений | Разработчики Android» . Developer.android.com . Проверено 25 апреля 2016 г.
- ^ Паттон, Рон (2001). «Случайное тестирование: обезьяны и гориллы». Тестирование программного обеспечения . Индианаполис, Индиана: Сэмс. ISBN 978-0-672-31983-9 .
- ^ Браммайер, Роберт; Лонсинг, Флориан; Бьер, Армин (11 июля 2010 г.). Стрихман, Офер; Зейдер, Стефан (ред.). Автоматизированное тестирование и отладка решателей SAT и QBF . Конспекты лекций по информатике. Шпрингер Берлин Гейдельберг. стр. 44–57. CiteSeerX 10.1.1.365.777 . дои : 10.1007/978-3-642-14186-7_6 . ISBN 9783642141850 .
- ^ «Нечеткое тестирование в Delphi — DelphiTools» . www.delphitools.info . Проверено 22 апреля 2016 г.
- ^ «Разница между «фазз-тестированием» и «обезьяньим тестом» » . stackoverflow.com . Проверено 22 апреля 2016 г.