Тестирование при помощи диаграмм причин–следствий

Базовые понятия

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

Шаги тестирования

Шаг 1. Для каждого модуля перечисляются причины (условия ввода или классы эквивалентности условий ввода) и следствия (действия или условия вывода). Каждой причине и следствию присваивается свой идентификатор.

Шаг 2. Разрабатывается граф причинно-следственных связей.

Шаг 3. Граф преобразуется в таблицу решений.

Шаг 4. Столбцы таблицы решений преобразуются в тестовые варианты.

Изобразим базовые символы для записи графов причин и следствий (cause-effect graphs). Сделаем предварительные замечания:

¾ причины будем обозначать символами сj, а следствия — символами еi;

¾ каждый узел графа может находиться в состоянии 0 или 1 (0 — состояние отсутствует, 1 — состояние присутствует).

Функция тождество (рисунок 16) устанавливает, что если значение c1 есть 1, то и значение e1 есть 1; в противном случае значение e1 есть 0.

Рисунок 16 – Функция тождество

Функция не (рисунок 17) устанавливает, что если значение с1 есть 1, то значение e1 есть 0; в противном случае значение e1 есть 1.

Рисунок 17 – Функция не

Функция или (рисунок 18) устанавливает, что если значение с1 или с2 есть 1 , то e1 есть1,в противном случае e1 есть 0.

Рисунок 18 – Функция или

Функция и (рисунок 19) устанавливает, что если и с1 и с2 есть 1, то el есть 1, в против­ном случае е1 есть 0.

Рисунок 19 – Функция и

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

Ограничение Е (исключает, Exclusive, рисунок 20) устанавливает, что Е должно быть истинным, если хотя бы одна из причин — а или b — принимает значение 1 (а и b не могут принимать значение 1 одновременно).

Рисунок 20 – Ограничение Е (исключает, Exclusive)

Ограничение I (включает, Inclusive, рисунок 21) устанавливает, что по крайней мере одна из величин, а, b, или с, всегда должна быть равной 1 (a, b u c не могут принимать значение 0 одновременно).

Рисунок 21 – Ограничение I (включает, Inclusive)

Ограничение О (одно и только одно, Only one, рисунок 22) устанавливает, что одна и только одна из величин а или b должна быть равна 1.

Рисунок 22 – Ограничение О (одно и только одно, Only one)

Ограничение R (требует, Requires, рисунок 23) устанавливает, что если а принимает значение 1, то и b должна принимать значение 1 (нельзя, чтобы а было равно 1, a b — 0).

Рисунок 23 – Ограничение R (требует, Requires)

Часто возникает необходимость вограничениях для следствий.

Ограничение М (скрывает, Masks, рисунок 24) устанавливает, что если следствие а имеет значение 1, то следствие b должно принять значение 0.

Рисунок 24 – Ограничение М (скрывает, Masks)

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

При расчете по среднему тарифу:

¾ при месячном потреблении энергии меньшем, чем 100 кВт/ч, выставляется фиксированная сумма;

¾ при потреблении энергии большем или равном 100 кВт/ч применяется процедура А планирования расчета.

При расчете по переменному тарифу:

¾ при месячном потреблении энергии меньшем, чем 100 кВт/ч, применяется процедура А планирования расчета;

¾ при потреблении энергии большем или равном 100 кВт/ч применяется процедура В планирования расчета.

 

Шаг 1.Причинами являются:

расчет по среднему тарифу (1);

расчет по переменному тарифу (2);

месячное потребление электроэнергии меньшее, чем 100 кВт/ч (3);

месячное потребление электроэнергии большее или равное 100 кВт/ч (4).

На основе различных комбинаций причин можно перечислить следующие следствия:

минимальная месячная стоимость (101);

процедура Л планирования расчета (102);

процедура В планирования расчета (103).

 

Щаг 2. Разработка графа причинно-следственных связей (рисунок 25).

Узлы причин перечислим по вертикали у левого края рисунка, а узлы следствий — у правого края рисунка. Для следствия 102 возникает необходимость введения вторичных причин — 11 и 12, — их размещаем в центральной части рисунка.

Рисунок 25 – Граф причинно-следственных связей

 

Шаг 3. Генерация таблицы решений. При генерации причины рассматриваются как условия, а следствия — как действия.

Порядок генерации.

Шаг 3.1. Выбирается некоторое следствие, которое должно быть в состоянии «1».

