Читайте также: |
|
Как показывает опыт, тесты, исследующие граничные условия, приносят большую пользу, чем тесты, которые их не исследуют. Граничные условия – это ситуации, возникающие непосредственно на, выше или ниже границ входных и выходных классов эквивалентности.
Границы классов эквивалентности бывают:
закрытые (100 ≤ N < 999)
открытые (1000 ≤ N)
Анализ граничных значений имеет два подхода:
первый – когда граница соседних эквивалентных классов проходит между ними и не принадлежит ни одному из классов, в данном случае мы имеем два граничных значения
второй – когда граница принадлежит одному из классов, в этом случае необходимо проверить три значения – саму границу, значение «справа» от границы и значение «слева» от границы
Анализ граничных значений отличается от эквивалентного разбиения в двух отношениях:
1. Выбор любого элемента в классе эквивалентности в качестве представительного при анализе граничных значений осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.
2. При разработке тестов рассматривают не только входные условия (пространство входов), но и пространство результатов (т. е. выходные классы эквивалентности).
Суть метода заключается в выполнении следующих правил:
1. Если входное условие, то есть условие ввода, задает диапазон чисел X [1, 100], то необходимо создать тесты:
- для значений 1 и 100;
- для значения чуть левее 1 и чуть правее 100.
Например,
x1 = 1.0
x2 = 100.0
x3 = 0.9
x4 = 100.1.
2. Если условие ввода задает дискретное множество значений, то необходимо создать тесты:
- для проверки минимального и максимального значений;
- для значения чуть меньше минимума и чуть больше максимума.
Например, если X [2, 5, 7], то
x1 = 2
x2 = 7
x3 = 1
x4 = 8.
3. Ранее названное правило 1 применяется к условиям области вывода. Например: выходной (формируемый) файл содержит 1000 записей. Поэтому нужно создать тесты для создания соответственно 0, 1, 1000 и 1001 записи.
Например, если программа вычисляет ежемесячный расход и если минимум расхода составляет $0.00, а максимум – $1165.25, то построить тесты, которые вызывают расходы с $0.00 и $1165.25. Кроме того, построить, если это возможно, тесты, которые вызывают отрицательный расход и расход больше 1165.25 дол.
4. Использовать второе правило для каждого выходного условия. Например, если система информационного поиска отображает на экране наиболее релевантные статьи в зависимости от входного запроса, но никак не более четырех рефератов, то построить тесты, такие, чтобы программа отображала нуль, один и четыре реферата, и тест, который мог бы вызвать выполнение программы с ошибочным отображением пяти рефератов.
5. Если вход или выход программы есть упорядоченное множество (например, последовательный файл, линейный список, таблица), то сосредоточить внимание на первом и последнем элементах этого множества. Например, если задан на языке Си массив целых чисел, состоящий из 100 элементов, т.е. int a[100], то необходимо создать тесты для проверки соответственно a[-1], a[0], a[99], a[100] элементов массива.
Пример 1
В зависимости от суммы на текущем счету в банке, ежемесячно насчитывается бонус:
От 100 до $1000 (включительно): +3%
От $1000 до $10 000: +5%
$10 000 и больше: +7%
Правило “хорошего тона”
При наличии нескольких полей (переменных):
минимальные значения валидных границ объединяются в один тест-кейс
максимальные значения валидных границ объединяются в другой тест-кейс
невалидные границы тестируются отдельно, как и в случае с невалидными классами
Пример2: программа поиска делением пополам.
Поиск выполняется в массиве элементов М, возвращается индекс I элемента массива, значение которого соответствует ключу поиска Key.
Предусловия:
1) массив должен быть упорядочен;
2) массив должен иметь не менее одного элемента;
3) нижняя граница массива (индекс) должна быть меньше или равна его верхней границе.
Постусловия:
1) если элемент найден, то флаг Result=True, значение I — номер элемента;
2) если элемент не найден, то флаг Result=False, значение I не определено.
Примеры тестовых вариантов:
Тестовый вариант 1 (единичный массив, элемент найден) ТВ1:
ИД: М=15; Кеу=15.
ОЖ.РЕЗ.: Resutt=True; I=1.
Тестовый вариант 3 (четный массив, найден последний элемент) ТВЗ:
ИД: М=15, 20, 25, 30, 35, 40; Кеу=40.
ОЖ.РЕЗ:. Result=True; I=6.
Тестовый вариант 7 (нечетный массив, найден промежуточный элемент) ТВ7:
ИД: М=15, 20, 25, 30,35, 40, 45; Кеу=30.
ОЖ.РЕЗ.: Result=True; I=4.
Тестовый вариант 8 (четный массив, не найден элемент) ТВ8:
ИД: М=15, 20, 25, 30, 35,40; Кеу=23.
ОЖ.РЕЗ.: Result=False; I=?
Тестовый вариант 11 (нарушены предусловия) ТВ11:
ИД: М=15, 10, 5, 25, 20, 40, 35; Кеу=35.
ОЖ.РЕЗ.: Аварийное донесение: Массив не упорядочен.
Дата добавления: 2015-08-03; просмотров: 168 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Учебники, пособия, монографии, статьи | | | Таблицы принятия решений |