Пиши Дома Нужные Работы

Обратная связь

Способ анализа граничных значений

 

Как правило, большая часть ошибок происходит на границах области ввода, а не на центре. Анализ граничных значений заключается в получении тестовых вариантов, которые анализируют граничные значения. Данный способ тестирования дополняет способ разбиения по эквивалентности:

1) тестовые варианты создаются для проверки только рёбер классов эквивалентности;

2) при создании тестовых вариантов учитывают не только условия ввода, но и область ввода.

Сформулируемправила анализа граничных значений.

1. Если условие ввода задаёт диапазон n…m, то тестовые варианты должны быть построены:

  • для значений n и m;
  • для значений чуть левее n и чуть правее m на числовой оси.

Например, если задан входной диапазон -1,0…+1,0, то создаются тесты для значений -1,0, +1,0, -1,001, +1,001.

2. Если условие ввода задаёт множество значений, то создаются тестовые варианты:

  • для проверки минимального и максимального из значений;
  • для значений чуть меньше минимума и чуть больше максимума.

Так, если входной файл может содержать от 1 до 255 записей, то создаются тесты для 0, 1, 255, 256 записей.

3. Правила 1 и 2 применяются к условиям области вывода.

Рассмотрим пример, когда в программе требуется выводить таблицу значений. Количество строк и столбцов в таблице меняется. Задаётся тестовый вариант для минимального вывода (по объёму таблицы), а также тестовый вариант для максимального вывода (по объёму таблицы).

4. Если внутренние структуры данных программы имеют предписанные границы, то разрабатываются тестовые варианты, проверяющие эти структуры на их границах.

5. Если входные или выходные данные программы являются упорядоченными множествами (например, последовательным файлом, линейным списком, таблицей), то надо тестировать обработку первого и последнего элементов этих множеств.



Большинство разработчиков используют этот способ интуитивно. При применении описанных правил тестирования границ будет более полным, в связи, с чем возрастёт вероятность обнаружения ошибок.

Пример. Рассмотрим применение способов разбиения по эквивалентности и анализа граничных значений на конкретном примере. Положим, что нужно протестировать программу бинарного поиска. Нам известна спецификацияэтой программы. Поиск выполняется в массиве элементов М, возвращается индекс I элемента массива, значение которого соответствует ключу поиска Key.

Пред-условия:

1) массив должен быть упорядочен;

2) массив должен иметь не менее одного элемента;

3) нижняя граница массива (индекс) должна быть меньше или равна его верхней границе;

Пост-условия:

1) если элемент найден, то флаг Result=True, значение I − номер элемента;

2) если элемент не найден, то флаг Result=False, значение I не определено.

Для формирования классов эквивалентности (и их рёбер) надо произвести разбиение области ИД − построить дерево разбиений. Листья дерева разбиений дадут нам искомые классы эквивалентности. Определим стратегию разбиения. На первом уровне будем анализировать выполнимость предусловий, на втором − выполнимость постусловий. На третьем уровне можно анализировать специальные требования, полученные из практики разработчика. В нашем примере мы знаем, что входной массив должен быть упорядочен. Обработка упорядоченных наборов из чётного и нечётного количества элементов может выполняться по-разному. Кроме того, принято выделять специальный случай одноэлементного массива. Следовательно, на уровне специальных требований возможны следующие эквивалентные разбиения:

1) массив из одного элемента;

2) массив из чётного количества элементов;

3) массив из нечётного количества элементов, большего единицы.

Наконец, на последнем, 4-м уровне критерием разбиения может быть анализ рёбер классов эквивалентности. Очевидно, возможны следующие варианты:

1) работа с первым элементом массива;

2) работа с последним элементом массив;

3) работа с промежуточным (ни с первым, ни с последним) элементом массива;

Структура дерева разбиений приведена на рис. 3.

Это дерево имеет 11 листьев. Каждый лист задаёт отдельный тестовый вариант. Покажем тестовые варианты, основанные на проведённых разбиениях.

Тестовый вариант 1 (единичный массив, элемент найден) ТВ1:

ИД: М=15; Key=15.

ОЖ.РЕЗ.: Result=True; I=1.

Тестовый вариант 2 (чётный массив, найден 1-й элемент)ТВ2:

ИД: М=15,20,25,30,35,40; Key=15.

ОЖ.РЕЗ.: Result=True; I=1.

Тестовый вариант 3 (чётный массив, найден последний элемент)ТВ3:

ИД: М=15,20,25,30,35,40; Key=40.

ОЖ.РЕЗ.: Result=True; I=6.

Тестовый вариант 4 (чётный массив, найден промежуточный элемент)ТВ4:

ИД: М=15,20,25,30,35,40; Key=25.

ОЖ.РЕЗ.: Result=True; I=3.

Тестовый вариант 5 (нечётный массив, найден 1-й элемент)ТВ5:

ИД: М=15,20,25,30,35,40,45; Key=15.

ОЖ.РЕЗ.: Result=True; I=1.

Тестовый вариант 6 (нечётный массив, найден последний элемент)ТВ6:

ИД: М=15,20,25,30,35,40,45; Key=45.

ОЖ.РЕЗ.: Result=True; I=7.

Тестовый вариант 7 (нечётный массив, найден промежуточный элемент)ТВ7:

ИД: М=15,20,25,30,35,40,45; Key=30.

ОЖ.РЕЗ.: Result=True; I=4.

Промежуточный элемент 7
Последний элемент 6  
Первый элемент 5
Первый элемент 2
Единичный М1

Предусловия

 

Постусловия

 

 

Специальные требования

 

 

Граничные рёбра

 

 

Рис.3. Дерево разбиений области исходных данных бинарного поиска

Тестовый вариант 8 (чётный массив, не найден элемент) ТВ8:

ИД: М=15,20,25,30,35,40; Key=23.

ОЖ.РЕЗ.: Result= False; I=?.

Тестовый вариант 9 (нечётный массив, не найден элемент)ТВ9:

ИД: М=15,20,25,30,35,40,45; Key=24.

ОЖ.РЕЗ.: Result= False; I=?.

Тестовый вариант 10 (единичный массив, не найден элемент)ТВ10:

ИД: М=15; Key=0.

ОЖ.РЕЗ.: Result= False; I=?.

Тестовый вариант 11 (нарушены предусловия)ТВ11:

ИД: М=15,10,5,25,20,40,35; Key=35.

ОЖ.РЕЗ.: Аварийное донесение. Массив не упорядочен.

 






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2017 pdnr.ru Все права принадлежат авторам размещенных материалов.