Введение
Методика, при которой пользователь тестирует приложение или систему, вводя случайные данные – это методология тестирования программного обеспечения. В тестировании программного обеспечения, "обезьянье тестирование" (monkey testing) – это техника, при которой пользователь тестирует приложение или систему, предоставляя случайные входные данные и проверяя её поведение, или выясняя, не приведет ли это к сбою в работе приложения или системы. Обычно обезьянье тестирование реализуется в виде случайных автоматизированных модульных тестов. Хотя происхождение названия "обезьянье тестирование" неясно, некоторые полагают, что оно связано с теоремой о бесконечной обезьяне, которая утверждает, что обезьяна, случайным образом нажимающая клавиши на пишущей машинке в течение бесконечного времени, почти наверняка напечатает заданный текст, например, полное собрание сочинений Уильяма Шекспира. Другие считают, что название происходит от классического приложения Mac OS "The Monkey", разработанного Стивеном Каппсом до 1983 года. Оно использовало журнальные перехватчики для передачи случайных событий в программы Mac и применялось для поиска ошибок в MacPaint. Обезьянье тестирование также включено в Android Studio как часть стандартного набора инструментов для стресс-тестирования.
the software testing methodology
In software testing, monkey testing is a technique where the user tests the application or system by providing random inputs and checking the behavior, or seeing whether the application or system will crash. Monkey testing is usually implemented as random, automated unit tests. While the source of the name "monkey" is uncertain, it is believed by some that the name has to do with the infinite monkey theorem, which states that a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time will almost surely type a given text, such as the complete works of William Shakespeare. Some others believe that the name comes from the classic Mac OS application "The Monkey" developed by Steve Capps prior to 1983. It used journaling hooks to feed random events into Mac programs, and was used to test for bugs in MacPaint. Monkey Testing is also included in Android Studio as part of the standard testing tools for stress testing.
Виды испытаний на обезьянах
Тестирование методом "обезьяны" можно разделить на умные тесты "обезьяны" и тесты "обезьяны", выполняемые случайным образом.
Преимущества
Тестирование методом "обезьяны" – эффективный способ выявления некоторых неочевидных ошибок. Поскольку тестируемые сценарии обычно создаются спонтанно, тестирование методом "обезьяны" также может быть хорошим способом проведения нагрузочного и стресс-тестирования. Присущая методу "обезьяны" случайность также делает его полезным для обнаружения критических ошибок, способных привести к сбою всей системы. Настройка тестирования методом "обезьяны" проста, поэтому подходит для любого приложения. "Умные обезьяны", при правильной настройке с точной моделью состояния, могут быть весьма эффективны в поиске различных типов дефектов.
Недостатки
Из-за случайности тестирования методом "обезьяны" часто обнаруженные ошибки бывает трудно или невозможно воспроизвести. Неожиданные ошибки, выявленные при таком тестировании, также могут быть сложными и занимать много времени при анализе. В некоторых системах тестирование методом "обезьяны" может длиться долго, прежде чем будет обнаружена ошибка. Для "умных обезьян" эффективность сильно зависит от предоставленной модели состояний, а разработка хорошей модели состояний может быть дорогостоящей. Эти два термина часто используются вместе, однако некоторые считают, что они различаются, утверждая, что тестирование методом "обезьяны" больше связано со случайными действиями, а фаззинг – со случайным вводом данных. Тестирование методом "обезьяны" также отличается от ad hoc тестирования тем, что ad hoc тестирование проводится без планирования и документирования, а его цель – случайное разделение системы на подкомпоненты и проверка их функциональности, чего не происходит при тестировании методом "обезьяны".