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

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

 

 

 
 

146 

 

40.

 

Все

 

студенты

 

отвечают

 

на

 

последний

 

вопрос

 

не

-

правильно.

 

 

41.

 

Число

 

вопросов

 

таково,

 

что

 

размер

 

отчета

 

несколько

 

больше

 

одной

 

страницы.

 

 

42.

 

Число

 

вопросов

 

таково,

 

что

 

отчет

 

располагается

 

на

 

од-

ной

 

странице.

 

Опытный

 

программист,

 

вероятно,

 

согласится

 

с

 

той

 

точкой

 

зрения,

 

что

 

многие

 

из

 

этих

 

42-х

 

тестов

 

позволяют

 

выявить

 

на-

личие

 

общих

 

ошибок,

 

которые

 

могут

 

быть

 

сделаны

 

при

 

разра-

ботке

 

данной

 

программы.

 

Кроме

 

того,

 

большинство

 

этих

 

оши-

бок,

 

вероятно,

 

не

 

было

 

бы

 

обнаружено,

 

если

 

бы

 

использовался

 

метод

 

случайной

 

генерации

 

тестов

 

или

 

специальный

 

метод

 

ге-

нерации

 

тестов.

 

Анализ

 

граничных

 

значений,

 

если

 

он

 

применен

 

правильно,

 

является

 

одним

 

из

 

наиболее

 

полезных

 

методов

 

про-

ектирования

 

тестов.

 

Однако

 

он

 

часто

 

оказывается

 

неэффектив-

ным

 

из-за

 

того,

 

что внешне

 

выглядит

 

простым.

 

Необходимо

 

по-

нимать,

 

что

 

граничные

 

условия

 

могут

 

быть

 

едва

 

уловимы

 

и,

 

следовательно,

 

определение

 

их

 

связано

 

с

 

большими

 

трудностя-

ми.

 

6.4.4 Применение функциональных диаграмм 

Одним

 

из

 

недостатков

 

анализа

 

граничных

 

значений

 

и

 

эк-

вивалентного

 

разбиения

 

является

 

то,

 

что

 

они

 

не

 

исследуют

 

комбинаций

 

входных

 

условий.

 

Например,

 

пусть

 

программа

 

MTEST

 

из

 

предыдущего

 

раздела

 

не

 

выполняется,

 

если

 

произве-

дение

 

числа

 

вопросов

 

и

 

числа

 

студентов

 

превышает

 

некоторый

 

предел

 

(например,

 

объем

 

памяти).

 

Такая

 

ошибка

 

не

 

обязательно

 

будет

 

обнаружена

 

тестированием

 

граничных

 

значений.

 

Тестирование

 

комбинаций

 

входных

 

условий

 

—

 

непростая

 

задача,

 

поскольку

 

даже

 

при

 

построенном

 

эквивалентном

 

раз-

биении

 

входных

 

условий

 

число

 

комбинаций

 

обычно

 

астроно-

мически

 

велико.

 

Если

 

нет

 

систематического

 

способа

 

выбора

 

подмножества

 

входных

 

условий,

 

то,

 

как

 

правило,

 

выбирается

 

произвольное

 

подмножество,

 

приводящее

 

к

 

неэффективному

 

тесту.

 

Метод

 

функциональных

 

диаграмм

 

или

 

диаграмм

 

причин-

но-следственных

 

связей

 

помогает

 

систематически

 

выбирать

 

background image

 

 

 
 

147 

тесты

  

с

 

высокой

 

результативностью.

 

Он

 

дает

 

полезный

 

побоч-

ный

 

эффект,

 

так

 

как

 

позволяет

 

обнаруживать

 

неполноту

 

и

 

не-

однозначность

 

исходных

 

спецификаций.

 

Функциональная

 

диаграмма

 

представляет

 

собой

 

формаль-

ный

 

язык,

 

на

 

который

 

транслируется

 

спецификация,

 

написанная

 

на

 

естественном

 

языке.

 

Диаграмме

 

можно

 

сопоставить

 

цифро-

вую

 

логическую

 

цепь

 

(комбинаторную

 

логическую

 

сеть),

 

но

 

для

 

ее

 

описания

 

используется

 

более

 

простая

 

нотация

 

(форма

 

запи-

си),

 

чем

 

обычная

 

форма

 

записи,

 

принятая

 

в

 

электронике.

 

Для

 

уяснения

 

метода

 

функциональных

 

диаграмм

 

вовсе

 

не

 

обяза-

тельно

 

знание

 

электроники,

 

но

 

желательно

 

понимание

 

булев-

ской

 

логики

 

(т.е.

 

логических

 

операторов

 

и,

 

или

 

и

 

не).

 

Построе-

ние

 

тестов

 

этим

 

методом

 

осуществляется

 

в

 

несколько

 

этапов.

 

 

1.

 

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

 

разбивается

 

на

 

«рабочие»

 

участки.

 

Это

 

связано

 

с

 

тем,

 

что

 

функциональные

 

диаграммы

 

стано-

вятся

 

слишком

 

громоздкими

 

при

 

применении

 

данного

 

метода

 

к

 

большим

 

спецификациям.

 

Например,

 

когда

 

тестируется

 

система

 

разделения

 

времени,

 

рабочим

 

уча-

стком

 

может

 

быть

 

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

 

отдельной

 

команды.

 

При

 

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

 

компилятора

 

в

 

качестве

 

рабочего

 

участка

 

можно

 

рассматривать

 

каждый

 

отдельный

 

опе-

ратор

 

языка

 

программирования.

 

 

2.

 

В

 

спецификации

 

определяются

 

причины

 

и

 

следствия.

 

Причина

 

есть

 

отдельное

 

входное

 

условие

 

или

 

класс

 

эк-

вивалентности

 

входных

 

условий.

 

Следствие

 

есть

 

вы-

ходное

 

условие

 

или

 

преобразование

 

системы

 

(остаточ-

ное

 

действие,

 

которое

 

входное

 

условие

 

оказывает

 

на

 

состояние

 

программы

 

или

 

системы).

 

Например,

 

если

 

сообщение

 

программе

 

приводит

 

к

 

обновлению

 

основ-

ного

 

файла,

 

то

 

изменение

 

в

 

нем

 

и

 

является

 

преобразо-

ванием

 

системы;

 

подтверждающее

 

сообщение

 

было

 

бы

 

выходным

 

условием.

 

Причины

 

и

 

следствие

 

определя-

ются

 

путем

 

последовательного

 

(слово

 

за

 

словом)

 

чте-

ния

 

спецификации.

 

При

 

этом

 

выделяются

 

слова

 

или

 

фразы,

 

которые

 

описывают

 

причины

 

и

 

следствия.

 

Ка-

ждым

 

причине

 

и

 

следствию

 

приписывается

 

отдельный

 

номер.

 

background image

 

 

 
 

148 

 

3.

 

Анализируется

 

семантическое

 

содержание

 

специфика-

ции,

 

которая

 

преобразуется

 

в

 

булевский

 

граф,

 

связы-

вающий

 

причины

 

и

 

следствия.

 

Это

 

и

 

есть

 

функцио-

нальная

 

диаграмма.

 

 

4.

 

Диаграмма

 

снабжается

 

примечаниями,

 

задающими

 

ог-

раничения

 

и

 

описывающими

 

комбинации

 

причин

 

и

 

(или)

 

следствий,

 

которые

 

являются

 

невозможными

 

из-

за

 

синтаксических

 

или

 

внешних

 

ограничений.

 

 

5.

 

Путем

 

методического

 

прослеживания

 

состояний

 

усло

-

вий

 

диаграммы

 

она

 

преобразуется

 

в

 

таблицу

 

решений

 

с

 

ограниченными

 

входами.

 

Каждый

 

столбец

 

таблицы

 

решений

 

соответствует

 

тесту.

 

 

6.

 

Столбцы

 

таблицы

 

решений

 

преобразуются

 

в

 

тесты.

 

Базовые

 

символы

 

для

 

записи

 

функциональных

 

диаграмм

 

показаны

 

на

 

рис.

 

6.9.

  

 

Рис.

 

6.9

 

—

 

Базовые

 

логические

 

отношения

                                      

функциональных

 

диаграмм

 

Каждый

 

узел

 

диаграммы

 

может

 

находиться

 

в

 

двух

 

со-

стояниях

 

—

 

0

 

или

 

1;

 

0

 

означает

 

состояние

 

«отсутствует»,

 

а

 

1

 

—

 

«присутствует».

 

Функция

 

тождество

 

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

 

что

 

если

 

значение

 

a

 

есть

 

1,

 

то

 

и

 

значение

 

b

 

есть

 

1;

 

в

 

противном

 

случае

 

значение

 

b

 

есть

 

0.

 

Функция

 

не

 

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

 

что

 

если

 

a

 

есть

 

1,

 

то

 

b

 

есть

 

0;

 

в

 

противном

 

случае

 

b

 

есть

 

1.

 

Функция

 

или

 

устанав-

ливает,

 

что

 

если

 

a,

 

или

 

b,

 

или

 

c

 

есть

 

1,

 

то

 

d

 

есть

 

1;

 

в

 

противном

 

случае

 

d

 

есть

 

0.

 

Функция

 

и

 

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

 

что

 

если

 

d

 

и

 

b

 

есть

 

1,

 

a

 

b

 

Тождество

 

a

 

b

 

Не

 

b

 

Или

 

a

 

c

 

V

 

И

 

a

 

b

 

Λ

 

d

 

c

 

