Отладка программного обеспечения

Содержание

Слайд 2

9.1 Классификация ошибок В соответствии с этапом обработки, на котором проявляются

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

В соответствии с этапом обработки, на котором проявляются ошибки,

различают:
синтаксические ошибки;
ошибки компоновки;
ошибки выполнения.
Слайд 3

9.1 Классификация ошибок (2) Синтаксические ошибки Синтаксические ошибки относятся к группе

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

Синтаксические ошибки
Синтаксические ошибки относятся к группе самых

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

9.1 Классификация ошибок (3) Ошибки компоновки Ошибки компоновки связаны с проблемами,

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

Ошибки компоновки
Ошибки компоновки связаны с проблемами,

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

9.1 Классификация ошибок (4) появление сообщения об ошибке, зафиксированной схемами контроля

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

появление сообщения об ошибке, зафиксированной схемами контроля выполнения

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

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

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

Все возможные причины ошибок выполнения можно разделить на

следующие группы:
Слайд 7

9.2 Методы отладки Отладка программы в любом случае предполагает обдумывание и

9.2 Методы отладки

Отладка программы в любом случае предполагает обдумывание и логическое

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

9.2 Методы отладки(2) Метод индукции Метод основан на тщательном анализе симптомов

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

Метод индукции
Метод основан на тщательном анализе симптомов ошибки,

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

9.2 Методы отладки(2) Метод дедукции По методу дедукции вначале формируют множество

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

Метод дедукции
По методу дедукции вначале формируют множество причин,

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