Продолжаем изучать Техники тест-дизайна. В прошлой статье мы изучили Классы эквивалентности.
При работе с линейными классами эквивалентности, представляющими собой интервалы значений, тестировщик должен чётко определить границы этих интервалов, чтобы правильно классифицировать значения.
У каждого интервала есть начало и конец, и именно здесь существует повышенный риск возникновения ошибок, поскольку разработчик может некорректно указать знак неравенства в коде или задать неправильную границу интервала.
Значение, находящееся на границе между двумя классами эквивалентности, называется граничным.
Техника анализа граничных значений — проверка поведения продукта на крайних (граничных) значениях входных данных.
При написании тестов необходимо обязательно использовать граничные значения, поскольку именно на границах классов эквивалентности чаще всего возникают ошибки.
К примеру, если в требованиях к сайту указано, что возраст пользователя должен быть больше 15 лет, тестировщик должен уточнить у аналитика, относится ли значение 15 лет к допустимому диапазону. После этого необходимо проверить, действительно ли это условие реализовано в приложении, поскольку разработчик мог неверно понять требования и установить ограничение в 16 лет («>15» вместо «>=15»).
🟢Как можно выделить граничные значения:
- Разбить данные на классы эквивалентности.
- Определить границы этих классов.
- Определить, к какому классу принадлежит каждая граница.
- Протестировать значения до границы, на границе и сразу после неё для каждой границы.
🟢Давайте разберём на примере.
Подсчёт комиссии при отмене бронирования отеля производится в зависимости от времени отмены на следующих условиях:
- за 5 суток до заселения комиссия составляет 0% от стоимости;
- меньше 5 суток, но больше 24 часов — 50% от стоимости;
- меньше 24 часов, но до заезда — 75% от стоимости;
- после времени заезда — 100% от стоимости брони
Теперь нужно определиться с проверками.
Определяем граничные классы эквивалентности:
- 1 класс эквивалентности — 30 - 5 суток
- 2 класс эквивалентности — 4 суток - 24 часов
- 3 класс эквивалентности — 23 часа - 0 часов
Определяем, к какому классу относится каждая граница:
- 1 класс эквивалентности — 5;
- 2 класс эквивалентности — 24 часа;
- 3 класс эквивалентности — 0 часов;
Для каждой границы выделяем три значения:
{6, 5, 4}, {25 часов, 24 часа, 23 часа}, {1 час, 0 часов, время после бронирования},
Тут ещё нужно уточнить у аналитиков до какой степени точности мы проводим границы - минуты, секунды. К примеру 24 часа и 1 минута, будет относится к какой комиссии? Если по часам, то комиссия 75%, а если по минутам, то уже 50% - а это большой разбег.
Если поминутно, то тесты должны проверить:
- Отмену брони за 4 дня 23 часа 59 минут, отмену брони ровно за 5 суток 00 минут, отмену брони за 5 суток и 01 минуту.
- Отмену брони за 23 часа 59 минут, за 24 часа 00 минут, за 24 часа 01 минуту.
- Отмену брони за 1 минуту, за 0 минут, через 1 минуту после.
- Также как тестировщик нужно проверить отправку на сервер через API негативных проверок - { -36, 1001, FRED, %$#@}
Техника анализа граничных значений действительно является продолжением техники эквивалентного разбиения и применяется, когда классы состоят из упорядоченных числовых значений. Она помогает определить наиболее критичные значения для тестирования, проверяя работу системы на границах классов. Это важная техника, позволяющая выявить потенциальные ошибки, связанные с обработкой граничных значений, что делает её одной из ключевых в арсенале тестировщика.
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!