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

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

 

 

 
 

61

2)  проектирование  новых  тестов,  каждый  из  которых  по-

крывает  как  можно  большее  число  непокрытых  правильных 
классов эквивалентности до тех пор, пока все правильные клас-
сы  эквивалентности  не  будут  покрыты  тестами  (только  не  об-
щими);

 

3)  запись  тестов,  каждый  из  которых  покрывает  один  и 

только один из непокрытых неправильных классов эквивалент-
ности до тех пор, пока все неправильные классы эквивалентно-
сти не будут покрыты тестами.

 

Причина покрытия неправильных классов эквивалентности 

индивидуальными  тестами  состоит  в  том,  что  определенные 
проверки с ошибочными входами скрывают или заменяют дру-
гие проверки с ошибочными входами. Например, спецификация 
устанавливает  «тип  книги  при  поиске  (ВЫЧИСЛИТЕЛЬНАЯ 
ТЕХНИКА,  ПРОГРАММИРОВАНИЕ  или  ОБЩИЙ)  и  количе-
ство (1—9999)». Тогда тест

 

XYZ 0

 

отображает два ошибочных условия (неправильный тип книги и 
количество) и, вероятно, не будет осуществлять проверку коли-
чества,  так  как  программа  может  ответить «XYZ — 
НЕСУЩЕСТВУЮЩИЙ  ТИП  КНИГИ»  и  не  проверять  осталь-
ную часть входных данных.

 

Пример.  Предположим,  что  при  разработке  компилятора 

для  подмножества  языка  Фортран  требуется  протестировать 
синтаксическую  проверку  оператора DIMENSION. Специфика-
ция  приведена  ниже.  В  спецификации  элементы,  написанные 
латинскими  буквами,  обозначают  синтаксические  единицы,  ко-
торые в реальных операторах должны быть заменены соответст-
вующими значениями, в квадратные скобки заключены необяза-
тельные  элементы,  многоточие  показывает,  что  предшествую-
щий ему элемент может быть повторен подряд несколько раз.

 

Оператор DIMENSION используется  для  определения  мас-

сивов. Форма оператора DIMENSION:

 

DIMENSION ad [, ad

,

 

где ad есть описатель массива в форме

 

n(d[,d]

),

 


background image

 

 

 
 

62

где  n — символическое  имя  массива,  а  d — индекс  массива. 
Символические имена могут содержать от одного до шести сим-
волов — букв или цифр, причем первой должна быть буква. До-
пускается от одного до семи индексов. Форма индекса

 

[lb:]ub,

 

где lb и ub задают нижнюю и верхнюю границы индекса масси-
ва. Граница может быть либо константой, принимающей значе-
ния от –65534 до 65535, либо целой переменной (без индексов). 
Если lb не определена, то предполагается, что она равна едини-
це. Значение ub должно быть больше или равно lb. Если lb опре-
делена,  то  она  может  иметь  отрицательное,  нулевое  или  поло-
жительное  значение.  Как  и  все  операторы,  оператор 
DIMENSION может быть продолжен на нескольких строках.

 

(Конец спецификации).

 

Первый  шаг  заключается  в  том,  чтобы  идентифицировать 

входные условия и по ним определить классы эквивалентности 
(табл. 4.2). Классы  эквивалентности  в  таблице  обозначены  чис-
лами.

 

 

Таблица 4.2 — Классы эквивалентности 

 

 

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

 

Входные условия

 

Правильные

 

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

 

Число описателей массивов

 

один (1), больше 
одного (2)

 

ни одного (3)

 

Длина имени массива

 

1—6 (4)

 

0 (5), больше 6 (6)

 

Имя массива

 

содержит буквы (7) 
и цифры (8)

 

содержит другие 
символы (9)

 

Имя массива начинается с буквы

 

да (10)

 

нет (11)

 

Число индексов

 

1—7 (12)

 

0 (13), больше 7 
(14)

 

Верхняя граница

 

константа (15), 
целая переменная 
(16)

 

имя элемента мас-
сива (17), что-то 
иное (18)

 

Имя целой переменной

 

содержит буквы 
(19) и цифры (20)

 

состоит из других 
символов (21)

 

Целая переменная начинается с 
буквы

 

да (22)

 

нет (23)

 


background image

 

 

 
 

63

 

 

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

 

Входные условия

 

Правильные

 

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

 

Константа

 

–65534..65535 (24)

 

< –65534 (25),

 

> 65535 (26)

 

Нижняя граница определена

 

да (27), нет (28)

 

 

Верхняя граница по отношению 
к нижней границе

 

больше (29), равна 
(30)

 

меньше (31)

 

Значение нижней границы

 

< 0 (32), 0 (33),

 

> 0 (34)

 

 

Нижняя граница

 

константа (35), 
целая переменная 
(36)

 

имя элемента мас-
сива (37), что-то 
иное (38)

 

Оператор расположен на не-
скольких строках

 

да (39), нет (40)

 

 

 

Следующий шаг — построение теста, покрывающего один 

или более правильных классов эквивалентности. Например, тест

 

DIMENSION A(2)

 

покрывает классы 1, 4, 7, 10, 12, 15, 24, 28, 29 и 40. Далее опре-
деляются  один  или  более  тестов,  покрывающих  оставшиеся 
правильные классы эквивалентности. Так, тест

 

DIMENSION A 12345 (I, 9, J4XXXX, 65535, 1 , KLM, * 100),

 

BBB (–65534 : 100,0 : 1000,10 : 10,1: 65535)

 

покрывает  оставшиеся  классы.  Перечислим  неправильные 

классы эквивалентности и соответствующие им тесты:

 

(3) DIMENSION

 

(5) DIMENSION (10)

 

(6) DIMENSION A234567(2)

 

(9) DIMENSION A.I(2)

 

(11) DIMENSION 1A(10)

 

(13) DIMENSION В

 

(14) DIMENSION В (4,4,4,4,4,4,4,4)

 

(17) DIMENSION B(4,A(2))

 

(18) DIMENSION B(4

7)

 

(21) DIMENSION C(I.,10)

 

(23) DIMENSION C(10,1J)

 

(25) DIMENSION D(–65535:1)

 

Окончание табл. 4.2 


background image

 

 

 
 

64

(26) DIMENSION D(65536)

 

(31) DIMENSION D(4:3)

 

(37) DIMENSION D(A(2):4)

 

(38) DIMENSION D(.:4)

 

Эти классы эквивалентности покрываются 18 тестами. Хотя 

эквивалентное разбиение  значительно лучше случайного выбора 
тестов, оно все же имеет недостатки (т.е. пропускает определен-
ные типы высокоэффективных тестов). Следующие два метода — 
анализ  граничных  значений  и  использование  функциональных 
диаграмм (диаграмм причинно-следственных связей cause-effect 
graphing) — свободны  от  многих  недостатков,  присущих  экви-
валентному разбиению.

 

Результаты тестирования приводятся в заключении поясни-

тельной записки к курсовому проекту, также даются рекоменда-
ции  по  устранению  ошибок,  выявленных  в  результате  тестиро-
вания.

 


background image

 

 

 
 

65

РУКОВОДСТВО

 

СИСТЕМНОГО

 

ПРОГРАММИСТА

 

 
Составление руководства системного программиста — цель 

третьей части второй лабораторной работы. Также руководство 
системного  программиста  является  пятым  разделом  курсовой 
работы.

 

Требования  к  оформлению  руководства  системного  про-

граммиста  излагаются  в  ГОСТ 19.503-79 «Руководство  систем-
ного программиста. Требования к содержанию и оформлению». 

 
5.1 

ГОСТ

 19.503-79 

 
Настоящий  стандарт  устанавливает  требования  к  содержа-

нию и оформлению программного документа «Руководство сис-
темного программиста», определенного ГОСТ 19.101-77.

 

Стандарт полностью соответствует CТ СЭВ 2094-80. 

 

5.1.1 Общие положения 

 

1.1.  Структуру  и  оформление  документа  устанавливают  в 

соответствии с ГОСТ 19.105-78.

 

1.2.  Руководство  системного  программиста  должно  содер-

жать следующие разделы:

 

– общие сведения о программе;

 

– структура программы;

 

– настройка программы;

 

– проверка программы;

 

– дополнительные возможности;

 

– сообщения системному программисту.

 

В  зависимости  от  особенностей  документа  допускается 

объединять  отдельные  разделы  или  вводить  новые.  В  обосно-
ванных  случаях  допускается  раздел  «Дополнительные  возмож-
ности» не приводить, а в наименованиях разделов опускать сло-
во «программа» или заменять его наименованием программы.