Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Методы тестирования программ




Тестирование программ является одной из составных частей более общего понятия - "отладка программ". Если тестирование - это процесс, направленный на выявление ошибок, то целью отладки являются локализация и исправление выявлен­ных в процессе тестирования ошибок.

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

Процесс отладки включает:

- действия, направленные на выявление ошибок (тестирование);

- диагностику и локализацию ошибок (определение характера и местонахождения ошибок);

- внесение исправлений в программу с целью устранения ошибок.

Из трех перечисленных видов работ самым трудоемким и дорогим является тестирование, затраты на которое для типич­ных ПИ приближаются к 40% общих затрат на разработку.

Процесс отладки начинается с разработки тестовых наборов данных по определенной методике, придерживаясь ряда правил, которые подробно будут рассмотрены в п.5.3.

Большая трудоемкость тестирования и ограниченные ресурсы приводят к необходимости систематизации процесса и методов тестирования. Рассмотрим подробнее последовательно применяемые методы тестирования: статический, детерминированный, стохастический и в реальном масштабе времени.

Статическое тестирование - наиболее формализованное, базируется на правилах структурного построения программ и обработки данных. Проверка степени выполнения этих правил проводится без изменения объектного кода программы путем формального анализа текста программы на языке программирования. Операторы и операнды текста программы анализируются в символьном виде, поэтому этот метод тестирования иногда называют символическим тестированием.

Наиболее трудоемким и детализированным является детерминированное тестирование, которое требует многократного выполнения программы на ЭВМ с использованием определенных, специальным образом подобранных тестовых наборов данных. При детерминированном тестировании контролируются каждая комбинация исходных данных и соответствующие результаты, а также каждое утверждение в спецификации тестируемой программы.

Детерминированное тестирование в силу трудоемкости возможно применять для отдельных модулей в процессе сборки программы или для небольших и несложных программных комплексов.

При тестировании ПИ невозможно перебрать все комбинации исходных данных и проконтролировать результаты функционирования на каждой из них, поэтому для комплексного тестирования ПИ применяется стохастическое тестирование.

Стохастическое тестирование предполагает использование в качестве исходных данных множества случайных величин с соответствующими распределениями, а для сравнения полученных результатов используются также распределения случайных величин.

Стохастическое тестирование применяется в основном для обнаружения ошибок, а для диагностики и локализации ошибок приходится переходить к детерминированному тестированию с использованием конкретных значений исходных данных из области изменения ранее использовавшихся случайных величин. Стохастическое тестирование наилучшим образом подвергается автоматизации путем использования датчиков случайных значений (генераторов случайных величин).

ПИ, предназначенные для работы в системах реального времени, должны проходить тестирование в реальном масштабе времени. В процессе такого тестирования проверяются результаты обработки исходных данных с учетом времени их поступления, длительности и приоритетности обработки, динамики использования памяти и взаимодействия с другими программами. При обнаружении отклонений результатов выполнения программ от ожидаемых для локализации ошибок приходится фиксировать время и переходить к детерминированному тестированию.

Каждый из рассмотренных методов тестирования не исключает последовательного применения другого метода, скорее наоборот, требование к повышению качества ПИ предполагает необходимость подвергать их различным методам тестирования (и их сочетаниям) в зависимости от сложности и области применения.

Каждый метод тестирования предполагает использование конкретных процедур для реализации. Статическое тестирование реализуется путем применения ручных методов тестирования программ.

Использование ручных методов тестирования достаточно эффективно. Для типичных программ, по данным фирмы IBM, можно находить от 30 до 80% ошибок логического проектирования и кодирования. Эти методы способствуют существенному увеличению производительности и повышению надежности программ, позволяют раньше обнаружить ошибки, а значит, уменьшить стоимость исправления. При ручных методах тестирования вероятность того, что при исправлении ошибок не вносятся новые ошибки, намного выше.

Основные методы ручного тестирования: инспекции исходного текста и сквозные просмотры.

Они имеют много общего:

- предполагают некоторую подготовительную работу;

- собирается собрание, состоящее из участников проверки, цель которого нахождение ошибок, но не их устранение (т.е. тестирование, а не отладка).

Рассмотрим каждую из предлагаемых процедур.

Инспекции исходного текста - набор правил и приемов обнаружения ошибок при изучении текста программы группой специалистов.

В инспектирующую группу входят обычно 4 человека: председатель (не автор, но знакомый с деталями программы); автор программы; проектировщик и специалист по тестированию.

В функции председателя входят: подготовка материалов для заседания инспектирующей группы; составление графика проведения инспекций; ведение заседания и регистрация всех найденных ошибок.

Общая процедура инспекции заключается в том, что председатель заранее (за несколько дней) раздает листинг программы и проектную спецификацию остальным членам группы для ознакомления. Инспекционное заседание начинается с доклада автора о логике своей программы, о методах и приемах, использованных при ее написании. Далее программа анализируется по списку вопросов для выявления общих ошибок программирования. Предлагаемый список содержит 67 вопросов, сгруппированных в 8 групп.

Председатель должен нести ответственность за результативность дискуссии, а участники должны сосредоточить свое внимание на поиске ошибок, а не на их корректировке. По окончании заседания автору программы передается список найденных ошибок. Если он очень велик и требует больших доработок, то может быть принято решение повторной инспек­ции. Оптимальная продолжительность заседания 90-120 мин. Скорость просмотра 150 операторов в час.

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

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

Процедура подготовки и проведения заседания при сквозном просмотре отличается тем, что на подготовительном этапе специалист по тестированию готовит небольшое число тестов, во время заседания каждый тест мысленно выполняется, и состояние программы отслеживается на бумаге или доске. Количество тестов должно быть небольшим, и они должны быть простыми. Фактически оба рассмотренных метода - это развитие всем хорошо знакомой процедуры "проверки за столом", когда программист просматривает свою программу перед началом тестирования. Однако они более эффективны, так как осуществляется один из основных принципов тестирования (тестирование не должен проводить автор программы), и намного дешевле машинного тестирования (не используется дорогостоящее машинное время).

Описанные методы рекомендуется использовать не только для тестирования новых программ, но и для модифицируемых программ, т.е. они эффективны как при разработке ПИ, так и на этапе эксплуатации при проведении работ по сопровождению.




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 1434; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.