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

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

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

Отладить программу можно и в Visual Basic:

— добавление точек останова для прерывания работы программы;

— выполнение программы Visual Basic в пошаговом режиме;

— просмотр контрольных значений при отладке программы Visual Basic для приложений (VBA);

— трассировка вызовов процедур при отладке программ Visual Basic;

— добавление, изменение и удаление контрольного выражения в окне «Watch» редактора Microsoft Visual Basic;

— отключение проверки синтаксиса;

— отключение обработки ошибок.

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

Без этого вы не станете программистом! Найти ошибку в коде. Отладка. Как пользоваться отладчиком #23

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

Run Выполнить приложение; если до этого не была осуществлена компиляция программы в ее текущем состоянии, то перед запуском эта компиляция выполняется.

Тестирование и отладка

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

Отладка — выявление ошибок в программном продукте и их исправление.

Тестирование и отладка производятся следующими способами:

— нисходящее (программный продукт тестируют (производят отладку), начиная с главного модуля и идут вниз по убывающей, при проверки какого- либо модуля ставят заглушки (константы));

— восходящее (начинают от терминальных модулей (модули, которые больше ни чего не вызывают) и поднимаемся вверх к главным модуля);

— метод «Сэндвича» (тестирование идет и сверху и снизу).

Отладка производилась нисходящим способом, проверялась каждая строчка кода поочередно.

При отладке программных продуктов часто бывает необходимо детально проследить поведение программы, то есть выполнить пошаговое исполнение программы (трассировку).

Чтобы выполнить трассировку нужно придерживаться выполнения следующих действий:

выдавать на экран исполняемую в данный момент команду, а также значения нужных переменных/функций;

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

иметь возможность приостанавливать в любой момент исполнение программы с целью ее анализа.

В программе можно встретить следующие виды ошибок:

— технологические ошибки. Возникают на любых этапах создания программы и составляют до 10% от общего числа ошибок, обнаруживаемых при отладке. Выявление технологических ошибок может быть автоматическим и производится многократно;

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

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

— системные ошибки. Возникают на этапах проектирования. Доля системных ошибок при автоматизированной и комплексной отладке до 40%. В процессе эксплуатации около 80% от всех ошибок. Во избежание системных ошибок необходимо уточнить и конкретизировать техническое задание.

Отладка программного продукта — это деятельность, направленная на обнаружение и исправление ошибок в программе.

Во время разработки «Программы учёта книг и читателей библиотеки МБОУ Иванищевская СОШ» было выявлено ряд ошибок, локализация которых не составила особого труда.

««Программы учёта книг и читателей библиотеки МБОУ Иванищевская СОШ»запускается файлом , после запуска этого файла на экране отобразится заставка в соответствии с рисунком 10.

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

Если это ученик то необходимо ввести фамилию имя отчество нажать кнопку «Завести учетною запись», затем кнопку «Войти»

Перед учеником открывается форма «Библиотека», в первой вкладке ученик видит «Книги в наличии», во второй вкладке «Задолжности»

Если это заведующий библиотекой то на форме «Учетная запмсь» необходимо ввести пароль и логин затем нажать кнопку «Войти»

Открывается форма «Информация для библиотекаря». На ней присутствую вкладки : «Книги», «Задолжники», «Стеллаж», «Списанные книги», « Список читателей»

Источник: studbooks.net

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

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

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

Читайте также:
Как выиграть в программе lucky you

Отладка программы – это устранения неисправностей и процесс поиска (неточностей) в программе, создаваемый по итогам её прогона на компьютере.

Тестирование (англ. test – опробование) – это опробование, проверка правильности работы программы в целом или её составных частей.

тестирование и Отладка – это два четко различимых и непохожих друг на друга этапа:

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

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

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

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

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

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

Тестирование должно быть целенаправленным и систематизированным, поскольку случайный выбор данных привел бы к трудностям в определении ручным методом ожидаемых результатов; помимо этого, при случайном выборе тестовых разрешённых могут оказаться непроверенными многие ситуации;

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

  • ручной отладки;
  • индукции;
  • дедукции;
  • обратного прослеживания.

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

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

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

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

При поиске неточности в программе, делая ее на странице, нужно переключаться из состояния «робота» в состояние человека, владеющего интеллектом. Сперва Вы – «робот» и делаете команду совершенно верно так, как это делает процессор, позже снова становитесь человеком и задаёте вопросы: «Тот ли взят итог, которого я ожидал?» В случае если да, то продолжаете исполнение программы. В случае если нет, решаете, из-за чего программа трудится неправильно.

Отладка программ на ЭВМ разрешает уйти от рутинной работы и исключить «человеческие» неточности, связанные, к примеру, с тем, что Вы неправильно интерпретируете воздействие той либо другой команды.

Читайте также:
Блок схема программы на си

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

