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

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

 

 

 
 

141 

сок,

 

таблица),

 

то

 

сосредоточить

 

внимание

 

на

 

первом

 

и

 

послед-

нем

 

элементах

 

этого

 

множества.

 

6.

 

Попробовать

 

свои

 

силы

 

в

 

поиске

 

других

 

граничных

 

ус-

ловий.

 

Чтобы

 

проиллюстрировать

 

необходимость

 

анализа

 

гра-

ничных

 

значений,

 

можно

 

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

 

программу

 

анализа

 

тре-

угольника,

 

приведенную

 

в

 

п.

 

6.2.1.

 

Для

 

задания

 

треугольника

 

входные

 

значения

 

должны

 

быть

 

целыми

 

положительными

 

чис-

лами

 

и

 

сумма

 

любых

 

двух

 

из

 

них

 

должна

 

быть

 

больше

 

третьего.

 

Если

 

определены

 

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

 

разбиения,

 

то

 

целесообразно

 

определить

 

одно

 

разбиение,

 

в

 

котором

 

это

 

условие

 

выполняет-

ся,

 

и

 

другое,

 

в

 

котором

 

сумма

 

двух

 

целых

 

не

 

больше

 

третьего.

 

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

 

двумя

 

возможными

 

тестами

 

являются

 

3—4—5

 

и

 

1—2—4.

 

Тем

 

не

 

менее

 

здесь

 

есть

 

вероятность

 

пропуска

 

ошиб-

ки.

 

Иными

 

словами,

 

если

 

выражение

 

в

 

программе

 

было

 

закоди-

ровано

 

как

 

A+B

≥C

 

вместо

 

A+B>C,

 

то

 

программа

 

ошибочно

 

со-

общала

 

бы

 

нам,

 

что

 

числа

 

1—2—3

 

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

 

правильный

 

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

 

треугольник.

 

Таким

 

образом,

 

существенное

 

различие

 

между

 

анализом

 

граничных

 

значений

 

и

 

эквивалент-

ным

 

разбиением

 

заключается

 

в

 

том,

 

что

 

анализ

 

граничных

 

зна-

чений

 

исследует

 

ситуации,

 

возникающие

 

на

 

границах

 

и

 

вблизи

 

границ

 

эквивалентных

 

разбиений.

 

В

 

качестве

 

примера

 

для

 

применения

 

метода

 

анализа

 

гра-

ничных

 

значений

 

рассмотрим

 

следующую

 

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

 

про-

граммы.

 

MTEST

 

есть

 

программа,

 

которая

 

сортирует

 

различную

 

информацию

 

об

 

экзаменах.

 

Входом

 

программы

 

является

 

файл,

 

названный

 

OCR,

 

который

 

содержит

 

80-символьные

 

записи.

 

Первая

 

запись

 

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

 

название;

 

ее

 

содержание

 

использу-

ется

 

как

 

заголовок

 

каждого

 

выходного

 

отчета.

 

Следующее

 

множество

 

записей

 

описывает

 

правильные

 

ответы

 

на

 

экзамене.

 

Каждая

 

запись

 

этого

 

множества

 

содержит

 

«2»

 

в

 

качестве

 

по-

следнего

 

символа.

 

В

 

первой

 

записи

 

в

 

колонках

 

1—3

 

задается

 

число

 

ответов,

 

оно

 

принимает

 

значения

 

от

 

1

 

до

 

999.

 

Колонки

 

10—59

 

включают

 

сведения

 

о

 

правильных

 

ответах

 

на

 

вопросы

 

с

 

номерами

 

1—50,

 

любой

 

символ

 

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

 

как

 

ответ.

 

По-

следующие

 

записи

 

содержат

 

в

 

колонках

 

10—59

 

сведения

 

о

 

пра-


background image

 

 

 
 

142 

вильных

 

ответах

 

на

 

вопросы

 

с

 

номерами

 

51—100,

 

101—150

 

и

 

т.д.

 

