September 22

Топ-3 техники тест-дизайна для новичков

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

Сегодня мы подробно разберём:

1️⃣ Классы эквивалентности

2️⃣ Граничные значения

3️⃣ Попарное тестирование


1️⃣ Классы эквивалентности (Equivalence Partitioning)

📌 Суть:

Мы делим все возможные данные на группы (классы), где система реагирует одинаково. Проверяем по одному представителю из каждой группы.


🔹 Пример 1. Поле «Возраст»

Правило: возраст должен быть целым числом от 0 до 120.

Что проверяем:

  • что система принимает корректные значения;
  • что система правильно отбрасывает неправильные значения.

Тесты и объяснения:

  • -1 → невалидный.
    • Зачем: проверить, что отрицательный возраст система не примет.
    • Какая ошибка возможна: если разработчик не поставил проверку «≥ 0», система может принять -1.
  • 0 → валидный минимум.
    • Зачем: проверить, что граничное значение проходит.
    • Ошибка: может быть отклонено из-за ошибки в условии (> 0 вместо >= 0).
  • 37 → валидное «середина диапазона».
    • Зачем: показать, что обычные данные работают как надо.
  • 120 → валидный максимум.
    • Зачем: проверить верхнюю границу.
    • Ошибка: программа может обрезать на 119.
  • 121 → невалидный.
    • Зачем: проверить, что слишком большой возраст не принимается.
  • "abc" → невалидный формат.
    • Зачем: убедиться, что буквы не проходят.
    • Ошибка: программа может случайно преобразовать строку в число и принять её.

🔹 Пример 2. Пароль

Правило: длина 8–20 символов, обязательно хотя бы одна цифра и одна заглавная буква.

Тесты и объяснения:

  • "Abc123" (7 символов) → ошибка.
    • Зачем: проверить нижнюю границу по длине.
    • Ошибка: если проверка стоит неправильно, система примет короткий пароль.
  • "Abcdefg1" (8 символов, есть цифра и заглавная) → успех.
    • Зачем: убедиться, что минимально допустимый пароль проходит.
  • "abcdefg1" (нет заглавной буквы) → ошибка.
    • Зачем: проверить правило на заглавную букву.
    • Ошибка: система может принять пароль без заглавных.
  • "ABCDEFGH" (нет цифры) → ошибка.
    • Зачем: проверить правило на наличие цифры.
  • "Abcdefg1!" (если ! запрещён) → ошибка.
    • Зачем: проверить правило на допустимые символы.
  • строка из 21 символа → ошибка.
    • Зачем: проверить верхнюю границу по длине.

🔹 Пример 3. Скидка по возрасту

Правило:

  • до 16 лет — регистрация запрещена;
  • 16–35 — регистрация без скидки;
  • старше 35 — регистрация со скидкой.

Тесты и объяснения:

  • 15 → ошибка.
    • Зачем: проверить, что дети не могут зарегистрироваться.
  • 16 → успех, без скидки.
    • Зачем: проверить нижнюю границу.
  • 35 → успех, без скидки.
    • Зачем: проверить верхнюю границу.
  • 36 → успех, со скидкой.
    • Зачем: убедиться, что программа правильно «переключает» логику на скидку.

2️⃣ Граничные значения (Boundary Value Analysis)

📌 Суть:

Ошибки чаще всего случаются на границах диапазонов (например, система думает, что максимум = 119, а не 120). Поэтому мы проверяем значения на границе и рядом с ней.


🔹 Пример 1. Возраст

Правило: от 0 до 120.

Тесты:

  • -1 → ошибка (ниже минимума).
  • 0 → успех (минимум).
  • 120 → успех (максимум).
  • 121 → ошибка (выше максимума).

Какие ошибки поймаем:

  • разработчик написал if (age > 0 && age < 120) → тогда 0 и 120 не пройдут.

🔹 Пример 2. Пароль

Правило: длина 8–20.

Тесты:

  • 7 символов → ошибка.
  • 8 символов → успех.
  • 20 символов → успех.
  • 21 символ → ошибка.

Какие ошибки поймаем:

  • система может допустить пароли меньше 8 символов;
  • система может обрезать пароли на 19 символах.

🔹 Пример 3. Цена товара

Правило: от 0.00 до 9999.99.

