Платформа тестовых шаблонов - Test Template Framework
В Платформа тестовых шаблонов (TTF) это модельное тестирование (MBT), предложенная Филом Стоксом и Дэвидом Кэррингтоном в (Акции и Каррингтон, 1996 г. ) с целью тестирование программного обеспечения. Хотя TTF должен был быть независимым от обозначений, исходное представление было сделано с использованием Формальная запись Z. Это один из немногих фреймворков MBT, приближающихся к модульное тестирование.
Вступление
TTF - это конкретное предложение модельное тестирование (ОБТ). Считает модели Z характеристики. Каждая операция в рамках спецификации анализируется для получения или генерации абстрактные тестовые примеры. Этот анализ состоит из следующих этапов:
- Определить входное пространство (IS) каждой операции.
- Вывести допустимое пространство ввода (VIS) из ЯВЛЯЕТСЯ каждой операции.
- Применить один или несколько тактика тестирования,[1] начиная с каждого ВИС, чтобы построить дерево тестирования для каждой операции. Деревья тестирования заполнены узлами, называемыми тестовые классы.
- Чернослив каждый из полученных деревья тестирования.
- Найдите один или несколько абстрактные тестовые примеры с каждого листа в каждом дерево тестирования.
Одним из основных преимуществ TTF является то, что все эти концепции выражены в одной и той же нотации спецификации, т.е. Обозначение Z. Следовательно, инженер должен знать только одну нотацию, чтобы выполнить анализ вплоть до генерации абстрактные тестовые примеры.
Важные понятия
В этом разделе описаны основные концепции, определенные TTF.
Входное пространство
Позволять быть Z-операцией. Позволять быть всеми входными и (незакрашенными) переменными состояния, указанными в , и их соответствующие типы. В Входное пространство (Имеет , написано , это блок схемы Z, определяемый .
Допустимое пространство для ввода
Позволять быть Z-операцией. Позволять быть предварительное условие из . В Допустимое входное пространство (VIS) из , написано , это блок схемы Z, определяемый .
Тестовый класс
Позволять - Z-операция, и пусть быть любым предикат в зависимости от одной или нескольких переменных, определенных в . Затем поле схемы Z это тестовый класс из . Обратите внимание, что эта схема эквивалентна . Это наблюдение можно обобщить, сказав, что если это тестовый класс , то блок схемы Z, определяемый также является тестовым классом . Согласно этому определению ВИС также является тестовым классом.
Если это тестовый класс , то предикат в считается характеристика предикат или же является характеризует к .
Классы тестирования также называют целями тестирования (Utting & Legeard 2007 ), тестовые шаблоны (Акции и Каррингтон, 1996 г. ) и спецификации испытаний.
Тактика тестирования
В контексте TTF a тактика тестирования[1] это средство раздел любой тестовый класс любой операции. Однако некоторые тактики тестирования, используемые на практике, на самом деле не всегда создают раздел некоторых тестовых классов.
Некоторые тактики тестирования, первоначально предложенные для TTF, следующие:
- Дизъюнктивная нормальная форма (ДНФ). Применяя эту тактику, операция записывается на Дизъюнктивная нормальная форма и тестовый класс делится на столько тестовых классов, сколько термов в предикате результирующей операции. Предикат, добавляемый в каждый новый тестовый класс, - это предварительное условие одного из терминов в предикате операции.
- Стандартные перегородки (SP). Эта тактика использует заранее заданное разделение некоторого математического оператора (Акции 1993 г. ). Например, следующее является хорошим разделом для выражений вида куда один из , и (видеть Теория множеств ).
- Как можно заметить, стандартные разделы могут меняться в зависимости от того, сколько тестирования хочет выполнить инженер.
- Распространение субдоменов (SDP). Эта тактика применяется к выражениям, содержащим:
- Два или более математических оператора, для которых уже определены стандартные разбиения, или
- Математические операторы, которые определены в терминах других математических операторов.
- В любом из этих случаев стандартные разделы операторов, появляющиеся в выражении или в определении сложного, объединяются, чтобы создать раздел для выражения. Если тактика применяется ко второму случаю, то полученное разделение можно рассматривать как стандартное разделение для этого оператора. Акции и Кэррингтон в (Акции и Кэррингтон 1996 ) проиллюстрируем эту ситуацию с помощью , куда средства антиограничение домена, предоставив стандартные перегородки для и и распространяя их, чтобы вычислить разбиение для .
- Спецификация Мутация (СМ). Первый шаг этой тактики состоит в создании мутант операции Z. Мутант операции Z похож по концепции на мутант программы, т.е. это модифицированный вариант операции. Модификация вносится инженером с целью обнаружения ошибки в реализации. Мутант должен быть спецификацией, которую, по предположениям инженера, реализовал программист. Затем инженер должен рассчитать подмножество VIS, которое дает разные результаты в обеих спецификациях. Предикат этого набора используется для создания нового тестового класса.
Некоторые другие тактики тестирования, которые также можно использовать, следующие:
- В наборе расширения (ISE). Это применимо к предикатам формы . В этом случае он генерирует п тестовые классы такие, что предикат формы добавляется к каждому из них.
- Обязательный набор тестов (МТС). Эта тактика связывает набор постоянных значений с переменной VIS и генерирует столько тестовых классов, сколько элементов содержится в наборе. Каждый тестовый класс характеризуется предикатом вида куда вар это имя переменной и вал - одно из значений набора.
- Числовые диапазоны (NR). Эта тактика применима только к переменным VIS типа (или его "подтип" ). Он заключается в связывании диапазона с переменной и получении тестовых классов путем сравнения переменной с пределами диапазона некоторыми способами. Более формально, пусть п быть переменной типа и разреши быть связанным диапазоном. Затем тактика генерирует тестовые классы, характеризуемые следующими предикатами: , , , , .
- Свободный Тип (FT). Эта тактика генерирует столько тестовых классов, сколько элементов имеет свободный (перечисляемый) тип. Другими словами, если модель определяет тип ЦВЕТ :: = красный | синий | зеленый и некоторые операции используют c типа ЦВЕТ, то, применяя эту тактику, каждый тестовый класс будет разделен на три новых тестовых класса: один, в котором c равно красный, другой, в котором c равно синий, а третий, где c равно зеленый.
- Правильное подмножество расширения набора (PSSE). Эта тактика использует ту же концепцию ISE, но применяется к множественным включениям. PSSE помогает тестировать операции, включая такие предикаты, как . Когда применяется PSSE, он генерирует тестовые классы, в которых предикат формы с и , добавляется к каждому классу. исключен из потому что expr является собственным подмножеством .
- Подмножество расширения набора (SSE). Он идентичен PSSE, но применяется к предикатам формы в этом случае он генерирует учитывая также .
Дерево тестирования и
Применение тактики тестирования к VIS генерирует несколько тестовых классов. Если некоторые из этих тестовых классов будут дополнительно разделены с помощью одной или нескольких тактик тестирования, будет получен новый набор тестовых классов. Этот процесс можно продолжить, применив тактику тестирования к уже созданным тестовым классам. Очевидно, результат этого процесса можно представить в виде дерево с VIS в качестве корневого узла, тестовые классы, сгенерированные первой тактикой тестирования, в качестве его дочерних узлов и т. д. Кроме того, Stocks и Carrington в (Акции и Каррингтон, 1996 г. ) предлагаем использовать обозначение Z для построения дерева следующим образом.
Обрезка тестовых деревьев
В общем случае предикат тестового класса представляет собой соединение двух или более предикатов. Тогда вполне вероятно, что некоторые тестовые классы пусты, потому что их предикаты противоречат друг другу. Эти тестовые классы должны быть удалены из дерева тестирования, потому что они представляют невозможные комбинации входных значений, т.е. абстрактный тестовый пример могут быть выведены из них.
Абстрактный тестовый пример
Абстрактный контрольный пример - это элемент, принадлежащий тестовый класс. TTF предписывает, что абстрактные тестовые примеры должны быть получены только из листьев дерево тестирования. Абстрактные тестовые примеры также можно записать в виде блоков схемы Z. Позволять какая-то операция, пусть быть ВИС из , позволять быть всеми переменными, объявленными в , позволять быть (листовым) тестовым классом дерева тестирования, связанного с , позволять быть характерные предикаты каждого тестового класса из вплоть до (следуя края от дочернего к родительскому ), и разреши быть постоянные значения, удовлетворяющие . Затем абстрактный тестовый пример блок схемы Z определяется .
Смотрите также
Рекомендации
- Акции, Фил; Кэррингтон, Дэвид (1996), «Фреймворк для тестирования на основе спецификации», IEEE Transactions по разработке программного обеспечения, 22 (11): 777–793, Дои:10.1109/32.553698.
- Уттинг, Марк; Легерд, Бруно (2007), Практическое тестирование на основе моделей: инструментальный подход (1-е изд.), Морган Кауфманн, ISBN 0-12-372501-1.
- Акции, Фил (1993), Применение формальных методов к тестированию программного обеспечения, Факультет компьютерных наук, Университет Квинсленда, докторская диссертация.
Примечания
- ^ а б Stocks и Carrington используют термин стратегии тестирования в (Акции и Каррингтон, 1996 г. ).