Добавил:
study@slavapmk.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Все Лекции

.pdf
Скачиваний:
0
Добавлен:
12.05.2026
Размер:
15.98 Mб
Скачать

Отладка программ

2.Отладка по модулям.

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

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

Затем нужно добавлять и последовательно отлаживать дополнительные подпрограммы.

26

Отладка программ

3. Отладка циклов.

Необходимо проверять значения ключевых переменных в начале и конце цикла, отмеченных комментариями.

// Проверка значений переменных start и stop перед входом в цикл

for (index = start; index <= stop; ++index) {

//Проверка значений переменных index и key

//в начале итерации

// Проверка значений переменных index и key

//в конце итерации } // Конец цикла for

//Проверка значений переменных start и stop перед выходом из цикла

27

Отладка программ

4. Отладка операторов ветвления.

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

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

#Проверка переменных, входящих в выражения,

#перед выполнением оператора if

if (выражение)

print("Условие выполняется") print("значение выражения равно 1")

else

print("Условие не выполняется") print("значение выражения равно 0")

28

Отладка программ

5. Использование операторов вывода.

Иногда операторы вывода (например, cout, print) оказываются более удобными, чем средства наблюдения.

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

// Это точка А.

cout << "В точке А функции computeResults:\n"

<< "х=" << х << ", у=" << у << endl;

# Это точка А.

print("В точке А функции computeResults:\n") print("х =", х, ", у =", у);

• После отладки программы эти операторы можно удалить или закомментировать.

29

Отладка программ

6. Использование специальных функций для вывода отладочной информации.

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

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

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

30

Отладка программ

7.Структурный разбор программы.

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

Этот подход называется структурным разбором.

31

Отладка программ

8. Прогон программы с известными характеристиками.

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

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

32

Отладка программ

9.Трассировка.

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

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

33

Отладка программ

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

Верификация – доказательство корректности программы посредством логического анализа.

Валидация – доказательство того, что программа соответствует ожиданиям.

34

Тестирование программ (лекция 1)

Тестирование – выполнение программы с целью обнаружения наличия ошибок.

Тест – совокупность специально подобранных исходных данных

исоответствующих им результатов расчетов (как промежуточных, так и окончательных).

Тестирование:

Юнит

Интеграционное

Нагрузочное

Производительности

35