Типы ошибок в программе информатика

Презентация на тему: » Отладка программы. Классификация ошибок 1.синтаксические; 2. ошибки времени выполнения; 3.алгоритмические. Синтаксические ошибки, обнаруживает компилятор,» — Транскрипт:

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

3 Ошибки времени выполнения, (исключения – exception) Они обычно проявляются уже при первых запусках программы и во время тестирования. При возникновении ошибки в программе, запущенной из Delphi, среда разработки прерывает работу программы, и на экране появляется диалоговое окно, которое содержит сообщение об ошибке и информацию о типе (классе) ошибки. После возникновения ошибки программист может – либо прервать выполнение программы, ( Run — Program Reset), – либо продолжить ее выполнение, например, по шагам (Run — Step), наблюдая результат выполнения каждой инструкции.

Как читать и понимать ошибки в Python | Информатика ЕГЭ Умскул 2022

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

5 Трассировка программы В случае неправильной работы программы необходимо видеть реальный порядок выполнения инструкций. Трассировка это процесс выполнения программы по шагам (step-by-step), инструкция за инструкцией. Во время трассировки программист дает команду: выполнить очередную инструкцию программы.

6 2 режима трассировки Step over Режим трассировки без захода в процедуру выполняет трассировку только главной процедуры, при этом трассировка подпрограмм не выполняется, вся подпрограмма выполняется за один шаг. Trace into В режиме трассировки с заходом в процедуру выполняется трассировка всей программы, т. е. по шагам выполняется не только главная программа, но и все подпрограммы.

7 Как начать трассировку Из меню Run выбрать команду Step over или Trace into. В результате в окне редактора кода будет выделена первая инструкция программы Затем выбираем Step over (F8)или Trace into(F7) После выполнения инструкции будет выделена следующая. Таким образом, выбирая нужную команду из меню Run, можно выполнить трассировку программы Если нужна трассировка части программы следует 1. установить курсор на инструкцию программы, с которой надо начать трассировку, 2. из меню Run выбрать команду Run to cursor (F4). 3. нажимая клавишу или клавишу, выполнить трассировку нужного фрагмента программы. Завершить трассировку и продолжить выполнение программы в реальном темпе — из меню Run выбрать команду Run.

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

Основы программирования / Урок #4 – Что такое баги? Как отследить ошибку?

9 Добавление точки останова 1. из меню Run выбрать команду Add Breakpoint 2. затем из меню следующего уровня команду Source Breakpoint. Информация о добавляемой точке останова – в диалоговом окне Add Source Breakpoint Filename содержит имя файла программы Line number номер строки программы, в которую добавляется точка останова. После щелчка на кнопке ОК точка останова добавляется в программу, и строка, в которой находится точка останова, помечается красной точкой и выделяется цветом. Точку останова можно добавить, щелкнув мышью на синей точке, помечающей ту инструкцию программы, перед которой надо поместить точку останова (если в программе нет ошибок, то компилятор помечает выполняемые инструкции программы синими точками).

10 Условия для точки останова Если для точки останова задано условие, то программа приостанавливает свою работу только в том случае, если выражение, находящееся в поле Condition, истинно (его значение равно TRUE). можно задать количество пропусков данной точки. Если во время добавления в программу точки останова в поле Pass count (Число пропусков) диалогового окна Add Source Breakpoint записать отличное от нуля число, то программа приостановит свою работу в этой точке только после того, как инструкция, находящаяся в строке, помеченной точкой останова, будет выполнена указанное число раз.

Читайте также:
Можно ли с помощью программы скретч создавать игры

11 Изменение характеристик точки останова Для этого надо из меню View выбрать команду Debug Windows, затем из меню следующего уровня команду Breakpoints. В открывшемся диалоговом окне Breakpoint List щелкнуть правой кнопкой мыши в строке, содержащей информацию о нужной точке останова, и в появившемся контекстном меню выбрать команду Properties. В результате открывается диалоговое окно Source Breakpoint Properties, в котором можно изменить характеристики точки останова, например, изменить условие (содержимое поля Condition) остановки программы в данной точке. Используя это же контекстное меню, можно быстро перейти к инструкции, в которой находится точка останова; для этого надо выбрать команду Edit Source.

12 Удаление точки останова в диалоговом окне Breakpoint List щелкнуть правой кнопкой мыши в строке, содержащей информацию о точке, которую надо удалить, и в появившемся контекстном меню выбрать команду Delete. Или в окне редактора кода щелкнуть мышью на красной точке, помечающей строку, в которой находится точка останова.

