
- •Министерство общего и профессионального образования Российской Федерации Томский государственный университет
- •Жизненный цикл программы Методические указания Томск -1999
- •Жизненный цикл программы
- •Стандарты структурного программирования
- •1. Для улучшения процесса разработки сложной программы её делят на независи-
- •Примерный план работы при создании и отладке программы в среде turbo pascfl 7.0 ( tp )
- •1. Для набора новой программы надо войти в свой кататалог, а затем перей-
- •3. Набрать заголовок новой программы и лучше сразу дать имя программе ( же-
- •Отладка и тестирование
- •Горячие клавиши среды tp 7.0
- •Литература
Отладка и тестирование
Одним из трудоемких этапов жизненного цикла программы является отладка —
процесс обнаружения, локализации и устранения ошибок в программе компьюте-ра.
Существуют три вида ошибок: синтаксические, ошибки выполнения и логичес-кие.
К синтаксическим относятся ошибки, заключающиеся в нарушении правил запи-си конструкций языка, такие, как отсутствие описания имени или разделителя между операторами, несоответствие типов или скобок и т. д. Эти ошибки обнару- живается компилятором, а потому они легко устраняются.
К ошибкам выполнения относят те, которые возникают при выполнении програм-мы, например деление на ноль, не найден файл, переполнение стека. Такие ошиб-ки возникают или из-за некорректных данных, или из-за ошибок в программе. При
этом выполнение программы завершается и выдаётся сообщение об ошибке.
Логические ошибки - это ошибки, не приводящие к завершению программы или при окончании её выполнения получается неверный результат. Подобные ошибки обнаруживаются при тестировании программ, т.е. проверке правильности работы
программы с помощью тестов ( контрольных задач ). Существует две стратегии тестирования: структурное ( по принципу ‘ белого ящика‘ ) и функциональное ( по принципу ‘чёрного ящика’ ).
Структурное тестирование основано на детальном исследовании внутренней структуры программы и подборе оптимального числа тестовых вариантов, позво-ляющих проверить максимально возможное количество операторов, логических ветвлений и условий.
При функциональном тестировании логика программы не учитывается, а анали-зируются лишь входные и выходные спецификации.
Эффективное проектирование тестовых вариантов данных — задача довольно
сложная.
Но даже эффективное тестирование хотя и выявляет ошибки, но не гарантирует
их отсутствие. Уменьшить число необнаруженных ошибок по сравнению с бессис-
темной проверкой программы позволяет следование нескольким практически по-
лезным правилам тестирования.
1. Следует готовить не только исходные данные для тестовых вариантов, но и находить заранее ответы для них. Так как, если не знать эталонных результатов теста до выполнения программы, то очень легко принять неверные результаты за правильные.
2. Важно, чтобы среди наборов тестовых данных были представлены некорректные исходные данные, чтобы можно было проверить, осмысленно ли реагтрует на них программа.
3. Составление тестов следует начинать практически до составления программы. Программу писать проще, когда выявлены случаи, подлежащие проверке.
4. Составление тестов продолжается параллельно с разработкой программы. Так, если в программе пишется условная конструкция, то тестовые данные пополняют-
ся, чтобы обеспечить проверку и для ложного , и для истинного условия.
5. В тестах все крайние случаи должны быть проверены. Отдельно осуществляется проверка работы программы для значений, которые по условию задачи должны обрабатываться особым образом.
6. Результаты выполнения тестов следует тщательно анализировать, иначе тестирование теряет смысл.
Набор тестов следует хранить, чтобы тестирование при необходимости можно было повторить.
Например, для программы решения квадратных уравнений надо проверить следующие случаи: 1) старший коэффициент равен нулю (некорректные исхожные данные), 2) корни комплексные, 3) корни совпадают (крайний случай), 4) один из корней равен нулю (ещё один крайний случай), 5) уравнение имеет два различных корня, не равных нулю.
Тестирование обеспечивает первый этап отладки — выявление факта наличия ошибки, следующие два этапа — поиск (локализация) её и исправление. Для этого используются точки прерывания, пошаговое выполнение программы и просмотр значений ряда переменных на различных шагах выполнения программы. Перечисленные действия можно выполнить удобными средствами, предоставляемыми интегрированным отладчиком системы TURBO PASCAL. При этом используются ‘горячие’ клавиши: F4, F7, F8, Ctrl/ F2, Ctrl/ F3, Ctrl/ F4, Ctrl/ F7, Ctrl/ F8.