Файл: Технология раработки програмного обеспечения УП.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 
 

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


background image

 
 

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)


background image

 
 

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.

Спецификация

устанавливает,

что

все

выходные


background image

 
 

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.


background image

 
 

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

имеет

ряд

таких

про-

грамм,

но

не

поставляет

их.