КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тестирование и отладка программы на стадии создания структуры программы
Тестирование и отладка программы Тактически и психологически неверно откладывать тестирование и отладку программу на момент окончания создания кода программы. Ошибки бывают трех видов – алгоритмические (ошибочный алгоритм), синтаксические (неверное написание операторов) и семантические (неправильное толкование смысла текста программы самим программистом). При первых пусках программы отсеиваются синтаксические ошибки. Компилятор и интерпретатор их просто не пропускают. Достаточно просто обнаруживаются алгоритмические ошибки: неверный алгоритм дает результат, явно отклоняющийся от ожидаемого. А вот семантические ошибки обнаруживаются достаточно трудно вследствие многообразия самих ошибок и причин, их порождающих. Предотвращение появления ошибок, их поиск и ликвидация имеют свою методологию. В простейшем виде можно выделить следующие стадии тестирования и отладки программы: · тестирование на стадии создания структуры программы; · тестирование на стадии создания процедур и функций программиста; · тестирование законченной версии кода программы. Тестирование и отладка программы начинаются еще на стадии создания кода программы. В частности, первым шагом в этом направлении является опробование интерфейса программы после создания всех форм, модулей и заготовок процедур и функций программиста[21]. Вместо кода процедуры или функции следует поставить "заглушку" – код программы, выводящий сообщение о том, что работает процедура (функция) и обеспечивающий ввод ожидаемых данных, например посредством окна Input Box.
На первом шаге отладки проверяется вся система команд, управляющих программным средством. При этом процесс отладки доходит до вывода сообщения о том, что работает конкретная процедура или функция, созданные программистом, и ввода ожидаемых данных. В результате первого шага отладки необходимо получить надежно работающую программу, которая обеспечивает ожидаемую реакцию на ввод всех предусмотренных команд при отсутствии "тупиковых" ситуаций, в которых программа не знает, что делать дальше. 8.1.2. Отладка процедур и функций, Второй шаг отладки программного средства происходит практически параллельно с наполнением процедур и функций, созданных программистом. Этим шагом является отладка указанных процедур и функций. Процесс наполнения кодом программы процедур и функций начинается с процедур и функций самого нижнего уровня, т.е. процедур и функций, которые поставляют данные другим процедурам и функциям, а сами получают данные только с клавиатуры или из файла. На этом этапе необходимо обеспечить надежную обработку данных внутри процедур и функций и определение всех глобальных данных, обработка которых предусмотрена алгоритмом. Наиболее часто встречающиеся ошибки на этом этапе: · наличие "тупиковых" ситуаций внутри процедур и функций; · наличие ошибок выполнения программы, например, деление на ноль и т.д.; · ошибки при передаче данных в процедуру и функцию и получении данных из этих блочных структур; · ошибки в определении глобальных данных и данных сложного типа. Наличие "тупиковых" ситуаций и ошибок выполнения программы можно спрогнозировать на основании рассмотрения Р-графа или блок-схемы программы. В частности, признаком возникновения таких ситуаций является неполнота перечисления всех возможных вариантов команд и наборов данных при построении ветвлений программы. Возникновение ошибок выполнения программы можно ожидать в случае наличия операций деления, чтения данных из файла и записи данных в файл.
Всегда полезно в любом операторе ветвления программы поставить ключевое слово else, после которого вывести сообщение о непредвиденной ситуации и принудительно прервать процедуру (функцию). Для предотвращения ошибок выполнения программы следует ввести обработку ошибок. Пример такой обработки приведен на рис. 8.1. Некоторая
t=1/t. После выполнения этого оператора происходит завершение процедуры. Операторы вида "On Error GoTo…" и подпрограммы обработки ошибок могут быт в нескольких процедурах кода формы. Ошибки при передаче данных в процедуру и функцию, получении данных из процедур и функций, а также ошибки в определении глобальных данных возникают вследствие следующих причин: · неправильного написания имен переменных, содержащих значения формальных параметров процедуры (функции); · неправильного написания имен глобальных переменных; · наличия в процедуре и функции структуре описания локальных переменных, имеющих одинаковые имена с глобальными переменными, описанными в коде формы. Первая и вторая причины очень распространены. Это и просто опечатки при вводе кода программы, и "забывчивость" программиста при написании имен данных, описанных в модуле, и имен данных сложного типа, определяемого программистом. Например, имеется модуль OpDan, в котором описана переменная с именем N. Везде, кроме самого модуля, к этой переменной необходимо обращаться по имени OpDan.N.
Аналогичная ситуация и с данными сложного типа. Пусть определен сложный тип данных Stud, содержащий поле Name, и создана переменная этого типа с именем Student. "Забывчивого" программиста "поджидают три ловушки": написание имени поля Name без имени переменной Student, написание имени Stud.Name и употребление в операторе with Student имени Name вместо конструкции ".Name". Во всех описанных случаях Visual Basic, "прощая программисту его забывчивость", услужливо создаст новые переменные, о которых программист даже и подозревать-то не будет. Такие ошибки, просматривая программу, можно искать неделями. Третья причина встречается нечасто. Пусть в коде формы вне блочной структуры (процедуры или функции) описана глобальная переменная с именем А1. Внутри процедуры или функции имеется описание переменной А1 как локальной. Программист внутри процедуры присваивает переменной А1 некоторое значение и думает, что оно присвоено глобальной переменной. На самом деле оно оказывается присвоенным локальной переменной, а глобальная осталась без изменения. Для предотвращения подобного рода ошибок проще всего придерживаться правила: "Глобальные переменные должны иметь длинные имена, прямо указывающие на назначение данных, а локальные – простые короткие имена, позволяющие догадаться об их назначении". Тестирование процедур и функций, определяемых программистом, лучше всего выполнять отдельно от всей программы с помощью специально созданной формы. При этом следует предварительно проанализировать все типовые ситуации и составить тестовые наборы данных. Например, для процедуры, показанной на рис. 8.1, такими типовыми ситуациями являются варианты t=0, t<0 и t>0. Особым случаем является непредставимый числом набор символов в свойстве Text текстового окна Text1. Поэтому следует проверить следующие варианты ввода данных в текстовое окно: · "10" – пример положительного числа; · "-10" – пример отрицательного числа; · "0" – нулевые данные; · ").1" – пример непредставимого набора данных (при вводе символа "9" ошибочно нажата клавиша Shift). Не следует жалеть времени на тщательную отладку процедур и функций, определяемых программистом. Чем лучше будет выполнен этот этап, тем меньше "приключений" вас ожидает в дальнейшем.
Дата добавления: 2014-11-29; Просмотров: 480; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |