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

Честно сделанные ошибки следует считать не неудачами, а семенами для основной деятельности по их исправлению. Стивен Джей Гоулд ( Stephen Jay Gould , 1941–2002), американский геолог, палеонтолог и философ науки.

Содержание занятия: Основные понятия. Методы отладки программ Заповеди отладки Инструменты отладки Практическое задание.

Отладка ПС — это деятельность, направленная на обнаружение и исправление ошибок в ПС с использованием процессов выполнения его программ. Тестирование ПС — это процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Указанный набор данных называется тестовым или просто тестом . Основные понятия

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

Методы отладки программ в Wolfram Mathematica

Методы отладки программ Д ля от­сле­жи­ва­ния и кон­тро­ля со­стоя­ний вы­чис­лительного про­цес­са при их от­лад­ке при­ме­ня­ют: руч­ную (desk checking) ; по­ша­го­вую ( single-step operation ) ; отладку программ по пред­ва­ри­тель­но за­дан­ным точ­кам ос­та­но­ва ( break­points – мет­кам опе­ра­то­ров) ; и др.

Заповеди отладки Заповедь 1. Считайте тестирование ключевой задачей разработки ПС, поручайте его самым квалифицированным и одаренным программистам; нежелательно тестировать свою собственную программу. Заповедь 2. Хорош тот тест, для которого высока вероятность обнаружить ошибку, а не тот, который демонстрирует правильную работу программы. Заповедь 3. Готовьте тесты как для правильных, так и для неправильных данных.

Заповедь 4. Избегайте невоспроизводимых тестов, документируйте их пропуск через компьютер; детально изучайте результаты каждого теста. Заповедь 5. Каждый модуль подключайте к программе только один раз; никогда не изменяйте программу, чтобы облегчить ее тестирование. Заповедь 6. Пропускайте заново все тесты, связанные с проверкой работы какой-либо программы ПС или ее взаимодействия с другими программами, если в нее были внесены изменения (например, в результате устранения ошибки). Заповеди отладки

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

Debug и Gizmos. Основные методы отладки в Unity для новичков. Как пользоваться.

Инструменты отладки От­лад­чи­ки час­то ин­тег­ри­ро­ва­ны в сис­те­му раз­ра­бот­ки ко­да про­грамм ( например Eclipse CDT, MS Visual Studio ). Ши­ро­ко ис­поль­зу­ют­ся ин­ст­ру­мен­ты ди­на­мического и ста­тического ана­ли­за. Ди­на­ми­че­ские ана­ли­за­торы ( Valgrind ) кон­тро­ли­ру­ют вре­мя вы­пол­не­ния уча­ст­ков ко­да про­грам­мы, на­хо­дят точ­ки (об­лас­ти) не­кор­рект­ной ра­бо­ты с па­мя­тью и объ­ек­та­ми опе­ра­ци­он­ной сис­те­мы и др. Ста­ти­че­ские ана­ли­за­то­ры ( например Kloc­work ) вы­яв­ля­ют ошиб­ки вы­хо­да (об­ра­ще­ния) за гра­ни­цы мас­си­Wow, по­тен­ци­аль­ные про­бле­мы безо­пас­но­сти, т. н. утеч­ки па­мя­ти, не­кор­рект­ность ис­поль­зо­ва­ния сис­тем­ных ре­сур­сов и др.

Читайте также:
Eset Smart security как добавить программу в исключения

Инструменты отладки По­пу­ляр­ны так­же ска­не­ры ин­тер­фей­сов (напр., Wire­shark , по­зво­ляю­щий осу­ще­ст­в­лять се­те­вой мо­ни­то­ринг). Од­на­ко для ана­ли­за ти­пич­ных оши­бок па­рал­лель­ных или мно­го­по­точ­ных при­ло­же­ний, напр. т. н. гон­ки дан­ных, ту­пи­ков (вза­им­ной бло­ки­ров­ки про­цес­сов), по­то­ков в со­стоя­нии ожи­да­ния, по­те­рян­ных сиг­на­лов, тре­бу­ют­ся спе­циа­ли­зир . сред­ст­ва от­лад­ки па­рал­лель­ных при­ло­же­ний (напр., Intel Thre­ad Checker ). Сле­ду­ет от­ме­тить, что наи­бо­лее эф­фек­тив­но ком­плекс­ное при­ме­не­ние ин­ст­рументов О. п., по­сколь­ку кон­крет­ные про­грамм­ные сред­ст­ва обес­пе­чи­ва­ют по­иск лишь оп­ре­де­лён­ных ти­пов оши­бок.

