Необходимость тестирования программных продуктов

149178
знаков
9
таблиц
8
изображений

2.6 Необходимость тестирования программных продуктов

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

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

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

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

2.7 Отладка и общие принципы тестирования программ

Начинающий программист, как правило, переоценивает свои возможности и, проводя разработку программы, исходит из того, что в его программе ошибок не будет. Исходя из такого представления о своих способностях, этот программист и строит свою работу над программой, и каждый неверный результат, каждая найденная ошибка вызывают у него изумление и считаются, конечно, последними. Вследствие такого подхода получение надежных результатов откладываются на неопределенный срок. Только приобретя достаточный опыт, программист понимает справедливость древнего высказывания: «Человеку свойственно ошибаться». Оказывается, что практически невозможно составить реальную программу без ошибок, и почти невозможно для достаточно сложной программы быстро найти и устранить все имеющиеся в ней ошибки. Трудности программирования и отладки программы подчеркивает следующий афоризм: «В любой программе есть по крайней мере одна ошибка». Таким образом, можно сказать, что наличие ошибок в только что разработанной программе это вполне нормальное явление.

Одним из самых сложных и трудоемких этапов технологического процесса разработки программ является их тестирование и отладка. Как известно, при создании типичного программного проекта около 50% общего времени и более 50% общей стоимости расходуется на проверку разрабатываемой системы и ее отладку.

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

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

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

Существует два основных подхода к тестированию:


Рис. 2.3. Технология отладки программ

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

2. Тестирование программы как «белого ящика». Стратегия белого ящика, или стратегия тестирования, управляемого логикой программы, позволяет использовать внутреннюю структуру программы. В этом случае программист получает тестовые данные путем анализа логики программы. Основной алгоритм тестирования программы представлен на рис. 2.3.

Также существует 3 основных способа тестирования: алгоритмическое, аналитическое и содержательное.

Алгоритмическое тестирование

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

Функциональное или аналитическое тестирование

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

Содержательное тестирование

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

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

2.8 Типы тестов

Рассмотрим несколько основных типов тестов программного обеспечения:

Вырожденный тест

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

Тест граничных значений

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

Аварийный тест

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

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

Стыковочные тесты

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

Комплексные тесты

Проверяют правильность работы всех или большинства частей программы после их объединения.


Информация о работе «Программное обеспечение управления автоматизированным комплексом многоканальной связи»
Раздел: Информатика, программирование
Количество знаков с пробелами: 149178
Количество таблиц: 9
Количество изображений: 8

Похожие работы

Скачать
448518
14
55

... также невысока и обычно составляет около 100 кбайт/с. НКМЛ могут использовать локальные интерфейсы SCSI. Лекция 3. Программное обеспечение ПЭВМ 3.1 Общая характеристика и состав программного обеспечения 3.1.1 Состав и назначение программного обеспечения Процесс взаимодействия человека с компьютером организуется устройством управления в соответствии с той программой, которую пользователь ...

Скачать
172056
0
5

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

Скачать
69323
0
0

еоценить значение МП и микроЭВМ при создании автоматизированных средств измерений, предназначенных для управления, исследования, контроля и испытаний сложных объектов. Развитие науки и техники требует постоянного совершенствования средств измерительной техники, роль которой неуклонно возрастает.   Основные понятия и определения   Понятия и определения, используемые в измерительной технике, ...

Скачать
121804
11
7

... питания, блока сопряжения с компьютером, компьютер, индикатор. Блок – схема радиоприемника представлена на рисунке.2.1. Рисунок 2.1 - Структурная схема дистанционного комплекса контроля функционального состояния 1 – приемник; 2 – дешифратора; 3 – детектора; 4 – усилителя; 5 – усилителя вертикального отклонения; 6 – электронно-лучевой трубки; 7 – задающего генератора ...

0 комментариев


Наверх