13 Наблюдение значений переменных Для того чтобы во время выполнения программы по шагам иметь возможность контролировать значение переменной, нужно добавить имя этой переменной в список наблюдаемых элементов (Watch List). Для этого надо из меню Run выбрать команду Add Watch и в поле Expression появившегося диалогового окна Watch Properties ввести имя переменной. В результате в список Watch List, будет добавлен новый элемент. Так как переменные программы существуют (и, следовательно, доступны) только во время выполнения программы, то после имени переменной выводится сообщение: process not accessible (процесс недоступен).

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

15 Завершить пошаговое выполнение Чтобы завершить процесс пошагового выполнения программы, нужно из меню Run выбрать команду Program Reset.

Источник: www.myshared.ru

Лекция 8: Методы проверки и тестирования программ и систем

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

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

Известно много различных подходов к классификации ошибок, рассмотрим некоторые из них.

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

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

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

Таблица 7.1. Ортогональная классификация дефектов IBM Контекст ошибки Классификация дефектов
Функция Ошибки интерфейсов конечных пользователей ПО, вызванные аппаратурой или связаны с глобальными структурами данных
Интерфейс Ошибки во взаимодействии с другими компонентами, в вызовах, макросах, управляющих блоках или в списке параметров
Логика Ошибки в программной логике, неохваченной валидацией, а также в использовании значений переменных
Присваивание Ошибки в структуре данных или в инициализации переменных отдельных частей программы
Зацикливание Ошибки, вызванные ресурсом времени, реальным временем или разделением времени
Среда Ошибки в репозитории, в управлении изменениями или в контролируемых версиях проекта
Алгоритм Ошибки, связанные с обеспечением эффективности, корректности алгоритмов или структур данных системы
Документация Ошибки в записях документов сопровождения или в публикациях

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

Фирма Hewlett-Packard использовала классификацию Буча, установив процентное соотношение ошибок, обнаруживаемых в ПО на разных стадиях разработки (рис. 7.2) [7.12].

Читайте также:
Ccleaner это бесплатная программа

Это соотношение — типичное для многих фирм, производящих ПО, имеет некоторые отклонения.

Исследования фирм IBM показали, чем позже обнаруживается ошибка в программе, тем дороже обходится ее исправление, эта зависимость близка к экспоненциальной. Так военновоздушные силы США оценили стоимость разработки одной инструкции в 75 долларов, а ее стоимость сопровождения составляет около 4000 долларов.


Рис. 7.2. Процентное соотношение ошибок при разработке ПО

Согласно данным [7.6, 7.11] стоимость анализа и формирования требований, внесения в них изменений составляет примерно 10%, аналогично оценивается стоимость спецификации продукта. Стоимость кодирования оценивается более чем 20%, а стоимость тестирования продукта составляет более 45% от его общей стоимости. Значительную часть стоимости составляет сопровождение готового продукта и исправление обнаруженных в нем ошибок.

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

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

Создаются тесты, проверяющие:

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

Тестовые данные готовятся как для проверки отдельных программных элементов, так и для групп программ или комплексов на разных стадиях процесса разработки. На рис. 7.3. приведена классификация тестов проверки по объектам тестирования на основных этапах разработки.


увеличить изображение
Рис. 7.3. Классификация тестов проверки

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

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


Рис. 7.4. Интегрированное тестирование компонент

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

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

Согласно приведенной схеме сначала тестируются компоненты А, В, D независимо друг от друга и каждый с отдельным тестом. После их проверки выполняется проверка интерфейсов для последующей их интеграции, суть которой заключается в анализе выполнения операторов вызова А -> E, B -> C, D -> G, на нижних уровнях графа: компоненты Е, С, G. При этом предполагается, что указанные вызываемые компоненты, так же должны быть отлажены отдельно. Аналогично проверяются все обращения к компоненту F, являющемуся связывающим звеном с вышележащими элементами.

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

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

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

Основные виды ошибок и принцип подход к ним

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

— ошибки в программах;

Читайте также:
Как увидеть себя лысым программа

— ошибочные действия оператора;

— ошибки в устройствах хранения и передачи информации;

— ошибки в оборудовании:

ошибки в логическом оборудовании, ошибки в системе контроля,

неисправности в системах питания и охлаждения.

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

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

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

утомляемости в работе и его внутреннее состояние.

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

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

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

ошибок, остается пока нерешенной до конца проблемой.

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

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

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

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

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

окажется без защиты.

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

Неисправности первого типа обнаруживаются двумя способами: остановом устройства при ошибке, после которого производится анализ состояния

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

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

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

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

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

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

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