Этот урок будет первым из серии уроков, которые будут посвящены техникам тест-дизайна. Сегодня мы рассмотрим такие техники тест-дизайна, как классы эквивалентности или эквивалентное разделение и анализ граничных значений, узнаем, что же за зверь такой тест-дизайн, а также поговорим о разницы между тест-дизайном и тест-анализом. Классы эквивалентности и анализ граничных значений это пожалуй самая популярная тема, которую спрашивают на собеседовании.
Краткий конспект урока
Тест-дизайн
Тест-дизайн — это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест-кейсы) в соответствии с определёнными ранее критериями качества и целями тестирования.
Тест-дизайнер должен выстроить процесс тестирования таким образом, чтобы за минимальное количество тест-кейсов обеспечить оптимальное покрытие тестируемого приложения.
Эквивалентное разделение
Эквивалентный класс — такой набор тестовых значений, с которым система предположительно должна вести себя одинаково
Эквивалентны — результат один
Пример: Регистрация на сайте знакомств + 18 лет:
- Можно зарегистрироваться: x > 18; (18, 19, 25, 53, 100 и т д)
- Нельзя зарегистрироваться: x < 18; (17, 15, 10, 0, 10 и т д)
Достаточно двух проверок для меньше 18, допустим 9 и больше 18, допустим 60, стараемся брать значения из середины класса.
Пример: Тз для программы по найму персонала:
Условия отбора:
- при возрасте от 0 до 16 лет – не нанимать;
- при возрасте от 16 до 18 лет – можно нанять только на part time;
- при возрасте от 18 до 55 лет – можно нанять на full time;
- при возрасте от 55 до 99 лет – не нанимать.
! Видим конфлит границ, 16 входит в два дипазона, 18 в два и 55 в два.
Исправляем это и разделяем на классы:
- класс эквивалентности NO: 0-16;
- класс эквивалентности PART: 17-18;
- класс эквивалентности FULL: 19-55;
- класс эквивалентности NO: 56-99.
Таким образом, у нас остается только 4 позитивных тест-кейса вместо первоначальных 100 (0-99), например:
- 10 – не нанимать;
- 17 – нанимать на неполный день;
- 40 – нанимать на полный день;
- 80 – не нанимать.
Анализ граничных значений
Проверка значений, находящихся на границах классах эквивалентности. На каждой границе диапазона следует проверить по три значения:
- граничное значение
- значение перед границей
- значение после границы
Пример: Тз для получения скидки в кинотеатре:
Пользователь должен ввести свой возраст и если ему меньше 18 лет, то он получит скидку:
0 –——————————— 18
- Первый класс 0 — 18
- Меньше 0
- Больше 18
Проверяем:
- внутри диапазона (7) — проверка на класс эквивалентности внутри класса
- cлева (-5) — проверка на класс эквивалентности меньше 0
- cправа (21) — проверка на класс эквивалентности больше 18
- границы (0,18) — проверка на граничные значения, проверяем границы
- граница -1 (-1, 1) — проверка на граничные значения, проверяем значение перед границей, для 0 это будет -1 и значение после границы, для 0 это будет 1
- граница +1 (17, 19) — проверка на граничные значения, проверяем значение перед границей, для 18 это будет 17 и значение после границы, для 18 это будет 19
! Но, есть нюанс, согласно документации по ISQTB нам нужно тестировать значения перед границей и после, но в самих же тестах по ISQTB встречается такая ситуация, что значения перед границей будут входить в технику тест-дизайна классы эквивалентности, а не в анализ граничных значений. Подробнее об этом я говорю в видео-уроке.
Анализ граничных значений
- Логические границы
- Технологические границы
- Произвольные границы
Логическая граница
- В минуте 60 секунд
- В 1 метре 100 сантиметров
- Не можем купить 1-1,5 или меньше 0 пар обуви
- Не можем купить меньше 0 наушников или 1,5 наушника
Технологическая граница
- Пытаемся вставить огромный текст в поле или огромное количество девяток
- Пытаемся выйдя за границы сломать систему
- Главное чтобы система не упала
Произвольная граница
- Согласно техническому заданию
Классы эквивалентности
(всегда думаем о том, что пользователь может быть в разном состоянии в разной на сущности и это нужно проверить)
- Пользователь авторизован / нет
- Пользователь с аватаркой / нет
- У пользователя были платежи / нет
- Пользователь давно зарегистрирован / нет
- Пользователь в режиме супервизор / нет
- Пользователь администратор/ нет
Тест- анализ это что мы будем тестировать.
А тест-дизайн, как мы будем тестировать.
!При проектировании тест-кейсов всегда думайте о том, как привнести больше смысла в меньшее число проверок!