Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы.doc
Скачиваний:
26
Добавлен:
21.11.2018
Размер:
16.91 Mб
Скачать

Тестирование и отладка как этап разработки приложений

Предположим, что уже написан код вашей процедуры. Следующий этап в создании любой процедуры - тестирование написанного кода. Тестирование - это процесс выполнения процедуры и исследование всех аспектов ее работы. Например, в процессе тестирования вы должны ввести различные типы данных (конечно, если это предусмотрено в процедуре), щелкнуть на всех командных кнопках, сделать выделение с последующим манипулированием различных диапазонов ячеек и т.п. Цель тестирования - проверить правильность результатов выполнения процедуры и ее реакцию на разнообразные действия пользователя. Если во время работы процедуры получены неверные результаты вычислений, непредвиденная реакция на те или иные действия пользователя, либо вообще произошла остановка выполнения, то это говорит о том, что код процедуры имеет ошибки (bugs).

Теперь надо подумать, что вы, как программист, можете сделать для минимизации возможных неполадок в своей процедуре. Я, конечно, понимаю ваше стремление при создании нового проекта сразу приступить к написанию кода. Но если вы прислушались к моим рекомендациям по разработке приложений (см. начало 3-го часа "Работа с элементами управления"), то у вас есть сформулированные и документированные цели и требования к разрабатываемому приложению. В результате вы получаете четкую картину того, что и как должно выполнять приложение. Это, в свою очередь, помогает резко ограничить круг проблем, которые могут возникнуть при выполнении приложения. Также важно с практической точки зрения разграничивать приложения, разрабатываемые "для личного потребления", и приложения, с которым будут работать сторонние пользователи. Требования к приложениям, с которыми будут работать другие пользователи, естественно, значительно выше и на их тестирование и отладку потребуется больше времени. В любом случае, то время, которое вы потратите на анализ и документирование на первом этапе разработки приложения, с лихвой окупится на последующих этапах, в частности на этапе тестирования приложения.

Еще одним хорошим средством предотвращения и отслеживания возможных ошибок в программах является поддержка соглашений об именах элементов управления, переменных, констант, объектов и т.д. Все примеры в этой книге удовлетворяют соглашениям об именах.

Соглашения об именах элементов управления приведены в 3-м часе "Работа с элементами управления", а соглашения об именах переменных и констант - в 4-м часе "Переменные и константы".

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

Выполняя упражнения из этой книги, вы, вероятно, не раз допускали какие-либо ошибки при вводе кода. В этом случае после нажатия клавиши <Enter> вы видели окно с сообщением о синтаксической ошибке (рис. 12.1). По умолчанию редактор Visual Basic отслеживает синтаксические ошибки в коде процедур после нажатия клавиши <Enter>. Это полезное средство, но при желании вы его можете отключить (или восстановить), удалив (или установив) флажок опции Auto Syntax Check (Автоматическая проверка синтаксиса) на вкладке Editor (Редактор) диалогового окна Options (Параметры).

Другой тип ошибок называется ошибками выполнения (runtime error). Это такие ошибки, которые приводят к остановке выполнения приложения. Иногда вина за такие ошибки ложится на программиста. Например, вы ввели имя объекта с ошибкой. VBA может обнаружить такую ошибку только во время выполнения программы. Ошибки выполнения также могут быть реакцией на действия пользователя, которые не предусмотрены в программе, например на ввод некорректного значения аргумента функции, которую вы создали.

Наконец, существует еще один тип ошибок, который называется логическими ошибками (logic error). VBA не может отследить такой тип ошибок, так как в этом случае обычно нет грамматических и синтаксических ошибок в написании операторов. В этом случае говорят, что нарушена логика выполнения операторов. Далее вы узнаете, что большинство средств отладки направлено именно на поиск и исправление логических ошибок.

Рис. 12.1. Редактор Visual Basic немедленно реагирует на синтаксические ошибки