Что такое техника тест-дизайна «Угадывание ошибок» (Error Guessing)?

Ответ

Error Guessing — это неформальная техника тест-дизайна, при которой тестировщик использует свой опыт, интуицию и знание типичных ошибок для предсказания сценариев, которые могут вызвать сбой в системе.

Когда применяется:

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

Пример для поля ввода возраста: На основе опыта тестировщик может проверить следующие проблемные значения:

def validate_age_input(input_value):
    """Функция валидации, которую тестируем."""
    try:
        age = int(input_value)
        if age < 0 or age > 150:
            return "Ошибка: возраст вне допустимого диапазона"
        return "Успешно"
    except ValueError:
        return "Ошибка: введите целое число"

# Сценарии для Error Guessing:
test_cases = [
    "",           # Пустой ввод
    "-5",         # Отрицательное число
    "abc",        # Нечисловые символы
    "12.5",       # Дробное число
    "999",        # Неправдоподобно большое число
    "0",          # Граничное значение
    "150",        # Верхняя граница
    " 21 ",       # Пробелы вокруг
    "0012"        # Ведущие нули
]

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

Ответ 18+ 🔞

Да ты посмотри, что за дичь! Сидит тестировщик, блядь, смотрит на поле "возраст" и думает: "Ну-ка, сука, где тут у нас слабое место?" Это и есть Error Guessing, ёпта! Никаких таблиц, никаких формальностей — чистая интуиция и знание, где обычно всё ебётся.

Когда это впендюривают:

  • Когда время поджимает, как удав, и надо быстро найти что-то пиздатое.
  • Когда уже проверили всё по учебнику, а душа просит похачить систему по-настоящему.
  • В тех модулях, которые меняются чаще, чем перчатки у карманника.

Вот смотри, пример для возраста, блядь: Ты же знаешь, что программисты иногда такие... Ну, в общем, доверия к ним — ноль ебать. Поэтому опытный человек сразу полезет проверять не "25" или "30", а вот такую подборку говна:

def validate_age_input(input_value):
    """Функция валидации, которую тестируем."""
    try:
        age = int(input_value)
        if age < 0 or age > 150:
            return "Ошибка: возраст вне допустимого диапазона"
        return "Успешно"
    except ValueError:
        return "Ошибка: введите целое число"

# А вот куда мы сейчас ткнем свою грязную, но опытную ручонку:
test_cases = [
    "",           # Просто нажал Enter, сука. Что будет?
    "-5",         # Мне минус пять лет, я из будущего, блядь.
    "abc",        # А вдруг я не цифра, а буква? Проверим-ка.
    "12.5",       # Полтора года — это полтора или ошибка?
    "999",        # Я древний маг, мне 999 лет. Пропустите.
    "0",          # Только что родился, уже заполняю форму.
    "150",        # Верхняя планка, тут всегда весело.
    " 21 ",       *Пробелы вокруг — классика жанра, блядь.*
    "0012"        *Ведущие нули — любимая засада.*
]

А в чём сила-то, брат? Да в том, что эта хитрая жопа-техника часто вылавливает такие косяки, которые от всех этих правильных таблиц и разбиений благополучно прячутся. Программист может быть уверен, что всё покрыл, а ты ему — раз! — и подсовываешь " 21 " с пробелами, и он такой: "Ёбта...". Вот и вся магия.