
- •Пояснительная записка к курсовому проекту
- •2 Техническое задание 4
- •4 Программа и методика испытаний 36
- •5 Эксплуатационные документы 56
- •6 Приложение 62
- •7 Список литературы 79
- •1 Введение
- •3.4 Используемые технические средства
- •3.5 Вызов и загрузка
- •3.6 Входные данные
- •3.7 Выходные данные
- •3.8 Разработка справочной системы
- •3.9 Разработка значка компонента
- •3.10 Разработка установочной программы для программы тестирования
- •4.6 Методы испытаний
- •5.1.3 Настройка компонента
- •5.2.2 Выполнение программы тестирования компонента
- •5.2.3 Входные и выходные данные
- •5.2.4 Сообщения оператору
- •6 Приложение
- •6.1 Текст основного модуля компонента picturedbutton
- •6.2 Скриншоты работы программы picturedbutton_demo
- •7 Список литературы
3.10 Разработка установочной программы для программы тестирования
Для разработки установщика программы тестирования компонента использовалось приложение Smart Install Maker 5.02.
Созданная установочная программа помещает все файлы, необходимые для нормальной работы программы, в каталог, указанный пользователем.
В начале разработки был создан проект PicturedButton_Demo. В настройках проекта были изменены следующие разделы:
Информация. В этом разделе были изменены имя устанавливаемой программы на PicturedButton_Demo и имя компании на PB_Company.
Файлы. В этом разделе были выбраны файлы, которые необходимо перенести на компьютер пользователя.
Ярлыки. В этом разделе было указано, где создавать ярлыки при установке программы.
Интерфейс. В этом разделе был выбран внешний вид программы-установщика.
Остальные параметры остались по умолчанию.
Рисунок 39 – Ввод основной информации
Рисунок 40 – Выбор файлов, переносимых установочным приложением
Рисунок 41– Установка внешнего вида заголовка установочной программы
Рисунок 42 – Установка логотипа для установочной программы
Рисунок 43 – Указание ярлыков, создаваемых при установке
Установка программы и работа с ней представлены в приложении на рисунках 39-43.
4 ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ
4.1 ОБЪЕКТ ИСПЫТАНИЙ
Объектом испытаний является разработанный в курсовой работе компонент PicturedButton.
4.2 ЦЕЛЬ ИСПЫТАНИЙ
Целью испытаний является выявление возможных функциональных ошибок и сбоев, возникающих при работе данного компонента, обеспечение их устойчивого функционирования в процессе эксплуатации и подтверждение работоспособности.
4.3 ТРЕБОВАНИЯ К КОМПОНЕНТУ
Проверке в процессе тестирования подлежит функция масштабирования изображений TPicturedButton.SetSizePicture.
4.4 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ
Введение. Описывается содержание темы курсовой работы.
Техническое задание. Раздел оформляется по ГОСТ 19.201-78.
Описание программы (ГОСТ 19.402-78).
Пояснительная записка (ГОСТ 19.404-79).
4.5 СРЕДСТВА И ПОРЯДОК ИСПЫТАНИЙ
Технические средства, используемые во время испытаний:
Персональный компьютер с процессором Intel Core i5 450M 2,4 GHz
Объем ОЗУ: 4 Gb
Видеоадаптер: ATI Mobility Radeon HD 5470
Программные средства, используемые в процессе испытаний:
Тестовая программа PicturedButton_Demo.exe
Среда программирования: Borland Delphi 7
ОС: MS Windows 7
Порядок испытаний:
Отладка компонента на контрольных примерах в тестовой программе.
Тестирование методами «белого ящика» и «чёрного ящика» функции масштабирования изображений TPicturedButton.SetSizePicture.
4.6 Методы испытаний
Отладка приложения на контрольных примерах.
Первоначальное состояние программы представлено на рисунке 44.
Рисунок 44 – Начальное состояние программы
Пример 1: Загрузка изображения для свойства ClickImage.
Входные данные:
Графическое изображение
Щелчок мыши
Ожидаемый результат:
Появление на кнопке загруженного изображения при щелчке мышью на компоненте
Результат работы программы после выполнения операции представлен на рисунке 45.
Рисунок 45 – Результат работы программы для контрольного примера 1
Пример 2: Загрузка изображения для свойства LeftMDownImage.
Входные данные:
Графическое изображение
Нажатие левой кнопки мыши
Ожидаемые результаты:
Появление на кнопке загруженного изображения при нажатии левой кнопки мыши на компоненте
Результат работы программы после выполнения операции представлен на рисунке 46.
Рисунок 46 – Результат работы программы для контрольного примера 2 (скриншот снят при нажатой левой кнопке мыши)
Пример 3: Удаление изображения из свойства LeftMDownImage.
Входные данные:
Нажатие левой кнопки мыши
Ожидаемые результаты:
Изображение удалено из свойства
Результаты работы программы на после выполнения операции представлены на рисунке 47.
Рисунок 47 - Результат работы программы для контрольного примера 3
Пример 4. Установка режима отображения в значение pmNone.
Входные данные:
Графическое изображение
Ожидаемые результаты:
При наведении курсора мыши на компонент выводится изображение, имеющее свои исходные размеры
Результаты работы программы после выполнения операции представлены на рисунке 51.
Рисунок 48 - Результат работы программы для контрольного примера 4
Пример 5. Установка режима отображения в значение pmProportional.
Входные данные:
Графическое изображение
Ожидаемые результаты:
При наведении курсора мыши на компонент изображение полностью выводится, но сохраняет пропорции
Результаты работы программы после выполнения операции представлены на рисунке 48.
Рисунок 49 - Результат работы программы для контрольного примера 5
Пример 6: Установка ширины и высоты кнопки.
Входные данные:
Ширина кнопки, равная 400 пикселей
Высота кнопки, равная 300 пикселей
Ожидаемые результаты:
Меняются ширина и высота кнопки. Так как при заданных значениях ширины и высоты кнопка выходит за пределы рабочей области, то эти значения устанавливаются максимально возможными, т. е. таким образом, чтобы кнопка не выходила за пределы рабочей области.
Результат работы программы после выполнения операции представлен на рисунке 50.
Рисунок 50 - Результат работы программы для контрольного примера 6
Установка координат верхнего левого угла происходит аналогично, т.е. так, чтобы компонент полностью находился в пределах рабочей области.
Пример 7: Задание цвета кнопки.
Входные данные:
Цвет кнопки clMoneyGreen
Ожидаемые результаты:
Меняется цвет кнопки
Результат работы программы после выполнения операции представлен на рисунке 51.
Рисунок 51 - Результат работы программы для контрольного примера 7
Пример 8: Задание текста надписи.
Входные данные:
Текстовая строка «PicturedButton»
Ожидаемые результаты:
Текст «PicturedButton» отображается на кнопке
Результат работы программы после выполнения операции представлен на рисунке 52.
Рисунок 52 - Результат работы программы для контрольного примера 7
Вывод: Контрольные примеры не выявили наличия ошибок.
Тестирование функции масштабирования изображений TPicturedButton.SetSizePicture методом белого ящика (способ базового пути).
Код функции:
(1) begin
(1) temp:=TBitmap.Create;
(2) if FPictMode=pmProportional then
(3) begin
(3) BtnProp:=Width/Height;
(3) BmpProp:=Bmp.Width/Bmp.Height;
(4) if BmpProp<=BtnProp then
(5) begin
(5) temp.Height:=Height;
(5) temp.Width:=trunc(temp.Height*BmpProp)+1;
(5) end
(6) else
(6) begin
(6) temp.Width:=Width;
(6) temp.Height:=trunc(temp.Width/BmpProp)+1;
(6) end;
(7) SetStretchBltMode(temp.Canvas.Handle, HALFTONE);
(7) StretchBlt(temp.Canvas.Handle,0,0,temp.Width,temp.Height, Bmp.Canvas.Handle,0,0,Bmp.Width-2,Bmp.Height-2,SRCCOPY);
(7) OutLeft:=trunc((width-4)/2)-trunc(temp.Width/2);
(7) OutTop:=trunc((height-4)/2)-trunc(temp.Height/2);
(7) end
(8) else
(8) if FPictMode=pmStretch then
(9) begin
(9) temp.Width:=Width-4;
(9) temp.Height:=Height-4;
(9) OutLeft:=2;
(9) OutTop:=2;
(9) SetStretchBltMode(temp.Canvas.Handle, HALFTONE);
(9) StretchBlt(temp.Canvas.Handle,0,0,temp.Width,temp.Height, Bmp.Canvas.Handle,0,0,Bmp.Width-2,Bmp.Height-2,SRCCOPY);
(9) end
(10) else
(10) begin
(10) if bmp.Width<(Width-4) then
(11) OutLeft:=trunc((Width-4)/2)-trunc(bmp.Width/2)
(12) else OutLeft:=2;
(13) if bmp.Height<(Height-4) then
(14) OutTop:=trunc((Height-4)/2)-trunc(bmp.Height/2)
(15) else OutTop:=2;
(16) temp:=bmp;
(16) end;
(17) SetSizePicture:=temp;
(17) end;
Потоковый граф представлен на рисунке 53.
Рисунок 53 – Потоковый граф
Цикломатическая сложность полученного графа (3 способа):
V(G) = количество регионов = 6
V(G) = количество дуг – количество узлов + 2 = 21 – 17 +2 = 6
V(G) = количество предикатных узлов +1 = 5 + 1 = 6
Базовое множество независимых путей:
1 – 2 – 8 – 9 – 17
1 – 2 – 3 – 4 – 5 – 7 – 17
1 – 2 – 3 – 4 – 6 – 7 – 17
1 – 2 – 8 – 10 – 11 – 13 – 14 – 16 – 17
1 – 2 – 8 – 10 – 12 – 13 – 14 – 16 – 17
1 – 2 – 8 – 10 – 12 – 13 – 15 – 16 – 17
Тестовые варианты (ТВ), инициирующие выполнение каждого маршрута.
Тестовый вариант 1
Исходные данные: установлен режим pmStretch.
Ожидаемый результат: размер изображения равен размеру кнопки, пропорциональность изображения не сохраняется.
Реальный результат: изображение выводится по размеру кнопки. Результат представлен на рисунке 54.
Рисунок 54 – Результат тестового варианта 1
Тестовый вариант 2
Исходные данные: установлен режим pmProportional, коэффициент пропорциональности изображения меньше коэффициента пропорциональности кнопки.
Ожидаемый результат: изображение выводится полностью, пропорциональность сохраняется, высота изображения равна высоте кнопки.
Реальный результат: изображение сохраняет пропорциональность, высота изображения равна высоте кнопки. Результат представлен на рисунке 55.
Рисунок 55– Результат тестового варианта 2
Тестовый вариант 3
Исходные данные: установлен режим pmProportional, коэффициент пропорциональности изображения больше коэффициента пропорциональности кнопки.
Ожидаемый результат: изображение выводится полностью, пропорциональность сохраняется, ширина изображения равна ширине кнопки.
Реальный результат: изображение сохраняет пропорциональность, ширина изображения равна ширине кнопки. Результат представлен на рисунке 56.
Рисунок 56 – Результат выполнения тестового варианта 3
Тестовый вариант 4
Исходные данные: установлен режим pmNone, ширина и высота изображения меньше соответствующих параметров кнопки.
Ожидаемый результат: изображение выводится в центре кнопки.
Реальный результат: изображение расположено в центре кнопки. Результат представлен на рисунке 67.
Рисунок 67 – Результат тестового варианта 4
Тестовый вариант 5
Исходные данные: установлен режим pmNone, ширина изображения больше ширины кнопки.
Ожидаемый результат: изображение сохраняет свой исходный размер, по вертикали оно выводится в центре кнопки, по горизонтали – от левой границы кнопки.
Реальный результат: изображение расположено в центре кнопки по вертикали и начиная от левой границы кнопки по горизонтали. Результат представлен на рисунке 58.
Рисунок 58 – Результат тестового варианта 5
Тестовый вариант 6
Исходные данные: установлен режим pmNone, размеры изображения больше размеров кнопки.
Ожидаемый результат: изображение сохраняет свой исходный размер, по вертикали оно должно выводиться, начиная от верхней границы кнопки, по горизонтали – от левой границы.
Реальный результат: изображение расположено в левом верхнем углу кнопки. Результат представлен на рисунке 59.
Рисунок 59– Результат тестового варианта 6
Степень покрытия логики программы тестовыми вариантами равна 90%.
Вывод: в процессе выполнения тестирования наличия ошибок не было выявлено.
Тестирование методом «чёрного ящика» функции масштабирования изображений TPicturedButton.SetSizePicture.
При выполнении данной функции устанавливаются размеры некоторого исходного изображения и координаты его вывода в соответствии с выбранным способом отображения.
Дерево разбиений представлено на рисунке 60.
Рисунок 60 – Дерево разбиений
Далее для каждого из листьев дерева составляются тестовые варианты.
Тестовый вариант 1
Исходные данные: режим pmNone, размеры изображения больше размеров кнопки.
Результат: изображение расположено в левом верхнем углу кнопки. Результат представлен на рисунке 61.
Рисунок 61 – Результат тестового варианта 1
Тестовый вариант 2
Исходные данные: режим pmNone, размеры изображения меньше размеров кнопки.
Результат: изображение расположено в центре кнопки. Результат представлен на рисунке 62.
Рисунок 62 – Результат тестового варианта 2
Тестовый вариант 3
Исходные данные: режим pmStretch.
Результат: изображение «растянуто» по всей кнопке. Результат представлен на рисунке 63.
Рисунок 63 – Результат тестового варианта 3
Тестовый вариант 4
Исходные данные: режим pmProportional, коэффициент пропорциональности изображения больше коэффициента пропорциональности кнопки.
Результат: изображение расположено в центре кнопки, его пропорции сохранены, ширина изображения и ширина кнопки равны. Результат представлен на рисунке 64.
Рисунок 64 – Результат тестового варианта 4
Тестовый вариант 5
Исходные данные: режим pmProportional, коэффициент пропорциональности изображения меньше коэффициента пропорциональности кнопки.
Результат: изображение расположено в центре кнопки, его пропорции сохранены, высота изображения и высота кнопки равны. Результат представлен на рисунке 65.
Рисунок 65 – Результат тестового варианта 5
Вывод: в процессе выполнения тестирования наличия ошибок не было выявлено.
5 ЭКСПЛУАТАЦИОННЫЕ ДОКУМЕНТЫ
5.1 РУКОВОДСТВО ПРОГРАММИСТА
5.1.1 ОБЩИЕ СВЕДЕНИЯ О КОМПОНЕНТЕ
Компонент предназначен для работы с изображениями в системе программирования Delphi7.
5.1.2 СТРУКТУРА КОМПОНЕНТА
Компонент реализован в следующих файлах:
Button_Pack.dpk – файл пакета для установки в Delphi7. В него входят следующие файлы:
PicturedButton.pas – модуль с кодом компонента.
PicturedButton.dcr – файл пиктограммы компонента.
Справочная информация по компоненту
PB_Help.hlp – файл справочной системы компонента.
PB_Help.cnt – файл содержания справки компонента.
Компонент устанавливается в систему программирования Delphi на вкладку Button_Pack палитры компонентов.