Начала_информатики8

Посмотреть архив целиком
Глава 9 Отладка программного обеспечения
Введение
Отладка – это процесс локализации и исправления ошибок,
обнаруженных при тестировании программного обеспечения.
Локализацией называют процесс определения оператора
программы, выполнение которого вызвало нарушение нормального
вычислительного процесса. Для исправления ошибки необходимо
определить ее причину, т.е. определить оператор или фрагмент,
содержащие ошибку. Причины ошибок могут быть как очевидны, так
и очень глубоко скрыты.
Отладка программы – один их самых сложных этапов разработки
программного обеспечения, требующий глубокого знания:
• специфики управления используемыми техническими средствами;
• операционной системы;
• среды и языка программирования;
• реализуемых процессов;
• природы и специфики различных ошибок;
• методик отладки и соответствующих программных средств.

9.1 Классификация ошибок
В соответствии с этапом обработки, на котором проявляются
ошибки, различают:
• синтаксические ошибки;
• ошибки компоновки;
• ошибки выполнения.

Ошибки

Ошибки
компиляции

Ошибки
компоновки

Ошибки
выполнения

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

9.1 Классификация ошибок (3)
Ошибки компоновки
Ошибки компоновки связаны с проблемами, обнаруженными при
разрешении внешних ссылок.
Например, предусмотрено обращение к подпрограмме другого модуля,
а при объединении модулей данная подпрограмма не найдена или
не стыкуются списки параметров. В большинстве случаев ошибки
такого рода также удается быстро локализовать и устранить.

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

9.1 Классификация ошибок (4)








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

.

9.1 Классификация ошибок (5)
Все возможные причины ошибок выполнения можно разделить на
следующие группы:
Ошибки
выполнения

Ошибки определения
данных

Логические
ошибки

Ошибки накопления
погрешностей

Ошибки
передачи
Ошибки
преобразования

Проектирования

Кодирования

Ошибки
перезаписи

Неприменимый
метод

Некорректная
работа с
переменными

Неправильные
данные

Неверный
алгоритм

Некорректные
вычисления

Неверная
структура данных
Другие

Ошибки
межмодульных
интерфейсов
Неправильная реализация
алгоритма
Другие

Игнорирование
ограничений
разрядной сетки
Игнорирование
способов
уменьшения
погрешности

9.2 Методы отладки
Отладка программы в любом случае предполагает обдумывание и
логическое осмысление всей имеющейся информации об ошибке.
При этом можно использовать различные методы:
• метод тестирования;
• метод индукции;
• метод дедукции;
• метод обратного прослеживания.

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

9.2 Методы отладки(2)
Начало

Метод индукции
Метод основан на тщательном анализе
симптомов
ошибки,
которыми
могут
проявляться как неверные результаты
вычислений или как сообщение об ошибке

Организация данных
об ошибке

.

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

.

Выявление симптомов
ошибки

тестов
В процессе доказательства пытаются выяснить,
все ли проявления ошибки объясняет
данная гипотеза, если не все, то либо
гипотеза не верна, либо ошибок несколько.

Изучение их
взаимосвязей
Выдвижение гипотезы

нет

Гипотеза
найдена?
да
Доказательство
гипотезы
Гипотеза
доказана?

нет
да

Нахождение ошибки

Конец

9.2 Методы отладки(2)
Метод дедукции
По
методу
дедукции
вначале
формируют
множество
причин,
которые могли бы вызвать данное
проявление
ошибки.
Затем
анализируя причины, исключают те,
которые противоречат имеющимся
данным.
Если все причины исключены, то следует
выполнить
дополнительное
тестирование
исследуемого
фрагмента.
В
противном
случае
наиболее
вероятную
гипотезу
пытаются
доказать. Если гипотеза объясняет
полученные признаки ошибки, то
ошибка найдена, иначе – проверяют
следующую причину.

Начало
Перечисление
возможных причин
Использование
процесса исключения

Сбор новых данных
да

Исключены
все?
нет
Доказательство
гипотезы
нет

Гипотеза
доказана?
да
Нахождение ошибки

Конец

9.3 Общая методика отладки ПО
Можно предложить следующую методику отладки программного
обеспечения, написанного на универсальных языках
программирования для выполнения в операционных системах MS
DOS и Win32:
• 1 этап. Изучение проявления ошибки.
• 2 этап. Локализации ошибки .
• 3 этап. Определение причины ошибки.
• 4 этап. Исправление ошибки .
• 5 этап. Повторное тестирование.
Следует иметь в виду, что процесс отладки можно существенно
упростить, если следовать основным рекомендациям
структурного подхода к программированию.


Случайные презентации

Файл
274605-12.ppt
235438.ppt
ЧМ-Лекция 01.ppt
pictures.ppt
196325.ppt




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.