Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Указания к выполнению работы




 

При создании файла справки рекомендуется придерживаться приведённой ниже последовательности действий:

1. Создать папку и поместить в неё все подготовленные html-файлы (при выполнении лабораторной работы эти файлы удобно подготовить с помощью программы MS Word, количество файлов – не менее трёх) и сопутствующие материалы (рисунки, видеофрагменты и т.д.).

2. Открыть утилиту HTML Help Workshop командой "Пуск|Программы|HTML Help Workshop".

3. Выполнить команду "File|New",в появившемся окне выбрать в списке Projectи нажать кнопку OK.

4. На запрос мастера New Projectответить Далее. Флажок в переключателе Convert WinHelp Projectне ставить!

5. Используя кнопку Browse, открыть папку с подготовленными файлами и в поле имя файла записать имя проекта справочной системы, например, HelpNew(кириллицу при записи имени лучше не использовать).

6. В окне New Project – Destinationпроверить правильность записи имени и расположения файла проекта и, если всё верно – нажать кнопку Далее.

7. В окне New Project – Existing Filesотметьте флажком HTML Files (.htm)и нажать кнопку Далее.

8. Добавить .htm-файлы, которые будут использоваться при создании файла справки. Файлы можно добавлять по одному либо группой. Для добавления используется кнопка Add, а для удаления – Remove. Чтобы добавить файлы, надо:

- нажать кнопку Add;

- в окне Открытьвыделить группу файлов и нажать кнопку Открыть;

- убедившись, что в окне New Project – HTML Filesприведены все необходимые файлы, нажать кнопку Далее.

9. В окне New Project – Finishнажать кнопку Готово.

10. Откроется страница Projectsс перечнем файлов и значениями параметров, используемых в файле проекта. Посмотреть, какой используется язык.Нужен русский. Если указан английский, то щёлкнуть по кнопке Change Project Optionsи задать русский. В этом же окне можно изменить текст, открываемый по умолчанию (Default topic).

11. Нажать кнопку Save all files and compile.Будут сохранены все файлы, выполнена компиляция проекта и в окне справа появятся сведения о результатах компиляции. В папке с исходными файлами появится файл справочной системы HelpNew.chm. Если в отчёте о компиляции будут указаны ошибки error, то файл .chmне скомпилируется.

12. Запустить файл HelpNew.chmна выполнение и убедиться в работоспособности справочной системы и отсутствии привычных элементов: оглавления, указателя, окна поиска.

13. Создать оглавление. Для этого перейти на страницу Contents. Появится окно Table of Contents Not Specified.Появление этого окна означает, что оглавление еще не задано. Предлагается либо создать новое, либо использовать уже имеющееся оглавление.

14. Выбрать создание нового оглавления (Create a new Contents file) и в открывшемся окне сохранения файла задать имя оглавления. Система предлагает использовать имя Table of Contents. Целесообразно согласиться с предложенным именем и сохранить файл Table of Contents.hhcв той же папке, что и html-файлы. Файл оглавления нужен только на этапе подготовки справочной системы.

15. Сформировать оглавление.

- Нажать кнопку Insert a headingдля того, чтобы вставить заголовок в оглавление. Появится окно Table of Contents Entry.

- В поле Entry titleввести заголовок. Если это только название раздела, то добавлять файл с текстом не надо. Если же с заголовком связан текст, то необходимо нажать на кнопку Addи выбрать соответствующий файл. Закрыть окно кнопкой OK.

- Создать пункт оглавления, который будет относиться к определённому ранее разделу. Для этого выделить заголовок (если он не выделен) и нажать кнопку Insert a page, чтобы вставить пункт оглавления. Появится окно Table of Contents Entry.

- В окне Table of Contents Entryдать имя пункту и нажать на кнопку Add,чтобы связать с пунктом соответствующий файл.

- Повторить действия по созданию оглавления нужное число раз. При создании оглавления вложенные пункты должны быть сдвинуты вправо. Добиться нужной иерархии и требуемой последовательности файлов можно с помощью кнопок со стрелками.

16. Перейти на страницу Indexдля создания списка ключевых слов. Так как списка не было, то создать новый файл.

17. Создать три ключевых слова, следует действовать точно так же, как и на странице Contents. Каждое ключевое слово связать с соответствующим файлом.

18. Перейти на страницу Projectи нажать кнопку Change Project Options. Появится окно Options, в котором имеется возможность изменить опции проекта. На вкладке Generalв поле Titleввести название справки. В выпадающем списке Default fileвыбрать файл, который будет отображаться при запуске справочной системы.

19. Откомпилировать проект. Созданный файл справочной системы можно использовать самостоятельно, либо подсоединить к проекту.

20. Подключить файл справочной системы к приложению, разработанному при выполнении предыдущей лабораторной работы.

 

Контрольные вопросы и задания

 

1. Какие утилиты используются для создания файла справки?

2. Какой из существующих способов создания справочной системы более перспективный?

3. Как изменить последовательность и иерархию разделов в оглавлении файла справки?

4. Рассмотрите самостоятельно создание окна поиска в справочной системе, скомпилированной из html-файлов.

5. Как в утилите HTML Help Workshop изменить картинки, отмечающие разделы справочной системы?

 

 

Лабораторная работа №12 (2 часа)

 

Технология тестирования логики программ

 

Цель: освоить технологию тестирования логики программ.

Оборудование: ПЭВМ IBM PC-AT.

Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше).

 

Задание

 

Разработать по заданию преподавателя приложение, позволяющее решить одну из следующих задач:

1. Идентифицировать треугольник по трем сторонам (остроугольный, прямоугольный, тупоугольный, равносторонний, равнобедренный).

2. Идентифицировать четырехугольник по четырем сторонам (квадрат или ромб, прямоугольник, трапеция или обыкновенный четырехугольник).

3. Идентифицировать треугольник по двум сторонам и углу между ними (остроугольный, прямоугольный, тупоугольный, равносторонний, равнобедренный).

4. Определить, является ли заданное с клавиатуры шестизначное число четным, счастливым (сумма первых трех цифр равна сумме последних трех цифр) или делится на 13.

5. Идентифицировать треугольник по трем углам (остроугольный, прямоугольный, тупоугольный, равносторонний, равнобедренный).

6. Идентифицировать трапецию по двум сторонам и углу между ними (квадрат, равнобедренная, обыкновенная).

Выполнить тестирование логики полученной программы.

 

Программа работы

 

1. Получить вариант задания у преподавателя.

2. Подготовить вариант решения поставленной задачи в среде Delphi.

3. Выбрать метод тестирования и выполнить тестирование программы.

4. Продемонстрировать результаты работы преподавателю.

 

Пояснения к работе

 

Тестирование программного обеспечения охватывает целый ряд видов деятельности, аналогичных последовательности процессов разработки программного обеспечения. В него входят: а) постановка задачи для теста; б) проектирование теста; в) написание тестов; г) тестирование тестов;
д) выполнение тестов и е) изучение результатов тестирования.

Решающую роль играет проектирование тестов. Возможны разные подходы к проектированию тестов. Первый состоит в том, что тесты проектируются на основе внешних спецификаций программ и модулей, либо спецификаций сопряжения программы или модуля. Программа при этом рассматривается как черный ящик (стратегия "черного ящика"). Существо такого подхода – проверить соответствует ли программа внешним спецификациям. При этом логика модуля совершенно не принимается во внимание. Второй подход основан на анализе логики программы (стратегия "белого ящика"). Существо подхода – в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается.

Ни один из описанных подходов не является оптимальным. Из анализа существа первого подхода ясно, что его реализация сводится к проверке всех возможных комбинаций значений на входе программы. Тестирование любой программы для всех значений входных данных невозможно, так как их бесконечное множество, поэтому ограничиваются меньшим. При этом исходят из максимальной отдачи теста по сравнению с затратами на его создание. Она измеряется вероятностью того, что тест выявит ошибки, если они имеются в программе. Затраты измеряются временем и стоимостью подготовки, выполнения и проверки результатов теста.

Проанализируем теперь второй подход к тестированию. Даже если предположить, что выполнены тесты для всех путей программы, нельзя с полной уверенностью утверждать, что модуль не содержит ошибок. Очевидное основание этого утверждения состоит в том, что выполнение всех путей не гарантирует соответствия программы ее спецификациям. Допустим, если требовалось написать программу для вычисления кубического корня, а программа фактически вычисляет корень квадратный, то программа будет совершенно неправильной, даже если проверить все пути. Вторая проблема – отсутствующие пути. Если программа реализует спецификации не полностью (например, отсутствует такая специализированная функция, как проверка на отрицательное значение входных данных программы вычисления квадратного корня), никакое тестирование существующих путей не выявит такой ошибки. И, наконец, проблема зависимости результатов тестирования от входных данных. Путь может правильно выполняться для одних данных и неправильно для других. Например, если для определения равенства трёх чисел программируется выражение вида

IF (A+B+C)/3=A,

то оно будет верным не для всех значений A, B и C (ошибка возникает в том случае, когда из двух значений В или С одно больше, а другое на столько же меньше А). Если концентрировать внимание только на тестировании путей, нет гарантии, что эта ошибка будет выявлена.

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

Метод покрытия операторов.

Целью этого метода тестирования является выполнение каждого оператора программы хотя бы один раз.

 

Пример:

Рис. 12.1                                                       Рис. 12.2

 

В этой программе можно выполнить каждый оператор, записав один единственный тест, который реализовал бы путь ace. То есть, если бы на входе было: А=2, В=0, Х=3, каждый оператор выполнился бы один раз. Но этот критерий на самом деле хуже, чем он кажется на первый взгляд. Пусть в первом условии вместо “and”®“or” и во втором вместо “x>1”®“x<1” (блок-схема правильной программы приведена на рис. 12.1, а неправильной – на рис. 12.2). Результаты тестирования приведены в табл. 12.1. Обратите внимание: ожидаемый результат определяется по алгоритму на рис. 12.1, а фактический – по алгоритму рис. 12.2, поскольку определяется чувствительность метода тестирования к ошибкам программирования. Как видно из этой таблицы, ни одна из внесенных в алгоритм ошибок не будет обнаружена.

 