Шаг 3.2. Находятся все комбинации причин (с учетом ограничений), которые устанавливают это следствие в состояние «1». Для этого из следствия прокладывается обратная трасса через граф.

Шаг 3.3. Для каждой комбинации причин, приводящих следствие в состояние «1», строится один столбец.

Шаг 3.4. Для каждой комбинации причин доопределяются состояния всех других следствий. Они помещаются в тот же столбец таблицы решений.

Шаг 3.5. Действия 3.1 - 3.4 повторяются для всех следствий графа.

Таблица решений для этого примера показана в таблица 2.

 

Шаг 4. Преобразование каждого столбца таблицы в тестовый вариант. В нашем примере таких вариантов четыре:

ТВ 1: Исходные данные: расчёт по среднему тарифу; месячное потребление электроэнергии 75 кВт/ч.

Ожидаемый результат: минимальная месячная стоимость.

ТВ 2: Исходные данные:расчёт по переменному тарифу; месячное потребление электроэнергии 90 кВт/ч.

Ожидаемый результат: процедура А планирования расчёта.

ТВ 3: Исходные данные:расчёт по среднему тарифу; месячное потребление электроэнергии 100 кВт/ч.

Ожидаемый результат: процедура Л планирования расчёта.

ТВ 4: Исходные данные:расчет по переменному тарифу; месячное потребление электроэнергии 100 кВт/ч.

Ожидаемый результат: процедура В планирования расчета.

 

Таблица 2 – Таблица решений для расчёта оплаты на электричество

 

Номера столбцов→
Условия Причины
Вторичные причины
Действия Следствия

 


 

Пример тестирования с помощью диаграмм причин-следствий

Шаг 1.Причинами являются:

1) введён массив не чисел.

2) верхняя граница массива >10000 (n>10000).

3) строго возрастающий массив чисел.

4) строго убывающий массив чисел.

5) неупорядоченный (произвольный) массив чисел.

6) массив из одного и того же числа, при n 2.

Можно перечислить следующие следствия:

11) сообщение об ошибке, массив не сортируется;

12) печать отсортированного массива.

Шаг 2. Разработка графа причинно-следственных связей (рисунок 26).

Выбранный тип ограничения для всех причин – Only one (O). Следствия образуются через функции или (V).

Рисунок 26 – Граф причинно-следственных связей

 

Шаг 3. Генерация таблицы решений.

 

Таблица 3 – Таблица решений

 

Номера столбцов→
Условия Причины
Действия Следствия

Шаг 4. Преобразование каждого столбца таблицы 3 в тестовый вариант (таблица 4):

 

Таблица 4 – Таблица тестовых вариантов

 

№ ТВ Исходные данные Ожидаемый результат
N = 5, A = {a, b, c, 1, d} -1
N = 10001, A = {…} – большой массив -1
N = 6, A = {1, 2, 5, 9, 12, 13} A = {1, 2, 5, 9, 12, 13}
N = 5, A = {5, 4, 3, 2, 1} A = {1, 2, 3, 4, 5}
N = 7, A = {1, 9, 2, 1, 2, 3, 4, 6} A = {1, 1, 2, 2, 3, 4, 6, 9}
N = 7, A = {9, 9, 9, 9, 9, 9, 9} A = {9, 9, 9, 9, 9, 9, 9}

Контрольные вопросы

1. Чем характерно тестирования «чёрным ящиком»?

2. Какие существуют стратегии (способы) тестирования «чёрным ящиком»?

3. Какие существуют виды классов эквивалентности?

4. Какова суть тестирования через эквивалентное разбиение и анализ граничных условий?

5. Что такое диаграммы причинно-следственных связей, и из каких элементов они состоят?

6. Как происходит построение графа причинно-следственных связей?

7. Как составляется таблица решений для способа тестирования через диаграммы причин-следствий?


Лабораторная работа №4

 

Тема:Автоматизация процесса тестирования программного продукта.

Цель: Разработка драйверов тестирования в соответствии с лабораторными работами №1 и №2.

 

Содержание отчёта

a) Алгоритм работы драйвера тестирования.

b) Варианты тестирования (исходные данные, ожидаемые результаты).

c) Результат работы драйвера:

1) вывод номера варианта тестирования;

2) исходные данные;

3) ожидаемые результаты;

4) реальные результаты;

5) маршруты тестирования.

d) Листинг программы.