Тесты:

  • -0.01 → ошибка (меньше нуля).
  • 0.00 → успех (минимум).
  • 9999.99 → успех (максимум).
  • 10000.00 → ошибка (выше максимума).

Какие ошибки поймаем:

  • если проверка написана <= 10000, то система примет 10000.00, что неверно;
  • если округление работает неправильно, то 9999.999 может пройти.

🔹 Пример 4. Даты бронирования

Правило:

  • check-in не в прошлом;
  • check-out > check-in;
  • не дальше 365 дней от сегодня.

Тесты:

  • check-in вчера → ошибка (дата в прошлом).
  • check-in сегодня, check-out сегодня → ошибка (0 ночей).
  • check-in сегодня, check-out завтра → успех (валидно).
  • check-in +365, check-out +366 → успех (граница).
  • check-in +366 → ошибка (за пределами года).

3️⃣ Попарное тестирование (Pairwise Testing)

📌 Суть:

Когда параметров много, комбинаций получается слишком много. Проверить все — невозможно.

Пример:

  • ОС: Windows, macOS, Linux
  • Браузер: Chrome, Firefox, Edge
  • Авторизация: Гость, Вход

Полный перебор = 18 тестов.

Но баги обычно проявляются в парах (например, «Windows + Firefox»).

👉 Значит, достаточно составить набор так, чтобы каждая пара встретилась хотя бы раз. Тогда тестов будет не 18, а около 9.


🔹 Пример 1. Интернет-магазин

Параметры:

  • Платформа: Web, iOS, Android
  • Доставка: Курьер, Самовывоз, Постамат
  • Оплата: Карта, PayPal, Наличные
  • Купон: Да, Нет

Полный перебор = 54 теста.

Pairwise покрывает всё за 10–12 тестов.

Что проверяем:

  • все пары параметров (например, «Android + PayPal», «Курьер + Купон»);
  • невозможные пары должны быть исключены (например, PayPal может быть недоступен для Android).

🔹 Пример 2. Камера на телефоне

Параметры:

  • Режим: Фото, Видео, Портрет
  • Флэш: Авто, Вкл, Выкл
  • Стабилизация: Вкл, Выкл

Полный перебор = 18 тестов.

Pairwise = 9 тестов.

Что проверяем:

  • каждая пара (например, «Фото + Флэш=Авто», «Видео + Стабилизация=Выкл») встречается хотя бы раз;
  • система правильно работает с сочетаниями.

📝 Когда использовать

  • 🟢 Классы эквивалентности — чтобы быстро выбрать «типичные» примеры и сократить количество тестов.
  • 🟡 Граничные значения — чтобы проверить самые рискованные места: минимума и максимума.
  • 🔵 Попарное тестирование — чтобы протестировать сложные комбинации параметров, не перебирая всё подряд.

📝 Шпаргалка по 3 техникам тест-дизайна

🔹 Классы эквивалентности (EP)

Разбей данные на группы, где система ведёт себя одинаково.

👉 Тестируй по одному значению из каждой группы.

🔹 Граничные значения (BVA)

Ошибки чаще всего на границах.

👉 Проверь: минимум-1, минимум, середина, максимум, максимум+1.

🔹 Попарное тестирование (Pairwise)

При множестве параметров полный перебор невозможен.

👉 Построй набор так, чтобы каждая пара значений встречалась хотя бы один раз.


Если у вас пока еще нет понимания:

- Подойдет ли вам профессия QA, справитесь ли вы с задачами;

- Как будет выглядеть ваш самостоятельный путь до оффера, без ментора;

- Хотите посмотреть как я преподаю и доношу информарцию;

То я приглашаю вас в закрытый чат моего бесплатного предобучения, там лежит 3 урока:

Урок 1. О профессии тестировщик на пальцах:

-  про функционал QA на простых примерах,

-  про цикл задачи и работу в таск трекере,

- про взаимодействие с командой

Урок 2. Хард скиллы или техническая часть требований к QA:

- Полный список инструментов и стека

- Показываю задачи на практике

- Различные техники тест дизайна

Урок 3. Резюме и трудоустройство.

- Почему найм в айти сломался

- Какие шаги приведут к офферу и что делать человеку кто хорошо выучился но так не нашел работу

Ссылка на чат https://t.me/+t4f3nTcs6hUxMjRi