Третье

 

множество

 

записей

 

описывает

 

ответы

 

каждого

 

студента;

 

любая

 

запись

 

этого

 

набора

 

имеет

 

число

 

«3»

 

в

 

восьмидесятой

 

колонке.

 

Для

 

каждого

 

студента

 

первая

 

запись

 

в

 

колонках

             

1—9

 

содержит

 

его

 

имя

 

или

 

номер

 

(любые

 

символы);

 

в

 

колонках

 

10—59

 

помещены

 

сведения

 

о

 

результатах

 

ответов

 

студентов

 

на

 

вопросы

 

с

 

номерами

 

1—50.

 

Если

 

в

 

тесте

 

предусмотрено

 

более

 

чем

 

50

 

вопросов,

 

то

 

последующие

 

записи

 

для

 

студента

 

описы-

вают

 

ответы

 

51—100,

 

101—150

 

и

 

т.д.

 

в

 

колонках

 

10—59.

 

Мак-

симальное

 

число

 

студентов

 

  

200.

 

Форматы

 

входных

 

записей

 

показаны

 

на

 

рис.

 

6.8.

 

 

Название

 

Число

 

вопросов

 

 

Правильные

 

ответы:

 

1—50

 

 

2

 

1

           

3

 

4

         

9

 

10

                                 

59

 

60

            

79

 

80

 

 

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

 

ответы:

 

51—100

 

 

2

 

 

 

 

 

 

Идентификатор

 

студента

 

Ответы

 

студента:

 

1—50

 

 

3

 

 

 

 

 

 

 

Ответы

 

студента:

 

51—100

 

 

3

 

 

 

 

 

 

Идентификатор

 

студента

 

Ответы

 

студента:

 

1—50

 

 

3

 

Рис.

 

6.8

 

 

Структуры

 

входных

 

записей

 

для

 

программы

 

MTEST

 

Выходными

 

записями

 

являются:

 

 

1)

 

отчет,

 

упорядоченный

 

в

 

лексикографическом

 

порядке

 

идентификаторов

 

студентов

 

и

 

показывающий

 

качество

 

ответов

 

каждого

 

студента

 

(процент

 

правильных

 

отве-

тов)

 

и

 

его

 

ранг;

 

 

2)

 

аналогичный

 

отчет,

 

но

 

упорядоченный

 

по

 

качеству;

 

 

3)

 

отчет,

 

показывающий

 

среднее

 

значение,

 

медиану

 

и

 

среднеквадратическое

 

отклонение

 

качества

 

ответов;

 


background image

 

 

 
 

143 

 

4)

 

отчет,

 

упорядоченный

 

по

 

номерам

 

вопросов

 

и

 

показы-

вающий

 

процент

 

студентов,

 

отвечающих

 

правильно

 

на

 

каждый

 

вопрос.

 

Конец

 

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

 

Начнем

 

методичное

 

чтение

 

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

 

выявляя

 

вход-

ные

 

условия.

 

Первое

 

граничное

 

входное

 

условие

 

есть

 

пустой

 

входной

 

файл.

 

Второе

 

входное

 

условие

 

 

карта

 

(запись)

 

назва-

ния;

 

граничными

 

условиями

 

являются

 

отсутствие

 

карты

 

назва-

ния,

 

самое

 

короткое

 

и

 

самое

 

длинное

 

названия.

 

Следующими

 

входными

 

условиями

 

служат

 

наличие

 

записей

 

о

 

правильных

 

ответах

 

и

 

наличие

 

поля

 

числа

 

вопросов

 

в

 

первой

 

записи

 

отве-

тов.

 

1—999

 

не

 

является

 

классом

 

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

 

для

 

числа

 

во-

просов,

 

так

 

как

 

для

 

каждого

 

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

 

из

 

50

 

записей

 

может

 

иметь

 

место

 

что-либо

 

специфическое

 

(т.е.

 

необходимо

 

много

 

записей).

 

Приемлемое

 

