
- •Технология программирования
- •Технология программирования
- •Оглавление
- •§1. Классификация и эволюция программного обеспечения
- •§2. Модульное и объектно-ориентированное программирование
- •Основные понятия ооп
- •Составные части объектного подхода
- •Инкапсуляция. Свойства
- •Наследование. Методы
- •Полиморфизм
- •§3. Визуальная среда программирования Структура проекта Delphi
- •Библиотека компонентов Delphi
- •Класс tButton (кнопки)
- •Класс tShape (фигуры)
- •§4. Основные типы данных в языке Паскаль
- •Класс tLabel (надписи)
- •Класс tEdit
- •Класс tMemo
- •Класс tMainMenu
- •Стандартные диалоги
- •Классы tOpenDialog и tSaveDialog
- •Класс tFontDialog
- •Инструкция case
- •§6. Программирование циклических алгоритмов
- •Цикл с параметром. Инструкция for
- •Цикл с предусловием. Инструкция while
- •Цикл с постусловием. Инструкция repeat … until
- •§7. Простейшие вычислительные методы
- •Метод прямоугольников
- •Метод Монте-Карло
- •Метод деления пополам
- •§8. Процедуры и функции
- •§9. Одномерные массивы
- •Класс tListBox
- •Класс tComboBox
- •§10. Двумерные и многомерные массивы
- •Класс tStringGrid
- •Алгоритмы поиска наименьшего и наибольшего элемента
- •§11. Алгоритмы поиска и сортировки. Понятие вычислительной сложности алгоритма
- •Алгоритм простого перебора
- •Алгоритм бинарного поиска
- •Алгоритм сортировки методом «пузырька»
- •Алгоритм сортировки включением
- •Понятие вычислительной сложности алгоритма
- •§12. Обработка исключительных ситуаций
- •§13. Программирование процессов реального времени
- •Класс tTimer
- •§14. Графическая подсистема Delphi Класс tImage
- •Класс tCanvas
- •§15. Динамическое создание компонентов. Конструкторы и деструкторы
- •§16. Тестирование и отладка программ
- •Методы тестирования программ
- •Средства отладки программ в Delphi
- •Трассировка программы
- •Точки останова программы
- •Наблюдение значений переменных
- •§17. Жизненный цикл программного обеспечения
- •Последовательный (каскадный) тип
- •Эволюционный (спиральный) тип
- •Библиографический список
- •Технология программирования
- •Редактор с.В.Пилюгина
- •620034, Екатеринбург, ул. Колмогорова, 66, УрГупс Редакционно-издательский отдел
§16. Тестирование и отладка программ
Создание программного продукта – будь то учебный проект или операционная система – складывается из целого ряда этапов. Очень упрощенно это выглядит так. Начинается все с этапа разработки, который в свою очередь состоит из нескольких шагов. Затем следует этап программирования.
После того, как программа написана и как-то работает, работа над ней не заканчивается. Необходимо еще убедиться, что она работает корректно во всех ситуациях, которые могут возникнуть при ее использовании. Если это не так – следует найти и устранить ошибки. Иными словами, после завершения процесса программирования программный продукт переходит в стадию тестирования и отладки.
Тестирование – проверка работоспособности программного продукта при всех возможных вариантах его использования с целью обнаружения ошибок.
Отладкой называется процесс поиска и устранения ошибок.
Отметим, что после отладки необходимо повторить тестирование сначала, т. к. устранение одних ошибок нередко приводит к появлению других.
Методы тестирования программ
Для того чтобы быть уверенным, что программный продукт не подведет пользователя, необходимо провести тестирование на большом числе тестовых примеров, охватывающих все возможные ситуации.
Однако для больших программных комплексов число возможных ситуаций столь велико, что полному охвату не поддается, и стопроцентной гарантии, что в программе нет ошибок, дать нельзя. Можно добиться лишь того, что в большинстве часто встречающихся вариантов использования продукт «ведет себя» правильно. Для достижения этого существуют различные методы тестирования, и для серьезных разработок пользоваться нужно не одним из них, а всеми в комплексе.
Авторское тестирование – проверка программы исходя из ее логики. Автор, зная внутреннюю логику программы, подбирает тестовые примеры так, чтобы проверить работу всех ее блоков.
Неавторское тестирование (стороннее, его еще называют методом «черного ящика») – проверка программы с точки зрения пользователя. Тестовые примеры подбираются исходя из реальных ситуаций, возникающих в ходе эксплуатации.
Для продуктов, выпускаемых на рынок, используют тестирование широким кругом потенциальных пользователей. Для этого выпускают так называемую «бета-версию» продукта и распространяют ее (обычно бесплатно) без гарантий надежной работы. Сбор информации об ошибках и отказах дает неоценимый материал для отладки.
Средства отладки программ в Delphi
Ошибки, которые могут быть в программе, принято делить на три группы:
синтаксические;
ошибки времени выполнения;
алгоритмические.
Синтаксические ошибки называют также ошибками времени компиляции (Compile-time error). Они наиболее легко устранимы. Их обнаруживает компилятор, а программисту остается только внести изменения в текст программы и выполнить повторную компиляцию.
Ошибки времени выполнения (Run-time error) возникают не при каждом запуске программы, а лишь при определенном наборе входных данных (например, делении на ноль или вводе некорректной даты). Для их выявления требуется тщательно подготовить тестовые примеры. Если причиной являются не программные ошибки, а действия пользователя, то в программе должна быть предусмотрена обработка исключительных ситуаций (см. § 5).
С алгоритмическими ошибками дело обстоит иначе. Компиляция программы, в которой есть алгоритмическая ошибка, завершается успешно. При пробных запусках программа ведет себя нормально, однако при анализе результата выясняется, что он неверный. Для обнаружения такой ошибки нужен тщательно подобранный набор тестовых примеров. Для того чтобы устранить алгоритмическую ошибку, приходится анализировать алгоритм, вручную «прокручивать» его выполнение.
Интегрированная среда разработки Delphi предоставляет программисту мощное средство поиска и устранения ошибок в программе - отладчик. Отладчик позволяет выполнять трассировку программы, наблюдать значения переменных, контролировать получаемые программой промежуточные результаты.