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

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

· выявления ошибки;

· локализации ошибки в тексте программы;

· установления причины ошибки;

· исправления ошибки.

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

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

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