background image

 

 

 
 

149 

то

 

и

 

c

 

есть

 

1;

 

в

 

противном

 

случае

 

c

 

есть

 

0.

 

Последние

 

две

 

функ-

ции

 

разрешают

 

иметь

 

любое

 

число

 

входов.

 

Для

 

иллюстрации

 

изложенного

 

рассмотрим

 

диаграмму,

 

отображающую

 

спецификацию:

 

Символ

 

в

 

колонке

 

1

 

должен

 

быть

 

буквой

 

«А»

 

или

 

«В»,

 

а

 

в

 

колонке

 

2

 

—

 

цифрой.

 

В

 

этом

 

случае

 

файл

 

обновляется.

 

Если

 

первый

 

символ

 

неправильный,

 

то

 

выдается

 

сообщение

 

Х12,

 

а

 

если

 

второй

 

символ

 

неправильный

 

—

 

сообщение

 

X13.

 

Причинами

 

являются:

 

1

 

—

 

символ

 

«А»

 

в

 

колонке

 

1;

 

2

 

—

 

символ

 

«В»

 

в

 

колонке

 

1;

 

3

 

—

 

цифра

 

в

 

колонке

 

2,

 

а

 

следствиями

 

—

 

70

 

—

 

файл

 

обновляется;

 

71

 

—

 

выдается

 

сообщение

 

Х12;

  

72

 

—

 

выдается

 

сообщение

 

X13.

 

Функциональная

 

диаграмма

 

показана

 

на

 

рис.

 

6.10.

 

Отме-

тим,

 

что

 

здесь

 

создан

 

промежуточный

 

узел

 

11.

 

 

Рис.

 

6.10

 

—

 

Пример

 

функциональной

                                           

диаграммы

 

На

 

рис.

 

6.11

 

показана

 

эквивалентная

 

логическая

 

схема.

 

 

Рис.

 

6.11

 

—

 

Логическая

 

схема,

 

эквивалентная

                                     

диаграмме

 

на рис.

 

6.10

 

Хотя

 

диаграмма

 

отображает

 

спецификацию,

 

она

 

содержат

 

невозможную

 

комбинацию

 

причин

 

—

 

причины

 

1

 

и

 

2

 

не

 

могут

 

быть

 

установлены

 

в

 

1

 

одновременно.

 

В

 

большинстве

 

программ

 

определенные

 

комбинации

 

причин

 

невозможны

 

из-за

 

синтакси-

1

 

2

 

V

 

71

 

72

 

11

 

3

 

70

 

Λ

 

V

 

1

 

2

 

3

 

71

 

Λ

 

70

 

72

 

background image

 

 

 
 

150 

ческих

 

или

 

внешних

 

ограничений

 

(например,

 

символ

 

не

 

может

 

принимать

 

значения

 

«А»

 

и

 

«В»

 

одновременно).

 

 

Рис.

 

6.12

 

—

 

Символы

 

ограничений

 

В

 

этом

 

случае

 

используются

 

дополнительные

 

логические

 

ограничения,

 

изображенные

 

на

 

рис.

 

6.12.

 

Ограничение

 

E

 

уста-

навливает,

 

что

 

E

 

должно

 

быть

 

истинным,

 

если

 

хотя

 

бы

 

одна

 

из

 

причин

 

—

 

a

 

или

 

b

 

—

 

принимает

 

значение

 

1

 

(a

 

и

 

b

 

не

 

могут

 

при-

нимать

 

значение

 

1

 

одновременно).

 

Ограничение

 

I

 

устанавлива-

ет,

 

что,

 

по

 

крайней

 

мере,

 

одна

 

из

 

величин

 

a,

 

b

 

или

 

c

 

всегда

 

должна

 

быть

 

равной

 

1

 

(a,

 

b

 

и

 

c

 

не

 

могут

 

принимать

 

значение

 

0

 

одновременно).

 

Ограничение

 

O

 

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

 

что

 

одна

 

и

 

только

 

одна

 

из

 

величин

 

a

 

или

 

b

 

должна

 

быть

 

равна

 

1.

 

Ограни-

чение

 

R

 

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

 

что

 

если

 

a

 

принимает

 

значение

 

1,

 

то

 

и

 

b

 

должно

 

быть

 

равно

 

1

 

(т.е.

 

невозможно,

 

чтобы

 

a

 

было

 

равно

 

1,

 

а

 

b

 

—

 

0).

 

 

Рис.

 

6.13

 

—

 

Символ

 

для

 

скрытого

 

ограничения

 

Исключает

 

a

 

b

 

E

 

Включает

 

a

 

c

 

b

 

I

 

Одно

 

и

 

только

 

одно

 

a

 

b

 

O

 

Требует

 

b

 

R

 

a

 

b

 

M

 

a

 

Источник: https://files.student-it.ru/previewfile/390