Тестирование и отладка написанной программы являются содержанием четвёртого этапа разработки ПО.
Тестирование – выполнение программы с целью обнаружения наличия ошибок.
Тест – совокупность специально подобранных исходных данных и соответствующих им результатов расчетов (как промежуточных, так и окончательных).
Отладка – выполнение программы с целью локализации, диагностики и исправления ошибок.
Причины возникновения ошибок:
· некорректность текста (синтаксические ошибки);
· некорректность компоновки (ошибки редактирования);
· некорректность данных (семантические ошибки);
· некорректность алгоритма (семантические ошибки).
Синтаксические ошибки проявляются на этапе компиляции (система программирования выводит сообщение об ошибке и указывает место в программе, содержащее ошибку).
После компиляции следует компоновка программы, при которой могут быть ошибки редактирования (неправильное использование подключаемых модулей).
Семантические ошибки могут проявляться как на этапе выполнения программы (до её завершения), так и после выполнения программы. К первым относятся такие ошибки, как, например, деление на ноль, выход за границы диапазона, нехватка памяти и т.п. О них выводится сообщение компилятором, что облегчает исправление. Семантические ошибки второго типа находить и исправлять гораздо сложнее, так как компилятор их не может найти (они связаны с погрешностями самого алгоритма).
|
|
Для поиска этих ошибок используются различные специальные приёмы. Они основаны на получении дополнительной информации о ходе вычислительного процесса.
Некоторые из этих приёмов:
1) Слежение:
· трассировка – построчное выполнение программы (клавиши F7, F8 в Turbo Delphi);
· математическое слежение – контроль за изменением значений определенных переменных в процессе расчёта (подсказки при наведении курсора на идентификатор при трассировке).
2) Печать в узлах – вывод значений заданных переменных в узловых точках программы (разветвление или схождение алгоритма, точки входа и выхода из подпрограммы и др.).
3) Прокрутка – вывод значений всех переменных используемых в программе после выполнения каждого оператора в программе.
Лекция 6.