КАТЕГОРИИ: Архитектура-(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) |
Отладка
КЛАССИФИКАЦИЯ ТЕСТОВ АКСИОМЫ ТЕСТИРОВАНИЯ Тестирование программных систем в настоящее время остается в большей мере искусством, чем наукой. При проведении тестов рекомендуется придерживаться так называемых аксиом тестирования, представляющих собой эвристические приемы. Вот некоторые из них: 1) хорошим считается тот тест, в котором высока вероятность обнаружения ошибок; 2)тестирование собственной программы существенно осложняется психологическими причинами; 3) необходимой частью тестов считается описание выходных результатов; 4)нужно готовить тесты как для правильных, так, и для неправильных данных;, 5) нельзя тестировать «с лету», наскоком; 6) необходимо тщательно изучать результаты каждого теста; 7) по мере обнаружения все большего числа ошибок в программе, возрастает вероятность обнаружения в ней еще большего числа ошибок; 8) тестирование программ должны осуществлять самые лучшие и опытные программисты; 9)одной из главных задач разработчиков программы является возможность осуществления ее тестирования; 10)нельзя изменять программу только с целью облегчить процесс ее тестирования; 11)чем раньше спроектирован тест, тем выше вероятность выявления ошибок. Лучше всего готовить тесты еще на этапе проектирования системы; 12)процесс тестирования должен быть документирован и полностью управляем, хаотичность недопустима; 13)необходимы повторяемость и завершенность тестов; 14)следует избегать добавления новых тестов уже в процессе тестирования. По условиям их поведения тесты могут быть классифицированы следующим образом: Доказательство (proof) - попытки найти ошибки в программе путем доказательств на основе математических теорем о правильности программы, безотносительно к внешней программной среде. Верификация программы (program verification) - попытка найти ошибки, выполняя программу в тестовой или моделируемой среде. Испытание (validation) - попытка найти ошибки, выполняя программу в заданной программной среде. Приемо-сдаточные испытания - проверка пригодности программы для эксплуатации; такие испытания обычно проводят под контролем поставщика системы. По назначению тесты классифицируются: тестирование модуля (автономное тестирование) (module testing) — контроль, отдельного модуля в изолированной среде (например, с помощью ведущей программы), инспекция текста модуля на сессии программистов, которая иногда дополняется математическим доказательством правильности модуля; тестирование сопряжений (integration testing) - контроль сопряжений между частями программной системы, как между компонентами в комплексе, так и между модулями отдельного компонента (например, у заглушки); комплексное тестирование (system testing) — контроль и испытание системы по отношению к исходным целям. Осуществляется с целью проверки правильной совместной работы составных частей программы. При комплексном тестировании особое внимание обычно уделяется взаимодействию компонентов. Комплексное тестирование является процессом контроля, если оно выполняется в условиях моделируемой среды, и процессом испытания при выполнении в реальной среде; системное тестирование - при системном тестировании вся система в целом обычно рассматривается как некоторый «черный ящик»; поведение этой системы исследуют, не вникая в подробности отдельных ее компонентов и взаимодействий между ними; тестирование приемлемости (acceptance testing) - проверка соответствия программы требованиям пользователя. Процесс тестирования нельзя путать с процессом отладки (debugging). Первый служит лишь для обнаружения факта существования ошибок, а не для их локализации и устранения. Отладка программ обычно осуществляется с использованием специальных программных средств. Последние используются для исследования внутреннего поведения программы. Типичный отладчик позволяет вводить в программу точки останова для оценки промежуточных результатов и производить проверку и модификацию значений переменных в этих точках. Существуют несколько способов отладки программы. Распечатка текущего состоя н и я. Используется с целью фиксации фактических значений переменных для проверки хода вычислений. Для этого во время отладки программы в места, которые программист считает критическими, помещают процедуры распечатки текущего состояния переменных. После окончания теста вызовы этих процедур удаляются, и программа снова перекомпилируется. Точки останова. Используются в случае разного рода зацикливаний, когда программа в какой-то момент «зависает». В текст программы включают процедуры останова программы. Например, можно поместить процедуру вывода обычного сообщения вроде «Достигнута точка #ппп» и инициировать паузу до нажатия на любую клавишу. При таком подходе программист точно знает, до какой точки дошла программа перед зацикливанием. Метод деления п о п о л а м. Этот метод используют связисты, когда ищут обрыв в кабеле, закопанном в землю. Например, если приблизительно известно до какого момента программа успешно выполняется, то в этом месте программы ставят точку останова. Затем ставят точку в конце «подозреваемой» процедуры и посредине - между первой и последней точками. Снова компилируют и выполняют программу. Если программа дошла до второй точки, то зацикливание произошло где-то между второй и третьей точками, если не дошла - между первой и второй. После этого вставляется новая точка останова в локализованный участок и программа снова компилируется. Таким образом, постоянно сжимая район поисков, можно найти ошибочный участок. Трассировка. Является последним средством обнаружения ошибки. Она может оказаться очень эффективной, но значительно замедляет выполнение программы и, не будучи тщательно спланированной, приводит к колоссальным объемам выдаваемой информации. При трассировке происходит пошаговое выполнение программы с возможностью просмотра состояния всех переменных.
Дата добавления: 2014-12-16; Просмотров: 463; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |