Pepelen
Тестирование ПО: профессия QA с нуля

Lesson

Урок 1. Классы эквивалентности и граничные значения

Сокращать число проверок классами эквивалентности и находить численные границы граничными значениями.

1 / 6

Классы эквивалентности и граничные значения

Зачем группировать и где искать ошибки

Представьте поле ввода возраста, которое принимает числа от 1 до 100. Проверять каждое из ста значений — слишком долго. Техника классов эквивалентности говорит: данные, которые программа обрабатывает одинаково, образуют один класс. Достаточно взять одного представителя от каждого класса. Здесь три класса: невалидные значения меньше 1 (например, 0 или отрицательные), валидный диапазон 1–100 (например, 50), невалидные значения больше 100 (например, 150). Итого вместо ста проверок — три. Однако именно на границах классов программисты допускают ошибки чаще всего: написали «>» вместо «>=», и граничное значение обработалось неверно. Техника граничных значений дополняет классы эквивалентности: для каждой границы диапазона проверяют само граничное значение и соседние точки. Для диапазона 1–100 это: 0 (ниже минимума), 1 (минимум), 2 (сразу выше минимума), 99 (сразу ниже максимума), 100 (максимум), 101 (выше максимума). Шесть значений покрывают все опасные точки. Типичная ошибка новичка — проверить только «середину» диапазона (например, 50) и решить, что поле работает. Граничные значения при этом остаются непроверенными, и баг на границе уходит в продакшн.
Lesson notes
Зачем группировать и где искать ошибки
Представьте поле ввода возраста, которое принимает числа от 1 до 100. Проверять каждое из ста значений — слишком долго. Техника классов эквивалентности говорит: данные, которые программа обрабатывает одинаково, образуют один класс. Достаточно взять одного представителя от каждого класса. Здесь три класса: невалидные значения меньше 1 (например, 0 или отрицательные), валидный диапазон 1–100 (например, 50), невалидные значения больше 100 (например, 150). Итого вместо ста проверок — три. Однако именно на границах классов программисты допускают ошибки чаще всего: написали «>» вместо «>=», и граничное значение обработалось неверно. Техника граничных значений дополняет классы эквивалентности: для каждой границы диапазона проверяют само граничное значение и соседние точки. Для диапазона 1–100 это: 0 (ниже минимума), 1 (минимум), 2 (сразу выше минимума), 99 (сразу ниже максимума), 100 (максимум), 101 (выше максимума). Шесть значений покрывают все опасные точки. Типичная ошибка новичка — проверить только «середину» диапазона (например, 50) и решить, что поле работает. Граничные значения при этом остаются непроверенными, и баг на границе уходит в продакшн.
Урок 1. Классы эквивалентности и граничные значения — Тестирование ПО: профессия QA с нуля