Что такое Monkey testing?

«Что такое Monkey testing?» — вопрос из категории Техники тест-дизайна, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Monkey testing (или «обезьянье тестирование») — это техника тестирования, при которой приложение подвергается случайным, бессистемным входным данным или действиям без заранее определенных тест-кейсов. Цель — проверить устойчивость системы и обнаружить критические сбои, такие как падения (crashes), утечки памяти или зависания.

Ключевые характеристики:

  • Случайность: Действия (клики, ввод, жесты) генерируются случайным образом.
  • Отсутствие сценария: Тест не знает о структуре приложения.
  • Фокус на надежность: Основная задача — «сломать» приложение, а не проверить функциональность.

Пример псевдокода для GUI-приложения:

import random
import time

actions = ["click", "input_text", "swipe", "press_back"]

for i in range(10000):
    action = random.choice(actions)
    x, y = random.randint(0, 1080), random.randint(0, 1920)

    if action == "click":
        device.click(x, y)
    elif action == "input_text":
        device.input(random_string())
    # ...
    time.sleep(random.uniform(0.1, 0.5))
Плюсы и минусы: Плюсы Минусы
Может найти неочевидные, редкие баги. Баги сложно воспроизвести.
Не требует глубокого знания системы. Низкое покрытие с точки зрения функциональности.
Полезно для стресс-тестирования UI. Требует тщательного анализа логов и мониторинга ресурсов.

Разновидности: Smart Monkey (знает структуру приложения) и Dumb Monkey (полностью случайные действия).