разбиение

 

вопросов

 

на

 

классы

 

эквива-

лентности

 

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

 

разбиение

 

на

 

два

 

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

 

1—50

 

и

 

51—999.

 

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

 

необходимы

 

тесты,

 

где

 

поле

 

числа

 

во-

просов

 

принимает

 

значения

 

0,

 

1,

 

50,

 

51

 

и

 

999.

 

Эти

 

тесты

 

покры-

вают

 

большинство

 

граничных

 

условий

 

для

 

записей

 

о

 

правиль-

ных

 

ответах.

 

Однако

 

существуют

 

три

 

более

 

интересные

 

ситуа-

ции

 

 

отсутствие

 

записей

 

об

 

ответах,

 

наличие

 

записей

 

об

 

отве-

тах

 

типа

 

«много

 

ответов

 

на

 

один

 

вопрос»

 

и

 

наличие

 

записей

 

об

 

ответах

 

типа

 

«мало

 

ответов

 

на

 

один

 

вопрос».

 

Например,

 

число

 

вопросов

 

60

 

и

 

имеются

 

три

 

записи

 

об

 

ответах

 

в

 

первом

 

случае

 

и

 

одна

 

запись

 

об

 

ответах

 

во

 

втором.

 

Таким

 

образом,

 

определены

 

следующие

 

тесты:

 

 

1.

 

Пустой

 

входной

 

файл.

 

 

2.

 

Отсутствует

 

запись

 

названия.

 

 

3.

 

Название

 

длиной

 

в

 

один

 

символ.

 

 

4.

 

Название

 

длиной

 

в

 

80

 

символов.

 

 

5.

 

Экзамен

 

из

 

одного

 

вопроса.

 

 

6.

 

Экзамен

 

из

 

50

 

вопросов.

 

 

7.

 

Экзамен

 

из

 

51

 

вопроса.

 

 

8.

 

Экзамен

 

из

 

999

 

вопросов.

 

 

9.

 

0

 

вопросов

 

на

 

экзамене.

 

 

10.

 

Поле

 

числа

 

вопросов

 

имеет

 

нечисловые

 

значения.

 


background image

 

 

 
 

144 

 

11.

 

После

 

записи

 

названия

 

нет

 

записей

 

о

 

правильных

 

отве-

тах.

 

 

12.

 

Имеются

 

записи

 

типа

 

«много

 

правильных

 

ответов

 

на

 

один

 

вопрос».

 

 

13.

 

Имеются

 

записи

 

типа

 

«мало

 

правильных

 

ответов

 

на

 

один

 

вопрос».

 

Следующие

 

входные

 

условия

 

относятся

 

к

 

ответам

 

студен-

тов.

 

Тестами

 

граничных

 

значений

 

в

 

этом

 

случае,

 

по-видимому,

 

должны

 

быть:

 

 

14.

 

0

 

студентов.

 

 

15.

 

1

 

студент.

 

 

16.

 

200

 

студентов.

 

 

17.

 

201

 

студент.

 

 

18.

 

Есть

 

одна

 

запись

 

об

 

ответе

 

студента,

 

но

 

существуют

 

две

 

записи

 

о

 

правильных

 

ответах.

 

 

19.

 

Запись

 

об

 

ответе

 

вышеупомянутого

 

студента

 

первая

 

в

 

файле.

 

 

20.

 

Запись

 

об

 

ответе

 

вышеупомянутого

 

студента

 

послед-

няя

 

в

 

файле.

 

 

21.

 

Есть

 

две

 

записи

 

об

 

ответах

 

студента,

 

но

 

существует

 

только

 

одна

 

запись

 

о

 

правильном

 

ответе.

 

 

22.

 

Запись

 

об

 

ответах

 

вышеупомянутого

 

студента

 

первая

 

в

 

файле.

 

 

23.

 

Запись

 

об

 

ответах

 

вышеупомянутого

 

студента

 

послед-

няя

 

в

 

файле.

 

Можно

 

также

 

получить

 

набор

 

тестов

 

для

 

проверки

 

вы-

ходных

 

границ,

 

хотя

 

некоторые

 

из

 

выходных

 

границ

 

(например,

 

пустой

 

отчет

 

1)

 

покрываются

 

приведенными

 

тестами.

 

Гранич-

ными

 

условиями

 

для

 

отчетов

 

1

 

и

 

2

 

являются:

 

 

0

 

студентов

 

(так

 

же,

 

как

 

тест

 

14);

 

 

1

 

студент

 

(так

 

же,

 

как

 

тест

 

15);

 

 

200

 

студентов

 

(так

 

же,

 

как

 

тест

 

16);

 

 

24.

 

Оценки

 

качества

 

ответов

 

для

 

всех

 

студентов

 

одинако-

вы.

 

 

25.

 

Оценки

 

качества

 

ответов

 

всех

 

студентов

 

различные.

 


background image

 

 

 
 

145 

 

26.

 

Оценки

 

качества

 

ответов

 

некоторых,

 

но

 

не

 

всех

 

сту-

дентов

 

одинаковы

 

(для

 

проверки

 

правильности

 

вычис-

ления

 

рангов).

 

 

27.

 

Студент

 

получает

 

оценку

 

качества

 

ответа

 

0.

 

 

28.

 

Студент

 

получает

 

оценку

 

качества

 

ответа

 

100.

 

 

29.

 

Студент

 

имеет

 

идентификатор

 

наименьшей

 

возможной

 

длины

 

(для

 

проверки

 

правильности

 

упорядочивания).

 

 

30.

 

Студент

 

имеет

 

идентификатор

 

наибольшей

 

возможной

 

длины.

 

 

31.

 

Число

 

студентов

 

таково,

 

что

 

отчет

 

имеет

 

размер,

 

не-

сколько

 

больший

 

одной

 

страницы

 

(для

 

того

 

чтобы

 

по-

смотреть

 

случай

 

печати

 

на

 

другой

 

странице).

 

 

32.

 

Число

 

студентов

 

таково,

 

что

 

отчет

 

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

 

на

 

одной

 

странице.

 

Граничные

 

условия

 

отчета

 

3

 

(среднее

 

значение,

 

медиана,

 

среднеквадратическое

 

отклонение):

 

 

33.

 

Среднее

 

значение

 

максимально

 

(качество

 

ответов

 

всех

 

студентов

 

наивысшее).

 

 

34.

 

Среднее

 

значение

 

равно

 

0

 

(качество

 

ответов

 

всех

 

сту-

дентов

 

равно

 

0).

 

 

35.

 

Среднеквадратическое

 

отклонение

 

равно

 

своему

 

мак-

симуму

 

(один

 

студент

 

получает

 

оценку

 

0,

 

а

 

другой

 

 

100).

 

 

36.

 

Среднеквадратическое

 

отклонение

 

равно

 

0

 

(все

 

сту-

денты

 

получают

 

одну

 

и

 

ту

 

же

 

оценку).

 

Тесты

 

33

 

и

 

34

 

покрывают

 

и

 

границы

 

медианы.

 

Другой

 

полезный

 

тест

 

описывает

 

ситуацию,

 

где

 

существует

 

0

 

студентов

 

(проверка

 

деления

 

на

 

0

 

при

 

вычислении

 

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

 

ожи-

дания),

 

но

 

он

 

идентичен

 

тесту

 

14.

 

Проверка

 

отчета

 

4

 

дает

 

следующие

 

тесты

 

граничных

 

зна-

чений:

 

 

37.

 

Все

 

студенты

 

отвечают

 

правильно

 

на

 

первый

 

вопрос.

 

 

38.

 

Все

 

студенты

 

неправильно

 

отвечают

 

на

 

первый

 

во-

прос.

 

 

39.

 

Все

 

студенты

 

правильно

 

отвечают

 

на

 

последний

 

во-

прос.