Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект по информационным технологиям+.doc
Скачиваний:
218
Добавлен:
29.02.2016
Размер:
793.09 Кб
Скачать

Способы разбиения на эквивалентности

Разбиение на эквивалентности является самым популярным способом тестирования черного ящика. В этом способе входная область данных программы делится на классы эквивалентности и для каждого класса эквивалентности разрабатывается один тестовый вариант. Класс эквивалентности – это набор данных с общими свойствами. Обрабатывая разные элементы класса, программа должна вести себя одинаково, иначе говоря, при обработке любого набора данных из классов эквивалентности в программе задействуется один и тот же набор операторов и связей между ними.

Разбиение на эквивалентности можно представить следующим образом.

Рисунок 15– Разбиение на эквивалентности

На данном рисунке представлены входные классы эквивалентности допустимых и недопустимых исходных данных, а так же классы выходных результатов. Классы эквивалентности могут быть определены на основе спецификаций на программу. Например, если спецификация задает в качестве допустимых входных величин целые числа в диапазоне 15–70, то класс эквивалентности допустимых исходных данных включает величины от 15 до 70 и несколько классов эквивалентности недопустимых исходных данных, к которым относятся целые числа <15, целые числа >70, исходные данные нецелочисленных типов.

Класс эквивалентности обычно включает множество значений данных, допустимых и недопустимых по условиям ввода.

Условия ввода может задавать:

  1. Определенное значение;

  2. Диапазон значений;

  3. Множество конкретных величин;

  4. Булево условие;

Сформулируем правила формирования классов эквивалентности.

  1. Если условие ввода задает диапазон от n до m, то определяется два допустимых и один недопустимый класс эквивалентности V_Class={n…m}, Inv_Class1={x| x, x<n}, Inv_Class2={x| x, x>m}.

  2. Если условие ввода задает конкретное значение a, то определяется один допустимый и два недопустимых класса эквивалентности V_Class={a}, Inv_Class1={x| x, x<a}, Inv_Class2={x| x, x>a}.

  3. Если условие ввода задает множество значений {a, b, c}, то определяется один допустимый и один недопустимый класс эквивалентности V_Class={a, b, c}, Inv_Class={x| x, (xa)&(xb)&(xc)}.

  4. Если условие ввода задает булево значение, например, True, то определяется один допустимый и один недопустимый класс эквивалентности V_Class={True}, Inv_Class={False}.

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

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

Как правило, большая часть ошибок происходит на границах области ввода, а не в центре.

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

Основные отличия анализа граничных значений от разбиения на эквивалентности:

  1. Тестовые варианты создаются для проверки только границ классов эквивалентностей.

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

Правила анализа граничных значений:

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

    1. для значений n и m;

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

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

    1. для проверки минимального и максимального из значений;

    2. для значений, чуть меньше минимума и чуть больше максимума.

  1. Применяется к условиям в области вывода, например, когда в программе требуется выводить таблицу значений. Количество строк и столбцов таблицы в этом случае может меняться. В этом случае задается тестовый вариант для минимального объема таблицы вывода, а также тестовый вариант для максимального размера выходной таблицы.

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

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