Курсовая работа: Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApi
3.3 Требования к программе
Требуется проверить работу логической и интерфейсной частей программ. А так же обеспечить контроль входных и выходных данных.
3.4 Требования к программной документацииВ приложении необходимо запустить справочную систему.
3.5 Средства и порядок испытанийИспытание приложения будет производиться 2-мя методами: “белым и черным ящиками”.
3.6 Методы испытаний
3.6.1 Тестирование методом белого ящика:
Прежде чем нумеровать текст программы, необходимо все циклы изменить на структурированные, сложные условия разбить на простые, а линейные части программы(по возможности) записать в одну строку. Затем строки текста функции нумеруются: номер получают только те строки, которые содержат операторы, условия или закрывающие операторные скобки.
1) Тестирование процедуры выполняющей запись данных в проецируемый файл(2 этап выполнения программы). В данном случае это является первым заданием курсового проекта - обмен данными между приложениями с помощью файла проецируемого в память.
1инициализация
2if Edit1.Text <> '' then
Begin
WriteDataInMMF(Nicname+' Написал:'+#13#10+string(Edit1.Text));
(тело функции WriteDataInMMF(вхдными данными является строка S)
имеет следующий вид):
begin
3 WaitForSingleObject(HMutex, INFINITE);
PBaseAdress:=MapViewOfFile(HFileSender,FILE_MAP_WRITE,0,0,Length(s)+4);
4 if(PBaseAdress = nil) then
begin
5 CloseHandle(HFileSender);
st:='не удалось передать данные';
Application.MessageBox(st,'Сообщение...',MB_OK);
exit;
end;
begin
6 integer(PBaseAdress^):=length(s);
CopyMemory(Pointer(Integer(PBaseAdress)+4),PChar(s),length(s));
UnmapViewOfFile(PBaseAdress);
SetEvent(HEvent);
ReleaseMutex(HMutex);
7 end;
8 end;
9 Edit1.Text:='';
10 end
else
11 exit;
12 end;
Рисунок 4.1 – Потоковый граф обработчика события «Событие1» которое происходит при нажатии на кнопку «ОТПРАВИТЬ» на основной форме программы.
Цикломатическая сложность потокового графа:
1) V(G) = 3 региона;
2) V(G) = 13 дуг - 12 узлов + 2 = 3;
3) V(G) = 2 предикатных узла +1 = 3.
Базовое множество независимых линейных путей:
Путь 1:1-2-11-12 .
Путь 2: 1-2-3-4-5-12.
Путь 3: 1-2-3-4-5-6-7-8-9-10-12.
Таблица тестовых вариантов 4.1
№ пути |
Исходные данные | Ожидаемые результаты | Реальные результаты |
1 | Строка содержащая, которая должна содержать текст сообщения пуста | Не происходит отправки пустого сообщения | Состояние программы после перехода на главную форму не |
2 | Не удалось отобразить файл на адресное пространство процесса при обращении к дескриптору файла , проецируемого в память. |
Сообщение: «Не удалось отобразить файл на адресное пространство процесса».. |
Сообщение: «Не удалось отобразить файл на адресное пространство процесса». |
3 | Текст сообщения: «Привет!» | Появление текста «Привет!» в поле истории переписки. | Удачный исход – появление текста «Привет!» в поле истории переписки |
2) Тестирование процедуры выполняющей создание дескрипторов логического диска с
которым ведётся работа и дескриптора жёсткого диска которому принадлежит этот логический диск(3 этап выполнения программы ).
1 инициализация
2 if hDrive <> 0 then
3CloseHandle(hDrive);
4 if hMBRDrive <> 0 then
5CloseHandle(hMBRDrive);
6 discNameBPB:='\\.\'+DriveComboBox1.Drive+':';
discNameMBR:='\\.\PHYSICALDRIVE'+intToStr(0);
hMBRDrive:= CreateFile(PChar(discNameMBR),GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
hDrive:= CreateFile(PChar(discNameBPB),GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
7 if (hDrive <> INVALID_HANDLE_VALUE) and (hMBRDrive <> INVALID_HANDLE_VALUE) then
begin
8 Result := DeviceIoControl(hDrive,IOCTL_DISK_GET_DRIVE_GEOMETRY,nil,0,
@DiscGeometry,SizeOf(TDiscGeometry),junk,nil) and (junk = SizeOf(TDiscGeometry));
DiscGeometryShow();
9 end
else
begin
10 ShowMessage('не удалось создать дескрипторы дисков');
11 exit;
end;
12 end;
Рисунок 4.2 Потоковый граф обработчика события «С1» которое происходит при нажатии на кнопку «Начать работу с диском»
Цикломатическая сложность потокового графа:
1) V(G) = 4 регионов;
2) V(G) = 14 дуга - 12 узлов + 2 = 4;
3) V(G) = 3 предикатных узлов +1 = 4.
Путь 1:1-2-4-6-7-10-11-12;
Путь 2:1-2-3-4-6-7-10-11-12.
Путь 3: 1-2-4-5-6-7-10-11-12.
Путь 4:1-2-3-4-5-7-8-9-12.
№ пути |
Исходные данные | Ожидаемые результаты | Реальные результаты |
1 | Дескрипторы файлов не созданы . | Невозможно получить данные о носителе вывод сообщения: «Не удалось создать дескрипторы файлов» |
Вывод сообщения «Не удалось создать дескрипторы файлов» |
2 | Создан дескриптор файла BPB | Невозможно получить данные о носителе вывод сообщения: «Не удалось создать дескрипторы файлов» |
Вывод сообщения «Не удалось создать дескрипторы файлов» |
3 | Создан дескриптор файла MBR | Невозможно получить данные о носителе вывод сообщения: «Не удалось создать дескрипторы файлов» |
Вывод сообщения «Не удалось создать дескрипторы файлов» |
4 | Дескрипторы файлов существуют как MBR так и BPB | Загрузка данных о носителе. | Загрузка данных о носителе. |
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11