ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Проектирование информационных систем
Добавлен: 21.10.2018
Просмотров: 10778
Скачиваний: 8
161
Рис.
6.22
—
Вторая
половина
результирующей
таблицы
решений
Преобразуем
функциональную
диаграмму,
изображенную
на
рис.
6.18,
в
таблицу
решений.
Выберем
первым
следствием
91.
Следствие
91
имеет
место,
если
узел
36
принимает
значение
0.
Значение
узла
36
есть
0,
значение
узлов
32
и
35
есть
0,0,
0,1
или
1,0,
и
применимы
положения
2
и
3.
Хотя
подобное
пре-
образование
—
трудоемкий
процесс,
но
можно
проложить
об-
ратную
трассу
от
следствий
к
причинам,
учесть
при
этом
огра-
ничения
причин
и
найти
комбинации
последних,
которые
при-
водят
к
следствию
91.
Результирующая
таблица
решений,
при
условии,
что
имеет
место
следствие
91,
показана
на
рис.
6.21
(столбцы
1—11).
Столбцы
(тесты)
1—3
представляют
условия,
где
узел
32
есть
0,
а
узел
35
есть
1.
Столбцы
4—10
представляют
условия,
где
узел
32
есть
1,
а
узел
35
есть
0.
С
помощью
положения
3
определена
только
одна
ситуация
(колонка
11)
из
21-ой
возможной,
когда
узлы
32
и
35
есть
0.
Пробелы
представляют
«безразличные»
си-
туации
(т.е.
состояние
причины
несущественно)
или
указывают
на
то,
что
состояние
причины
очевидно
вследствие
состояний
других
зависимых
причин
(например,
для
столбца
1
известно,
20
21
22
23
24
25
27
28
29
30
31
32
33
34
35
36
37
38
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
6
1
1
1
1
1
1
7
1
1
1
1
1
1
8
1
1
9
1
1
1
1
1
10
1
1
1
1
1
11
1
1
1
1
1
12
1
1
1
1
1
13
1
1
0
1
1
1
1
1
14
1
1
0
1
1
1
1
1
15
1
1
1
1
1
1
1
16
1
1
1
1
1
1
1
17
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
18
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
91
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
92
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
93
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
94
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
95
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
96
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
97
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
162
что
причины
5,
7
и
8
должны
принимать
значения
0,
так
как
они
связаны
ограничением
«одно
и
только
одно»
с
причиной
6).
Столбцы
12—15
представляют
ситуации,
при
которых
имеет
место
следствие
92,
а
столбцы
16
и
17
—
ситуации,
при
которых
имеет
место
следствие
93.
На
рис.
6.22
показана
ос-
тальная
часть
таблицы
решений.
Последний
шаг
заключается
в
том,
чтобы
преобразовать
таблицу
решений
в
38
тестов.
Набор
из
38-и
тестов
представлен
ниже.
Числа
возле
каждого
теста
обозначают
следствия,
кото-
рые,
как
ожидается,
должны
здесь
иметь
место.
Предположим,
что
последний
используемый
адрес
памяти
машины
есть
7FFF.
1.
DISPLAY
24AF74
—
123
(91)
2.
DISPLAY
2ZX4
—
3000
(91)
3.
DISPLAY
HHHHHHHH
—
200
(91)
4.
DISPLAY
200
200
(91)
5.
DISPLAY
0
—
22222222
(91)
6.
DISPLAY
1
—
2X
(91)
7.
DISPLAY
2
—
ABCDEFGHI
(91)
8.
DISPLAY
3.11111111
(91)
9.
DISPLAY
44.$42
(91)
10.
DISPLAY
100.$$$$$$$
(91)
11.
DISPLAY
10000000
—
M
(91)
12.
DISPLAY
FF
—
8000
(92)
13.
DISPLAY
FFF.7001
(92)
14.
DISPLAY
8000
—
END
(92)
15.
DISPLAY
8000
—
8001
(92)
16.
DISPLAY
AA-A0
(93)
17.
DISPLAY
7000.0
(93)
18.
DISPLAY
7FF9
—
END
(94,97)
19.
DISPLAY
1
(94,97)
20.
DISPLAY
21
—
29
(94,97)
21.
DISPLAY
4021.A
(94,97)
22.
DISPLAY
—
END
(94,96)
23.
DISPLAY
(94,96)
24.
DISPLAY
—
F
(94,96)
25.
DISPLAY
.E
(94,96)
163
26.
DISPLAY
7FF8
—
END
(94,96)
27.
DISPLAY
6000
(94,96)
28.
DISPLAY
A0
—
A4
(94,96)
29.
DISPLAY
20.8
(94,96)
30.
DISPLAY
7001
—
END
(95,97)
31.
DISPLAY
5
—
15
(95,97)
32.
DISPLAY
4FF.100
(95,97)
33.
DISPLAY
—
END
(95,96)
34.
DISPLAY
—20
(95,96)
35.
DISPLAY
.11
(95,96)
36.
DISPLAY
7000
—
END
(95,96)
37.
DISPLAY
4
—14
(95,96)
38.
DISPLAY
500.11
(95,96)
Заметим,
что
в
этом
случае
двум
и
более
различным
тес-
там
соответствует
один
и
тот
же
набор
причин,
следует
ста-
раться
выбирать
различные
значения
причин
с
тем,
чтобы
хотя
бы
незначительно
улучшить
результативность
тестов.
Заметим
также,
что
из-за
ограниченного
размера
памяти
тест
22
является
нереализуемым
(при
его
использовании
будет
получено
следст-
вие
95
вместо
94,
как
отмечено
в
тесте
33).
Следовательно,
реа
-
лизуемы
только
37
тестов.
Замечания.
Применение
функциональных
диаграмм
—
систематиче-
ский
метод
генерации
тестов,
представляющих
комбинации
ус-
ловий.
Альтернативой
является
специальный
выбор
комбина-
ций,
но
при
этом
существует
вероятность
пропуска
многих
«ин-
тересных»
тестов,
определенных
с
помощью
функциональной
диаграммы.
При
использовании
функциональных
диаграмм
требуется
трансляция
спецификации
в
булевскую
логическую
сеть.
Сле-
довательно,
этот
метод
открывает
перспективы
ее
применения
и
дополнительные
возможности
спецификаций.
Действительно,
разработка
функциональных
диаграмм
есть
хороший
способ
обнаружения
неполноты
и
неоднозначности
в
исходных
специ-
фикациях.
Например,
можно
заметить,
что
предложенный
про-
цесс
обнаруживает
неполноту
в
спецификации
команды
DISPLAY.
Спецификация
устанавливает,
что
все
выходные
164
строки
содержат
четыре
слова.
Это
справедливо
не
во
всех
слу-
чаях;
так,
для
тестов
18
и
26
это
неверно,
поскольку
для
них
начальный
адрес
отображаемой
памяти
отличается
от
конечно-
го
адреса
памяти
машины
менее
чем
на
16
байт.
Метод
функциональных
диаграмм
позволяет
построить
набор
полезных
тестов,
однако
его
применение
обычно
не
обеспечивает
построение
всех
полезных
тестов,
которые
могут
быть
определены.
Так,
в
нашем
примере
мы
ничего
не
сказали
о
проверке
идентичности
отображаемых
на
экран
терминала
зна-
чений
данных
данным
в
памяти
и
об
установлении
случая,
ко-
гда
программа
может
отображать
на
экран
любое
возможное
значение,
хранящееся
в
ячейке
памяти.
Кроме
того,
функцио-
нальная
диаграмма
неадекватно
исследует
граничные
условия.
Конечно,
в
процессе
работы
функциональными
диаграммами
можно
попробовать
покрыть
граничные
условия.
Например,
вместо
определения
единственной
причины
адрес
2
≥
адрес
1
можно
определить
две
причины:
адрес
2
>
адрес
1
адрес
2
=
адрес
1
Однако
при
этом
граф
существенно
усложняется,
и
число
тестов
становится
чрезвычайно
большим.
Поэтому
лучше
отде-
лить
анализ
граничных
значений
от
метода
функциональных
диаграмм.
Например,
для
спецификации
команды
DISPLAY
могут
быть
определены
следующие
граничные
условия:
1.
Адрес
1
длиной
в
одну
цифру.
2.
Адрес
1
длиной
в
шесть
цифр.
3.
Адрес
1
длиной
в
семь
цифр.
4.
Адрес
1
=
0.
5.
Адрес
1
=
7FFF.
6.
Адрес
1
=
8000.
7.
Адрес
2
длиной
в
одну
цифру.
8.
Адрес
2
длиной
в
шесть
цифр.
9.
Адрес
2
длиной
в
семь
цифр.
10.
Адрес
2
=
0.
11.
Адрес
2
=
7FFF.
12.
Адрес
2
=
8000.
165
13.
Адрес
2
=
адрес
1.
14.
Адрес
2
=
адрес
1.
15.
Адрес
2
=
адрес
1
–
1.
16.
Счетчик
байтов
длиной
в
одну
цифру.
17.
Счетчик
байтов
длиной
в
шесть
цифр.
18.
Счетчик
байтов
длиной
в
семь
цифр.
19.
Счетчик
байтов
=
1.
20.
Адрес
1
+
счетчик
байтов
=
8000.
21.
Адрес
1
+
счетчик
байтов
=
8001.
22.
Отображение
шестнадцати
байт
(одна
строка).
23.
Отображение
семнадцати
байт
(две
строки).
Это
вовсе
не
означает,
что
следует
писать
60
(37
+
23)
тестов.
Поскольку
функциональная
диаграмма
дает
только
на-
правление
в
выборе
определенных
значений
операндов,
гра-
ничные
условия
могут
входить
в
полученные
из
нее
тесты.
В
нашем
примере,
переписывая
некоторые
из
первоначальных
37
тестов,
можно
покрыть
все
23
граничных
условия
без
допол-
нительных
тестов.
Таким
образом,
мы
получаем
небольшой,
но
убедительный
набор
тестов,
удовлетворяющий
поставленным
целям.
Заметим,
что
метод
функциональных
диаграмм
согласу-
ется
с некоторыми
принципами
тестирования,
изложенными
в
п.
6.2.
Его
неотъемлемой
частью
является
определение
ожидае-
мого
выхода
каждого
теста
(все
столбцы
в
таблице
решений
обозначают
ожидаемые
следствия).
Заметим
также,
что
данный
метод
помогает
выявить
ошибочные
побочные
следствия.
На-
пример,
столбец
(тест)
1
устанавливает,
что
должно
присутст-
вовать
следствие
91
и
что
следствия
92–97
должны
отсутство-
вать.
Наиболее
трудным
при
реализации
метода
является
пре-
образование
диаграммы
в
таблицу
решений.
Это
преобразова-
ние
представляет
собой
алгоритмический
процесс.
Следова-
тельно,
его
можно
автоматизировать
посредством
написания
соответствующей
программы.
Фирма
IBM
имеет
ряд
таких
про-
грамм,
но
не
поставляет
их.