Многие неточности транслятору распознать нереально, поскольку транслятору малоизвестны планы программиста. Существует множество неточностей, каковые транслятор распознать не в состоянии, в случае если применяемые в программе операторы организованы (записаны) правильно. Такие неточности Вы найдёте уже позднее в ходе тестирования.

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

Этот способ довольно часто применяют как составную часть вторых способов отладки.

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

Последовательность исполнения отладки способом индукции продемонстрирована на рис. 10.3 в виде схемы метода.

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

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

Рис. Схема процесса отладки способом индукции

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

В другом случае самая вероятную догадку пробуют доказать. В случае если догадка растолковывает полученные показатели неточности, то неточность отыскана, в противном случае – контролируют следующую обстоятельство (рис. 10.4).

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

Рис. Схема процесса отладки способом дедукции

Typ

Похожие статьи:

  • Методы тестирования. требования и рекомендации по тестированию программ
  • Как внести порядок в повседневную трудовую жизнь
  • Способы и методы норм-я труда

Источник: in-inch.ru

Тестирование и отладка

Аннотация: Лекция носит факультативный характер. Здесь мы рассматриваем виды допускаемых в программировании ошибок, способы тестирования и отладки программ, инструменты встроенного отладчика.

Цель лекции

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

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

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

Программные ошибки на программистском сленге называют багами (англ. bug — жук), а программы отладки кода — дебаггерами (англ. debugger — отладчик). Lazarus, как современная среда разработки приложений, имеет собственный встроенный отладчик, работу с которым мы разберем на этой лекции.

Ошибки, которые может допустить программист, условно делятся на три группы:

  1. Синтаксические
  2. Времени выполнения (run-time errors)
  3. Алгоритмические

Синтаксические ошибки

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

Найденная компилятором синтаксическая ошибка - нет объявления переменной i


Рис. 27.1. Найденная компилятором синтаксическая ошибка — нет объявления переменной i

Подобные ошибки могут возникнуть при неправильном написании директивы или имени функции (процедуры); при попытке обратиться к переменной или константе, которую не объявляли ( рис. 27.1); при попытке вызвать функцию (процедуру, переменную, константу) из модуля, который не был подключен в разделе uses ; при других аналогичных недосмотрах программиста.

Читайте также:
Программа чтобы взламывать ВК

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

Ошибки времени выполнения

Ошибки времени выполнения (run-time errors) тоже, как правило, легко устранимы. Они обычно проявляются уже при первых запусках программы, или во время тестирования . Если такую программу запустить из среды Lazarus, то она скомпилируется, но при попытке загрузки, или в момент совершения ошибки, приостановит свою работу, выведя на экран соответствующее сообщение. Например, такое:

Сообщение Lazarus об ошибке времени выполнения


Рис. 27.2. Сообщение Lazarus об ошибке времени выполнения

В данном случае программа при загрузке должна была считать в память отсутствующий текстовый файл MyFile.txt. Поскольку программа вызвала ошибку, она не запустилась, но в среде Lazarus процесс отладки продолжается, о чем свидетельствует сообщение в скобках в заголовке главного меню , после названия проекта. Программисту в подобных случаях нужно сбросить отладчик командой меню «Запуск -> Сбросить отладчик», после чего можно продолжить работу над проектом.

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

Если программу запустить из самой Windows , при возникновении этой ошибки появится такое же сообщение. При этом если нажать «OK», программа даже может запуститься, но корректно работать все равно не будет.

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

begin MySL:= TStringList.Create; MySL.Add(‘Новая строка’); end;

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

begin MySL:= TStringList.Create; MySL.Add(‘Новая строка’); . ; //работа с объектом MySL.Free; //освободили объект end;

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

begin try MySL:= TStringList.Create; MySL.Add(‘Новая строка’); . ; //работа с объектом finally MySL.Free; //освободили объект, даже если была ошибка end; end;

Итак, во избежание ошибок времени выполнения программист должен не забывать делать проверку на правильность ввода пользователем допустимых значений, заключать опасный код в блоки try…finally…end или try…except…end , делать проверку на существование открываемого файла функцией FileExists и вообще соблюдать предусмотрительность во всех слабых местах программы. Не полагайтесь на пользователя, ведь недаром говорят, что если в программе можно допустить ошибку, пользователь эту возможность непременно найдет.

Алгоритмические ошибки

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

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

Если программа работает правильно с одними наборами исходных данных, и неправильно с другими, то это свидетельствует о наличии алгоритмической ошибки. Алгоритмические ошибки иногда называют логическими, обычно они связаны с неверной реализацией алгоритма программы: вместо «+» ошибочно поставили «-«, вместо «/» — «*», вместо деления значения на 0,01 разделили на 0,001 и т.п. Такие ошибки обычно не обнаруживаются во время компиляции , программа нормально запускается, работает, а при анализе выводимого результата выясняется, что он неверный. При этом компилятор не укажет программисту на ошибку — чтобы найти и устранить её, приходится анализировать код, пошагово «прокручивать» его выполнение, следя за результатом. Такой процесс называется отладкой.

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

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

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