Таблица 12.1 – Результат тестирования методом покрытия операторов

Тест Ожидаемый результат Фактический результат Результат тестирования
A=2, B=0, X=3 X=2,5 X=2,5 неуспешно

 

Метод покрытия решений (покрытия переходов)

Более сильный метод тестирования известен как покрытие решений (покрытие переходов). Согласно данному методу каждое направление перехода должно быть реализовано, по крайней мере, один раз.

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

Для программы приведенной на рис. 12.2 покрытие решений может быть выполнено двумя тестами, покрывающими пути {ace, abd}, либо {aсd, abe}. Пути {aсd, abe}покроим, выбрав следующие исходные данные: {A=3, B=0, X=3} и {A=2, B=1, X=1} (результаты тестирования – в табл. 12.2).

 

Таблица 12.2 – Результат тестирования методом покрытия решений

Тест Ожидаемый результат Фактический результат Результат тестирования
A=3, B=0, X=3 X=1 X=1 неуспешно
А=2, В=1, Х=1 Х=2 Х=1,5 успешно

 

Метод покрытия условий

Лучшие результаты по сравнению с предыдущими может дать метод покрытия условий. В этом случае записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз (табл. 12.3).

В предыдущем примере имеем четыре условия: {A>1, B=0}, {A=2, X>1}. Следовательно, требуется достаточное число тестов, такое, чтобы реализовать ситуации, где A>1, A£1, B=0 и B¹0 в точке а и A=2, A¹2, X>1 и X£1 в точке В. Тесты, удовлетворяющие критерию покрытия условий и соответствующие им пути, приведены ниже:

а) A=2, B=0, X=4       ace

б) A=1, B=1, X=0       abd

 

Таблица 12.3 – Результаты тестирования методом покрытия условий

Тест Ожидаемый результат Фактический результат Результат тестирования
A=2, B=0, X=4 X=3 X=3 неуспешно
A=1, B=1, X=0 X=0 X=1 успешно

 

Критерий решений (условий)

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

Два теста метода покрытия условий

а) A=2, B=0, X=4       ace

б) A=1, B=1, X=0       abd

отвечают и критерию покрытия решений/условий. Это является следствием того, что одни условия приведенных решений скрывают другие условия в этих решениях. Так, если условие А>1 будет ложным, транслятор может не проверять условия В=0, поскольку при любом результате условия В=0, результат решения ((А>1)&(В=0)) примет значение ложь. Следовательно, недостатком критерия покрытия решений/условий является невозможность его применения для выполнения всех результатов всех условий.

Другая реализация рассматриваемого примера приведена на рис. 12.3. Многоусловные решения исходной программы разбиты на отдельные решения и переходы. Наиболее полное покрытие тестами в этом случае выполняется так, чтобы выполнялись все возможные результаты каждого простого решения. Для этого нужно покрыть пути HILP (тест А=2, В=0, Х=4), HIMKT (тест А=3, В=1, Х=0), HJKT (тест А=0, В=0, Х=0), HJKR (тест А=0, В=0, Х=2). Протестировав алгоритм на рис. 12.3, нетрудно убедиться в том, что критерии покрытия условий и критерии покрытия решений/условий недостаточно чувствительны к ошибкам в логических выражениях.   Рис. 12.3

Метод комбинаторного покрытия условий

Критерием, который решает эти и некоторые другие проблемы, является комбинаторное покрытие условий. Он требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз. Набор тестов, удовлетворяющих критерию комбинаторного покрытия условий, удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий.

По этому критерию в рассматриваемом примере должны быть покрыты тестами следующие восемь комбинаций:

а) A>1, B=0;

б) A>1, B¹0;

в) A£1, B=0;

г) А£1, B¹0;

д) A=2, X>1;

е) A=2, X£1;

ж) А¹2, X>1;

з) А¹2, X£1.

Для того чтобы протестировать эти комбинации, необязательно использовать все 8 тестов. Фактически они могут быть покрыты четырьмя тестами (табл. 12.4):

- A=2, B=0, X=4       {покрывает а, д};

- A=2, B=1, X=1      {покрывает б, е};

- A=0,5, B=0, X=2    {покрывает в, ж};

- A=1, B=0, X=1      {покрывает г, з}.

 

 

Таблица 12.4 – Результаты тестирования методом комбинаторного покрытия условий

Тест Ожидаемый результат Фактический результат Результат тестирования
A=2, B=0, X=4 X=3 X=3 неуспешно
A=2, B=1, X=1 X=2 X=1,5 успешно
A=0,5 B=0, X=2 X=3 X=4 успешно
A=1, B=0, X=1 X=1 X=1 неуспешно

 










Последнее изменение этой страницы: 2018-05-27; просмотров: 263.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...