Главная

Популярная публикация

Научная публикация

Случайная публикация

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

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Технология тестирования, классы эквивалентности




 

Одним из способов изучения поставленного вопроса является исследование стратегии тестирования, называемой стратегией черного ящика, тестированием с управлением по данным или тестированием с управлением по входу-выходу. При использовании этой стратегии программа рассматривается как черный ящик. Иными словами, такое тестирование имеет целью выяснение обстоятельств, в которых поведение программы не соответствует ее спецификации. При таком подходе обнаружение всех ошибок в программе является критерием исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве тестовых наборов использовать все возможные наборы входных данных.

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

Тестирование в данной курсовой работе должно выполняться по технологии черного ящика с использованием методологии эквивалентного разбиения. Разработка тестов методом эквивалентного разбиения осуществляется в два этапа:

1) выделение классов эквивалентности;

2) построение тестов.

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

 

Таблица 4.1 — Форма таблицы для перечисления классов
эквивалентности

 

Входные условия Классы эквивалентности
Правильные Неправильные
     

 

Отметим, что различают два типа классов эквивалентности: правильные классы эквивалентности, представляющие правильные входные данные программы, и неправильные классы эквивалентности, представляющие все другие возможные состояния условий (т.е. ошибочные входные значения). Таким образом, придерживаются одного из принципов необходимости сосредоточивать внимание на неправильных или неожиданных условиях.

Если задаться входными или внешними условиями, то выделение классов эквивалентности представляет собой в значительной степени эвристический процесс. При этом существует ряд правил:

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

2. Если входное условие описывает число значений (например, «в автомобиле могут ехать от одного до шести человек»), то определяются один правильный класс эквивалентности и два неправильных (ни одного и более шести).

3. Если входное условие описывает множество входных значений и есть основание полагать, что каждое значение программа трактует особо (например, «известны способы передвижения на АВТОБУСЕ, ГРУЗОВИКЕ, ТАКСИ, ПЕШКОМ или на МОТОЦИКЛЕ»), то определяется правильный класс эквивалентности для каждого значения и один неправильный класс эквивалентности (например, «НА ПРИЦЕПЕ»).

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

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

 

Построение тестов

 

Процесс построения тестов включает в себя:

1) назначение каждому классу эквивалентности уникального номера;

2) проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности до тех пор, пока все правильные классы эквивалентности не будут покрыты тестами (только не общими);

3) запись тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности до тех пор, пока все неправильные классы эквивалентности не будут покрыты тестами.

Причина покрытия неправильных классов эквивалентности индивидуальными тестами состоит в том, что определенные проверки с ошибочными входами скрывают или заменяют другие проверки с ошибочными входами. Например, спецификация устанавливает «тип книги при поиске (ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА, ПРОГРАММИРОВАНИЕ или ОБЩИЙ) и количество (1—9999)». Тогда тест

XYZ 0

отображает два ошибочных условия (неправильный тип книги и количество) и, вероятно, не будет осуществлять проверку количества, так как программа может ответить «XYZ — НЕСУЩЕСТВУЮЩИЙ ТИП КНИГИ» и не проверять остальную часть входных данных.

Пример. Предположим, что при разработке компилятора для подмножества языка Фортран требуется протестировать синтаксическую проверку оператора DIMENSION. Спецификация приведена ниже. В спецификации элементы, написанные латинскими буквами, обозначают синтаксические единицы, которые в реальных операторах должны быть заменены соответствующими значениями, в квадратные скобки заключены необязательные элементы, многоточие показывает, что предшествующий ему элемент может быть повторен подряд несколько раз.

Оператор DIMENSION используется для определения массивов. Форма оператора DIMENSION:

DIMENSION ad [, ad] …,

где ad есть описатель массива в форме

n(d[,d]…),

где n — символическое имя массива, а d — индекс массива. Символические имена могут содержать от одного до шести символов — букв или цифр, причем первой должна быть буква. Допускается от одного до семи индексов. Форма индекса

[lb:]ub,

где lb и ub задают нижнюю и верхнюю границы индекса массива. Граница может быть либо константой, принимающей значения от –65534 до 65535, либо целой переменной (без индексов). Если lb не определена, то предполагается, что она равна единице. Значение ub должно быть больше или равно lb. Если lb определена, то она может иметь отрицательное, нулевое или положительное значение. Как и все операторы, оператор DIMENSION может быть продолжен на нескольких строках.

(Конец спецификации).

Первый шаг заключается в том, чтобы идентифицировать входные условия и по ним определить классы эквивалентности (табл. 4.2). Классы эквивалентности в таблице обозначены числами.

 

Таблица 4.2 — Классы эквивалентности

   
Входные условия Классы эквивалентности
Правильные Неправильные
Число описателей массивов один (1), больше одного (2) ни одного (3)
Длина имени массива 1—6 (4) 0 (5), больше 6 (6)
Имя массива содержит буквы (7) и цифры (8) содержит другие символы (9)
Имя массива начинается с буквы да (10) нет (11)
Число индексов 1—7 (12) 0 (13), больше 7 (14)
Верхняя граница константа (15), целая переменная (16) имя элемента массива (17), что-то иное (18)
Имя целой переменной содержит буквы (19) и цифры (20) состоит из других символов (21)
Целая переменная начинается с буквы да (22) нет (23)
Окончание табл. 4.2
Константа

–65534..65535 (24) < –65534 (25), > 65535 (26)
Нижняя граница определена да (27), нет (28)  
Верхняя граница по отношению к нижней границе больше (29), равна (30) меньше (31)
Значение нижней границы < 0 (32), 0 (33), > 0 (34)  
Нижняя граница константа (35), целая переменная (36) имя элемента массива (37), что-то иное (38)
Оператор расположен на нескольких строках да (39), нет (40)  

 

Следующий шаг — построение теста, покрывающего один или более правильных классов эквивалентности. Например, тест

DIMENSION A(2)

покрывает классы 1, 4, 7, 10, 12, 15, 24, 28, 29 и 40. Далее определяются один или более тестов, покрывающих оставшиеся правильные классы эквивалентности. Так, тест

DIMENSION A 12345 (I, 9, J4XXXX, 65535, 1, KLM, * 100),

BBB (–65534: 100,0: 1000,10: 10,1: 65535)

покрывает оставшиеся классы. Перечислим неправильные классы эквивалентности и соответствующие им тесты:

(3) DIMENSION

(5) DIMENSION (10)

(6) DIMENSION A234567(2)

(9) DIMENSION A.I(2)

(11) DIMENSION 1A(10)

(13) DIMENSION В

(14) DIMENSION В (4,4,4,4,4,4,4,4)

(17) DIMENSION B(4,A(2))

(18) DIMENSION B(4„7)

(21) DIMENSION C(I.,10)

(23) DIMENSION C(10,1J)

(25) DIMENSION D(–65535:1)

(26) DIMENSION D(65536)

(31) DIMENSION D(4:3)

(37) DIMENSION D(A(2):4)

(38) DIMENSION D(.:4)

Эти классы эквивалентности покрываются 18 тестами. Хотя эквивалентное разбиение значительно лучше случайного выбора тестов, оно все же имеет недостатки (т.е. пропускает определенные типы высокоэффективных тестов). Следующие два метода — анализ граничных значений и использование функциональных диаграмм (диаграмм причинно-следственных связей cause-effect graphing) — свободны от многих недостатков, присущих эквивалентному разбиению.

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






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных