- •Специфицирование и тестирование программ
- •1 Краткие теоретические сведения
- •1.1 Внешние спецификации программного обеспечения
- •1.1.2 Спецификация функций с помощью таблиц решений
- •1.2 Стратегии тестирования
- •1.3 Метод тестирования таблиц решений
- •2 Методика выполнения курсовой работы
- •2.1 Цель работы
- •2.3 Ограничения на входные и выходные данные
- •2.2 Постановка задачи обработки информации
- •2.4 Структурирование целей разрабатываемой программы
- •2.5 Внешние спецификации функций разрабатываемой программы
- •2.6 Рекомендации по кодированию программы
- •2.7 Тестирование программы
- •2.7.1 Тестирование функции ‘проверка на корректность f2’
- •2.7.2 Тестирование функции ‘формирование строк выходной таблицы’
- •3 Оформление и содержание курсовой работы
- •Список литературы
- •Специфицирование и тестирование программ
- •Специфицирование и тестирование программ
2.4 Структурирование целей разрабатываемой программы
Предлагаемая задача обработки данных не настолько сложна, чтобы её обязательно необходимо было структурировать. Однако попытаемся вычленить из неё более простые функции, чтобы упростить их описание и, в дальнейшем, кодирование. Основанием для такого структурирования послужат следующие соображения.
Корректность информации файла F2 следует проверять до совместной обработки файлов F1 и F2. Более того, в случае её некорректности есть смысл решение задачи обработки прекратить до устранения всех ошибок в файле F2. Следовательно, эту функцию выделим из задачи обработки, как относительно самостоятельную, и назовем её “проверка на корректность файла F2”.
При совместной обработке файлов F1 и F2 должны проверяться условия ‘в’ и ‘г’. Результатом совместной обработки и проверки условий ‘в’ и ‘г’ должно быть формирование записи в выходной таблице либо сообщение, предупреждающее об ошибке в информации файла F1.
Следует отметить, что условия ‘а’ и ‘б’ могут быть проверены лишь после того, как обработаны все записи файла F1, относящиеся к одной академической группе. В случае, если ограничения выполняются, никаких действий не требуется. Если же ограничения не выполняются, то рекомендуется выдать в выходной таблице предупреждающие сообщения о нарушении ограничений. Эти действия подводят итог обработки данных, относящихся к одной академической группе.
Назовем соответственно эти функции “формирование строк выходной таблицы” и “подведение итогов обработки данных одной академической группы” и приведем структуру целей разрабатываемой программы ( рисунок 3.1).
Рисунок 2.1 -Структура целей программы
2.5 Внешние спецификации функций разрабатываемой программы
Внешние спецификации функций разрабатываемой программы строятся в соответствии с описанной в п. 1.1.2 методикой построения таблиц решений.
Функция ‘проверка на корректность файла F2’ должна выявлять возможную неуникальность номеров или наименований предметов и в случае обнаружения такой ситуации заканчивать обработку. Это словесное описание выполняемой функции формализуется в виде ТР, приведенной в таблице 2.4.
Напомним, что в ТР буква “Д” в программе соответствует ситуации, когда логическая переменная принимает значение TRUE, соответственно Н - логическая переменная принимает значение FALSE. Цифрами отмечаются те действия, которые должны быть выполнены при истинности или ложности проверяемых условий, причем значение указывает порядок выполнения в программе соответствующих операторов. Черточкой “-“ отмечены те условия, которые в соответствующей комбинации не проверяются.
Таблица 2.4 - ТР для функции “проверка на корректность файла F2”
Условия |
1 |
2 |
3 |
4 |
5 |
Имеют ли 2 разных предмета одинаковые номера? |
Н |
Д |
Н |
- |
- |
Присвоены ли 2 разных номера одному предмету? |
Н |
Н |
Д |
- |
- |
Просмотрены все записи файла F2? |
Н |
Н |
Н |
Д |
Д |
Обнаружена некорректность F2? |
- |
- |
- |
Д |
Н |
Действия |
|
|
|
|
|
Выдать сообщение 1 ‘2-м предметам’ <имя1, имя2> ‘присвоен один номер’ <N> |
|
1 |
|
|
|
Выдать сообщение 2 ‘предмету’ <имя> ‘присвоены 2 разных номера’ <N1,N2> |
|
|
1 |
|
|
Установить признак некорректности |
|
2 |
2 |
|
|
Занести запись из файла в таблицу TAB |
1 |
|
|
|
|
Продолжить обработку |
2 |
3 |
3 |
|
1 |
Выдать сообщение 3 ‘внесите исправления в F2’ |
|
|
|
1 |
|
Прекратить обработку |
|
|
|
2 |
|
В выдаваемых программой сообщениях в ограничителях ‘<>’ указаны те элементы сообщения, которые должны быть заменены соответствующим наименованием предмета (имя, имя1, имя2) или номером предмета (N, N1, N2) из файла F2. Таблица TAB представляет собой массив записей следующей структуры:
type zap1 : record
N: integer; {номер предмета}
NAME: string (30) {наименование предмета}
end;
var TAB : array [1..30] of zap1;
Содержанием функции ‘формирование строк выходной таблицы’ является проверка ограничений 3, 4 пункта 2.3 и формирование списка предметов для функции ‘подведение итогов обработки данных одной академической группы’. Соответствующая ТР приведена в таблице 2.5.
Формируемый список предметов представляет собой таблицу - в языке программирования PASCAL это массив записей следующего вида:
type zap2 : record
nom : integer; {номер предмета}
itog : integer {общее количество оценок по предмету}
end;
var spisok : array [1..5] of zap2;
Таблица 2.5 - ТР для функции “формирование строк выходной таблицы”
Условия |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Оценка в интервале [2,5]? |
Д |
Д |
Н |
Н |
Д |
Д |
- |
Существует ( |
Д |
Д |
- |
- |
Н |
Н |
- |
в списке предметов номер предмета, совпадающий с номером предмета из F1? |
Н |
Д |
- |
- |
- |
- |
- |
Просмотрены все записи файла F1, относящиеся к одной академической группе? |
Н |
Н |
Н |
Д |
Н |
Д |
- |
Просмотрены все записи файла F1? |
Н |
Н |
Н |
Н |
Н |
Н |
Д |
Действия |
|
|
|
|
|
|
|
Выдать сообщение 4 ‘оценка не в диапазоне [2,5]’ |
|
|
1 |
1 |
|
|
|
Выдать сообщение 5 ‘не найдено наименование, соответствующее номеру предмета’ <N> |
|
|
|
|
1 |
1 |
|
Записать номер предмета в список |
1 |
|
|
|
|
|
|
Добавить 1 к общему количеству оценок по текущему предмету |
2 |
1 |
|
|
|
|
|
Выполнить функцию ‘подведение итогов обработки данных одной академической группы’ |
|
|
|
2 |
|
2 |
1 |
Очистить список |
|
|
|
3 |
|
3 |
|
Продолжить обработку |
3 |
2 |
2 |
4 |
2 |
4 |
|
Закончить обработку |
|
|
|
|
|
|
2 |
Отметим, что столбцы 4 и 6 таблицы 2.5 отражают такую ситуацию, когда ошибка обнаруживается в первой записи, относящейся к академической группе, а столбцы 3 и 5 - когда ошибочная запись не является первой записью среди данных одной академической группы. Кроме того, записи, в которых обнаруживается ошибка (неправильно указана оценка или номер предмета), в дальнейшем не обрабатываются, поэтому не исключена ситуация, когда в одной академической группе не будет обнаружено ни одной правильной записи.
Сформированный список обрабатывается функцией ‘подведение итогов обработки данных одной академической группы’. Причем очевидно, что если в списке больше 5 предметов, то нарушается ограничение ‘а’ из пункта 2.3, а если общее количество оценок больше 25, то нарушается ограничение ‘б’ из пункта 2.3. ТР для этой функции приводится в таблице 2.6.
Таблица 2.6 - ТР функции ‘подведение итогов обработки данных одной академической группы’
Условия |
1 |
2 |
3 |
4 |
5 |
Количество предметов в списке больше 1? |
Д |
Н |
Д |
Д |
Д- |
Количество предметов в списке меньше 6? |
Д |
- |
Д |
Н |
Н |
Общее число оценок по предмету <=25? |
Д |
- |
Н |
Д |
Н |
Действия |
|
|
|
|
|
Выдать сообщение 6 ‘в группе’ <номер группы> ‘ни одна запись не расшифрована’ |
|
1 |
|
|
|
Выдать сообщение 7 ‘в группе’ <номер группы> ‘больше 5 предметов’ |
|
|
|
1 |
1 |
Выдать сообщение 8 ‘в группе’ <номер группы> ‘по предмету’ <имя> ‘больше 25 оценок’ |
|
|
1 |
|
2 |
Закончить функцию |
1 |
|
|
|
|
