Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Отладка. Устранение ошибок называется отладкой программы






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

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

Из всех видов работы программиста отладка наименее освещена в литературе; дан­ное пособие также ограничивается общими рекомендациями. Отладка считается труд­ным искусством, и многие программисты, особенно начинающие, тратят на нее больше времени, чем на проектирование и кодирование. По некоторым оценкам, в общем времени разработки программы отладка занимает от 50 до 90 %.

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

Лучший способ облегчить отладку – свести к минимуму ее необходимость. Нисхо­дящее проектирование, структурное программирование и хороший стиль уменьшают исходное количество ошибок, упрощают понимание программы и облегчают ее отлад­ку. К рекомендациям по хорошему стилю добавим следующие.

§ По возможности инициализируйте переменные, т.е. присваивайте им начальные значения прямо в определении.

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

§ Четко определяйте область значений данных, с которыми должна работать про­грамма или подпрограмма, и добавляйте операторы проверки, находятся ли дан­ные в установленных границах.

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

§ Если последовательность символов должна, например, содержать только цифры и, возможно, знаки " +" или " -", проверьте, нет ли там посторонних символов, например букв. Средства, с помощью которых это можно сделать в системе Турбо Паскаль.

§ Если переменная может иметь N известных значений, которым соответствует N ветвей вычислений, добавьте проверку, не отличается ли ее значение от всех предусмотренных, и еще одну ветвь вычислений, которая соответствует непре­дусмотренным значениям.

§ Проверяйте, находятся ли значения индексов массива в допустимых пределах. Для этого полезно использовать подпрограммы, определенные в системе про­граммирования.

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

§ Добавляйте в программу операторы эхо-проверки, т.е. вывода полученных вход­ных данных.

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

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

§ Используйте счетчики, позволяющие узнать число выполнений циклов или вы­зовов подпрограмм.

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

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

Наконец, для отладки полезны средства системы программирования.

§ Ничего в программе не принимайте на веру.

§ Любое исправление может внести в программу новую ошибку и требует допол­нительной проверки. Внося поправки в программу, вы можете создать несоот­ветствие с результатами проектирования и спецификациями, поэтому будьте осмотрительны.







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.