Файл: Технология раработки програмного обеспечения УП.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

 

имеет

 

ряд

 

таких

 

про-

грамм,

 

но

 

не

 

поставляет

 

их.