Программа сложной структуры с использованием меню
Другие рефераты
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ГОРНЫЙ УНИВЕРСИТЕТ
кафедра вм
Курсовик
“Программа сложной структуры с использованием меню”
ВЫПОЛНИЛ: Пикулин Е. Г.
принял:
Солодовников А. Д.
( мОСКВА 1996 год
ОГЛАВЛЕНИЕ.
1. ВИДЫ КОНТРОЛЯ ПРОГРАММ
3
2. ЦЕЛИ, ПРИНЦИПЫ И ЭТАПЫ ТЕСТИРОВАНИЯ
3. СТРУКТУРНОЕ ТЕСТИРОВАНИЕ
4. СОВМЕСТНОЕ ТЕСТИРОВАНИЕ МОДУЛЕЙ
5. ФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ
6. ТЕСТИРОВАНИЕ ПРОГРАММНОГО КОМПЛЕКСА В ЦЕЛОМ
7. ОТЛАДКА ПРОГРАММ
ВИДЫ КОНТРОЛЯ ПРОГРАММ
Программный комплекс - это совокупность программных модулей,
предназначенных для решения одной задачи и составляющих одно целое.
Основными разновидностями контроля программного обеспечения
являются визуальный, статический и динамический.
Визуальный контроль - это проверка программ “ за столом “ , без
использования компьютера. На первом этапе визуального контроля
осуществляется чтение программы, причем особое внимание уделяется
следующим ее элементам:
комментариям и их соответствию тексту программы ;
условиям в операторах условного выбора ( IF, CASE ) и
цикла;
сложным логическим выражениям;
возможности незавершения итерационных циклов ( WHILE,
REPEAT, LOOP ).
Второй этап визуального контроля - сквозной контроль программы
( ее ручная прокрутка на нескольких заранее подобранных простых
тестах). Распространенное мнение , что более выгодным является
перекладывание большей части работы по контролю программных средств на
компьютере, ошибочно. Основной довод в пользу этого таков : при работе на
компьютере главным образом совершенствуются навыки в использовании
клавиатуры, в то время как программистская квалификация преобретается
прежде всего за столом.
Статический контроль- это проверка программы по ее тексту
(без выполнения) с помощью инструментальных средств. Наиболее известной
формой статического контроля является синтаксический контроль программы с
помощью компилятора , при котором проверяется соответствие текста
программы синтаксическим правилам языка программирования.
Сообщения компилятора обычно делятся на несколько групп в
зависимости от уровня тяжести нарушения синтаксиса языка программирования
:
- информационные сообщения и предупреждения , при
обнаружении которых компилятор, как правило, строит корректный объектный
код и дальнейшая работа с программой (компоновка, выполнение) возможна
(тем не менее сообщения этой группы также должны тщательно
анализироваться, так как их появление также может свидетельствовать об
ошибке в программе - например, из-за неверного понимания синтаксиса
языка);
- сообщения об ошибках, при обнаружении которых
компилятор пытается их исправить и строит объектный код, но его
корректность маловероятна и дальнейшая работа с ним скорее всего не
возможна;
3
- сообщения о серьезных ошибках , при наличии
которых построенный компилятором объектный код заведомо некорректен и его
дальнейшее использование невозможно;
- сообщения об ошибках , обнаружение которых привело
к прекращению синтаксического контроля и построения объектного кода .
Однако, практически любой компилятор пропускает некоторые виды
синтаксических ошибок. Место обнаружения ошибки может находиться далеко по
тексту программы от места истинной ошибки, а текст сообщения компилятора
может не указывать на истинную причину ошибки. Одна синтаксическая ошибка
может повлечь за собой генерацию компилятором нескольких сообщений об
ошибках (например, ошибка в описании переменной приводит к появлению
сообщения об ошибке в каждом операторе программы, использующем эту
переменную).
Второй формой синтаксического контроля может быть контроль
структурированности программ, то есть проверка выполнения соглашений и
ограничений структурного программирования. Примером подобной проверки
может быть выявление в тексте программы ситуаций, когда цикл образуется с
помощью оператора безусловного перехода (использования оператора GOTO для
перехода вверх по тексту программы ). Для проведения контроля
структурированности могут быть созданы специальные инструментальные
средства, а при их отсутствии эта форма статического контроля может
совмещаться с визуальным контролем .
Третья форма статического контроля - контроль правдоподобия
программы, то есть выявление в ее тексте конструкций, которые хотя и
синтаксически корректны, но скорее всего содержат ошибку или
свидетельствуют о ней. Основные неправдоподобные ситуации :
- использование в программе неинициализированных
переменных (то есть переменных, не получивших начального значения) ;
- наличие в программе описаний элементов,
переменных, процедур, меток, файлов, в дальнейшем не используемых в ее
тексте;
- наличие в тексте программы фрагментов, никогда не
выполняющихся;
- наличие в тексте программы переменных, ни разу не
используемых для чтения после присваивая им значений;
- наличие в тексте программы заведомо бесконечных
циклов ;
Даже если присутствие в тексте программы неправдоподобных
конструкций не приводит к ее неправильной работе, исправление этого
фрагмента повысит ясность и эффективность программы, т. е. благотворно
скажется на ее качестве.
Для возможности проведения контроля правдоподобия в полном объеме
также должны быть созданы специальные инструментальные средства, хотя ряд
возможностей по контролю правдоподобия имеется в существующих отладочных
и обычных компиляторах.
4
Следует отметить, что создание инструментальных средств контроля
структурированности и правдоподобия программ может быть существенно
упрощено при применении следующих принципов:
1) проведение этих дополнительных форм
статического контроля после завершения компиляции и только для
синтаксически корректных программ ;
2) максимальное использование результатов
компиляции программы и, в частности, информации, включаемой в листинг
компилятора;
3) вместо полного синтаксического разбора текста
проверяемой программы построение для нее списка идентификаторов и списка
операторов с указанием всех их необходимых признаков.
При отсутствии инструментальных средств контроля правдоподобия эта
фаза статического контроля также может объединяться с визуальным
контролем.
Четвертой формой статического контроля программ является их
верификация, то есть аналитическое доказательство их корректности.
В интуитивном смысле под корректностью понимают свойства программы,
свидетельствующие об отсутствии в ней ошибок, допущенных разработчиком на
различных этапах проектирования ( спецификации, проектирование алгоритма и
структур данных, кодирование ). Корректность самой программы по отношению
к целям, поставленным перед ее разработкой ( то есть это относительное
свойство ). Отличие понятия корректности и надежности программ в следующем
:
надежность характеризует как программу, так и ее
“окружение” ( качество аппаратуры, квалификацию пользователя и т.п. );
говоря о надежности программы, обычно допускают
определенную, хотя и малую, долю ошибок в ней и оценивают вероятность их
появления.
Надежность можно представить совокупностью следующих характеристик
:
1) целостность программного средства (способность
его к защите от отказов);
2) живучесть (способность к входному контролю
данных и их проверки в ходе работы) ;
3) завершенность (бездеффектность готового
программного средства, характеристика качества его тестирования);
4) работоспособность (способность программного
средства к восстановлению своих возможностей поле сбоев).
Очевидно, что не всякая синтаксически правильная программа является
корректной в указанном выше смысле, т. е. корректность характеризует
семантические свойства программ.
5
С учетом специфики появления ошибок в программах можно выделить
две стороны понятия корректности :
1) корректность как точное соответствие целям
разработки программы (которые отражены в спецификации) при условии ее
завершения или частичная корректность ;
2) завершение программы , то есть достижение
программой в процессе ее выполнения своей конечной точки.
В зависимости от выполнения или невыполнения каждого из двух
названных свойств программы различают шесть задач анализа корректности :
1) доказательство частичной корректности ;
2) доказательство частичной некорректности ;
3) доказательство завершения программы ;
4) доказательств
| | скачать работу |
Другие рефераты
|