Тест-дизайн: классы эквивалентности

Привет, охотники! 🏹

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

Например, для проверки поля возраста установлены границы от 1 до 100 лет. Тогда граничные значения будут 0, 1, 2, 99, 100, 101. То есть числа вокруг максимального и минимального значений

А вот классы эквивалентности шире: отрицательные значения, меньше 1 года, 1-100 лет, больше 100 лет, недопустимые символы (буквы, спец символы). Вы можете спросить: а зачем нам это все делить, если можно проверять подряд все числа, они же явно “придут в голову”?

Тут стоит отметить преимущества этой техники тест-дизайна: 1. Деление на классы эквивалентности происходит по правилу: любое значение из класса приведет к тому же результату. То есть любое любое отрицательное число даст ошибку, а любое число от 1 до 100 позволит сохранить значение

2. Из этого следует, что при правильном разбиении на классы, не нужно проверять каждое значение диапазона (достаточно одного), ведь итог будет одинаковым

3. Лично я деление на классы использую для структуризации проверок, по сути продумываю чек-лист, что должно пройти, а что нет, и все ли я учла

Иногда деление на классы будет не по диапазонам чисел, а по “подходящим” и “не подходящим” файлам, по группам стран, городов

Разберем короткий выдуманный вариант: Налог на владение автомобилем в странах на букву “А” возвращается налогоплательщику в полном объеме, в остальных - не возвращается совсем. Тогда у нас будет всего 2 класса эквивалентности: страны, начинающиеся на букву “А” и все остальные страны

Нет смысла делить на группы по алфавиту и отдельно проверять “А”, “Б”, “В”… ведь для всего, что не “А” должно выполниться условие, где налог не возвращается

В моей работе использование классов эквивалентности происходит уже автоматически, фиксируете ли вы для себя, когда какую технику тест-дизайна применяете вы?

Тест-дизайн: классы эквивалентности | Сетка — социальная сеть от hh.ru