Классы эквивалентности и граничные
условия
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 238/301
Рисунок 2.7.b — Итоговое разбиение на классы эквивалентности значений длины
имени пользователя
Обратите внимание, что области значений [0, 2] и [21, ∞] относятся к разным
классам эквивалентности, т.к. принадлежность длины
строки к этим диапазонам
проверяется отдельными условиями на уровне кода программы.
Граничные условия уже отмечены на рисунке 2.7.b — это 2, 3, 20 и 21. Зна-
чение 0 тоже стоит включить в этот набор на всякий случай, т.к. в программирова-
нии ноль, NULL, нулевой байт и т.п. исторически являются «опасными значениями».
В итоге мы получаем следующий набор входных данных для тест-кейсов
(сами символы для составления строк можно выбирать из набора допустимых сим-
волов случайным образом, но желательно учесть все типы символов, т.е. буквы в
обоих регистрах, цифры, знак подчёркивания).
Таблица 2.7.a — Значения входных данных для тест-кейсов (реакция на
длину
имени пользователя)
Позитивные тест-кейсы
Негативные тест-кейсы
Значе-
ние
AAA
123_zzzzzzzzzzzzzzzz AA
Пустая
строка
1234_zzzzzzzzzzzzzzzz
Поясне-
ние
Строка ми-
нимальной
допустимой
длины
Строка максимальной
допустимой длины
Строка не-
допустимой
длины по
нижней
границе
Строка не-
допустимой
длины,
учтена для
надёжно-
сти
Строка недопустимой
длины по верхней гра-
нице
Осталось решить вопрос с недопустимыми символами. К сожалению, столь
же наглядно, как с длиной, здесь не получится. Даже если подойти строго научно,
т.е. выбрать кодировку и по её кодовой таблице определить
диапазоны кодов сим-
волов (на рисунке 2.7.c приведён пример такого разделения для ASCII-таблицы), у
нас нет никакой гарантии, что символы с кодами из каждого диапазона трактуются
единообразно.
Здесь мы видим ярчайший пример случая, в котором тестирование по ме-
тоду белого ящика сильно облегчило бы нам жизнь. Если бы мы видели,
как в коде приложения реализована проверка на допустимые и недопусти-
мые символы, мы могли бы подобрать очень показательные значения
входных данных.
Рисунок 2.7.c — Неудачный способ поиска классов эквивалентности для наборов
допустимых и недопустимых символов (коды символов
приведены по ASCII-
таблице)
0 2
3
20
21
Допустимо
Недопустимо
Недопустимо
Цифры
48
0
47
57
58
65
90
64
91
96
97
122
94
95
123
255
Буквы A-Z
Буквы a-z
_
Классы эквивалентности и граничные условия
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 239/301
Раз оказалось, что по кодам символов подбирать классы эквивалентности в
нашем случае нерационально, посмотрим на ситуацию по-другому (и
намного
проще). Поделим символы на недопустимые и допустимые, а последние, в
свою
очередь, — на группы (см. рисунок 2.7.d).
Рисунок 2.7.d — Классы эквивалентных допустимых и недопустимых символов
Интересующие нас комбинации допустимых символов (с представителями
всех групп) мы уже учли при проверке реакции приложения на имена пользователя
допустимых и недопустимых длин, потому остаётся учесть только вариант с допу-
стимой длиной строки, но недопустимыми символами (которые
можно выбирать
случайным образом из соответствующего набора). В таблицу 2.7.a добавим одну
колонку и получим таблицу 2.7.b.
Таблица 2.7.b — Значения всех входных данных для тест-кейсов
Достарыңызбен бөлісу: