Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на госэкзамен / Тест+отлад.doc
Скачиваний:
37
Добавлен:
02.05.2014
Размер:
202.24 Кб
Скачать

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

Кодирования

уменьшения

погрешности

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

неверный алгоритм некорректные вычисления

неверная структура нарушение сопряжения модулей

данных неверно реализован алгоритм

другие другие

Рис. 2.7. Классификация ошибок выполнения по возможным причинам

3.2. Методы отладки

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

  • ручного тестирования;

  • индукции;

  • дедукции;

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

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

Метод индукции включает:

  1. определение данных тестирования, имеющих отношение к ошибке;

  2. анализ от частного к общему позволит выявить закономерности в данных пункта 1);

  3. в результате анализа (п.2) выдвигается гипотеза о причине ошибки;

  4. для подтверждения гипотезы 3 разрабатывается один или больше тестов, которые должны либо подтвердить, либо опровергнуть гипотезу;

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

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

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

Альтернативный метод дедукции заключается в:

  1. перечисление возможных причин или гипотез:

  2. использование данных тестирования для исключения некоторых возможных причин;

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

  4. доказательство выбранной гипотезы совпадает с п.4 и п.5 метода индукции.

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

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

Соседние файлы в папке Ответы на госэкзамен