Главная Теоретический материал Лабораторные работы Задачи Тесты Контакты

Узбекское Агентство
Связи и Информатизации



Ташкентский Университет Информационных Технологий


Кафедра
«Программное обеспечение информационных технологий»

Направления:

5521900Информатика и
информационные технологии,
5523500Защита информации,
5523600Электронная коммерция,
5811200Сервис (информационный сервис),
5811300Сервис (электронные и
компьютерные технологии),
5320200Информатика и
библиотековедение,
5140900Профессиональное образование
(по направлению
информатика и
информационные технологии).


Преподаватель дисциплины



Доцент
Чернев Дмитрий Алексеевич

Логика поиска ошибки

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

Логические рассуждения помогают отсечь некоторые ва­рианты выполнения программы:

-   на выдаче имеем ситуацию 1;

-   чтобы она случилась, надо чтобы было 2 и 3 и либо чтобы было 4;

- ситуация 2 не может быть, т. к …. ; чтобы было 4, надо ….

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

Логика рассуждения на каждом отдельном шаге обычно сводится к одному из двух заключений:

1) программа прошла по ветви N, т.к. переменная X получила (или изменила) значение х, а это единственная ветвь, где это может быть...;

2) программа заведомо не проходила по ветви N, т.к. на этой ветви переменная X должна получить (или изменить) значение х , чего не наблюдалось.

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

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

Ветви, работавшие впервые, определить легко.

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

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

Неправильно обрабатывался первый или последний элемент - наиболее вероятная ошибка — не хватает 1 или лишняя 1 в начальном или в конечном значении параметра цикла.


Назад


Главная Теоретический материал Лабораторные работы Тесты Контакты