Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПП.docx
Скачиваний:
6
Добавлен:
27.08.2019
Размер:
1.91 Mб
Скачать

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

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

  1. Ручного тестирования;

  2. Индукции;

  3. Дедукции;

  4. Обратного прослеживания.

Метод ручного тестирования

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

Метод индукции

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

Метод дедукции

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

Метод обратного прослеживания

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

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

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

  1. Отладочный вывод;

  2. Интегрированные средства отладки;

  3. Независимые отладчики.

Отладочный вывод

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

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

Интегрированные средства отладки (Delphi, Borland C++ и другие)

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

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

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

Использование независимых отладчиков

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