Литература 1 . Вигерс , Карл Разработка требований к программному обеспечению / Карл Вигерс , Джой Битти. — М.: БХВ-Петербург, Русская Редакция, 2014. — 736 c. 2 . Касперски , Крис Техника отладки программ без исходных текстов / Крис Касперски . — М.: «БХВ-Петербург», 2005. — 832 c. 3. Керниган , Брайан Практика программирования / Брайан Керниган , Роб Пайк . — М.: Вильямс, 2015. — 288 c. 4. Клейн, Тобиас Дневник охотника за ошибками. Путешествие через джунгли проблем безопасности программного обеспечения / Тобиас Клейн. — М.: «ДМК пресс. Электронные книги», 2013. — 240 c. 5 . Левинсон, Джефф Тестирование ПО с помощью Visual Studio 2010 / Джефф Левинсон. — М.: ЭКОМ Паблишерз , 2012. — 314 c. 6 . Фаулер , Мартин Рефакторинг . Улучшение существующего кода / Мартин Фаулер . — М.: Символ-плюс, 2008. — 432 c .

Источник: nsportal.ru

Разработка справочной системы, отладка

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

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

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

Кнопка запуска конфигурации в режиме отладки


Рис. 2.9. Кнопка запуска конфигурации в режиме отладки

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

Рассмотрим некоторые методы отладки .

Ошибки в программе

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

Читайте также:
Программа чтобы скачивать фильмы с интернета

//Начало ошибочного кода НоваяПеременная=1/0; //Окончание ошибочного кода

Строка, приводящая к ошибке


увеличить изображение
Рис. 2.10. Строка, приводящая к ошибке

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

Различные ошибки вызывают различные сообщения, в нашем случае можно наблюдать следующее сообщение, рис. 2.11.

Окно с сообщением об ошибке


Рис. 2.11. Окно с сообщением об ошибке

Нажав на кнопку Подробно в этом окне, мы видим следующее окно, рис. 2.12.

Подробное описание ошибки


увеличить изображение
Рис. 2.12. Подробное описание ошибки

Нажатие на кнопку Закрыть позволяет проигнорировать ошибку, кнопка Конфигуратор открывает Конфигуратор, а кнопка Завершить работу завершает работу программы.

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

Если ошибочным окажется код, который исполняется в обычном режиме работы 1С:Предприятие, произойдет то же самое.

Удалим «ошибочный» код из текста модуля.

Отладка

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

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

МЕТОДЫ «ГРУБОЙ СИЛЫ»

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

Методы грубой силы можно разделить по крайней мере на три категории. 1) отладка с использованием дампа памяти; 2) отладка в соответствии с общим пред ложением «расставить операторы печати по всей про­грамме»; 3) отладка с использованием автоматических средств. Наименее эффективна из них отладка посредст­вом анализа дампа памяти (обычно необработанного отображения состояния всей памяти в восьмеричной или шестнадцатеричной форме). С ней связаны следующие проблемы

1. Сложность установления соответствия между ячейка­ми памяти и переменными в исходной программе.

2. Значительный объем выдаваемых данных, многие из которых не используются.

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

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

Читайте также:
Программа пэк для каких категорий объектов

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

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

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

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

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

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

Методы третьей категории, использующие автомати­ческий средства отладки, подобны методам второй кате­гории, но отличаются от них в части внесения изменений в программу. Анализ динамики выполнения программы осуществляется с помощью отладочных средств языка программирования или специальных интерактивных средств отладки. Типичными языковыми средствами, ко­торые могут быть использованы, являются средства, обеспечивающие получение распечатки трасс выполнен­ных операторов, вызов подпрограмм и (или) изменений специфицированных переменных. Общая функция средств отладки — установление набора «точек прерыва­ния», вызывающих приостаиов процесса исполнения про­граммы после выполнения определенного оператора или изменения значения определенной переменной и позво­ляющих программисту, работающему за терминалом, проверять текущее состояние программы. Однако эти ме­тоды в значительной степени откосятся к методам проб и ошибок, и часто их результаты содержат чрезмерное число избыточных данных.

Общей проблемой методов «грубой силы» является то, что они игнорируют процесс обдумывания. Можно провести аналогию между отладкой программы и рассле­дованием убийства. Фактически во всех детективных ро­манах тайна раскрывается скорее посредством тщатель­ного анализа улик и объединения незначительных на пер­вый взгляд деталей, чем методами «грубой силы», такими, как блокировка улиц или осмотр имущества. На­пример, так< был раскрыт ряд убийств из оружия 44-го ка­либра в Нью-Йорке в 1976—1977 гг. Подозреваемого уда­лось задержать не с помощью методов «грубой силы» (насыхцением авиалиний и газет его портретами, выпол­ненными художником, и увеличением числа полицейских на улицах), а в результате обнаружения нескольких, ка­залось бы, незначительных улик, одной из которых был билет на автостоянку.

Источник: studopedia.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru