Здавалка
Главная | Обратная связь

Б-50 Отладка программного обеспечения. Общая методика отладки программного обеспечения. Понятие отладки ПО, поэтапное описание методики отладки



Суммируя все сказанное выше, можно предложить следующую методику отладки программного обеспечения, написанного на универсальных языках программирования для выполнения в операционных системах MS DOS и Win32:

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

информации об ошибке.

Если ошибка не найдена или система просто «зависла», переходят ко второму этапу.

2этап - локализация ошибки - определение конкретного фрагмента,

при выполнении которого произошло отклонение от предполагаемого вы

числительного процесса. Локализация может выполняться:

•путем отсечения частей программы, причем, если при отсечении некоторой части программы ошибка пропадает, то это может означать как то, что

ошибка связана с этой частью, так и то, что внесенное изменение изменило

проявление ошибки;

•с использованием отладочных средств, позволяющих выполнить инте

ресующих нас фрагмент программы в пошаговом режиме и получить допол

нительную информацию о месте проявления и характере ошибки, например,

уточнить содержимое указанных переменных.

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

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

3этап - определение причины ошибки - изучение результатов второго

этапа и формирование версий возможных причин ошибки. Эти версии необ

ходимо проверить, возможно, используя отладочные средства для просмотра

последовательности операторов или значений переменных.

4этап - исправление ошибки - внесение соответствующих изменений

во все операторы, совместное выполнение которых привело к ошибке.

5этап - повторное тестирование - повторение всех тестов с начала, так как при исправлении обнаруженных ошибок часто вносят в программу новые.

Следует иметь в виду, что процесс отладки можно существенно упростить, если следовать основным рекомендациям структурного подхода к программированию:

•программу наращивать «сверху-вниз», от интерфейса к обрабатываю

щим подпрограммам, тестируя ее по ходу добавления подпрограмм;

•выводить пользователю вводимые им данные для контроля и прове

рять их на допустимость сразу после ввода;

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

горитма (ветвлениях, вызовах подпрограмм).

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

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

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

-----------------------------------------------------------------------------------------------------

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.