Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Методы символического значения






 

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

 

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

 

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

 

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

 

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

 

Известные методы и модели формализации процесса локализации ошибок обеспечивают лишь автоматизацию процедур выделения областей локализации ошибок. При этом используется диагностическая модель программы, задаваемая совокупностью < Х, V, Г1, Г2, Г3, Г4> и представляемая графом, где X – множество вершин, соответствующих переменным комплекса программ; V – множество дуг, соответствующее линейным участкам команд; Г1 – отображение множества V в V; Г2 и Г3 -отображения множества X в V и V в X соответственно; Г4 – отображение множества X в X. Параметры тестового набора задаются точкой входа vb, точкой выхода vl, множеством вершин исходных данных Xb и множеством вершин результатов Xl. Кроме того, задана булева функция правильности результатов F(xj) для Отладка программ и программных комплексов и правильности точки выхода F(vb).

 

Решение задачи определения области локализации ошибок сводится к выделению подграфа, связывающего вершины vl и vb,. Дальнейшие операции по установлению места расположения ошибки проводят вручную. Недостатком рассмотренного метода локализации является то обстоятельство, что выделенные подграфы локализации ошибки имеют, как правило, весьма большие размеры и в предельных случаях включают все элементы диагностической модели. Это объясняется тем, что в данном методе не учитывается конкретное содержание тестовых наборов и их направленность на выявление определённых свойств проверяемой программы.

 

Значительную помощь при локализации ошибок в программах оказывает рациональное размещение дампов, т.е. команд или подпрограмм печати, печатающих данные для распознавания и обнаружения ошибок. Например, при размещении дампов для проверки правильности организации циклов места их расположения целесообразно выбирать таким образом, чтобы они идентифицировали максимально возможное число циклов, а число точек, в которых расположены дампы, было при этом минимальным. Задача формулируется с использованием диагностической модели программы < Х, V, Г1, Г2, Г3, Г4> как задача о покрытии множества дуг, образующих циклы, таким образом, чтобы число дуг покрывающего набора было минимальным и не было ни одного цикла, для которого хотя бы одна дуга не вошла в набор.

 

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

 

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

 

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

 

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

 

Основными методами, используемыми на этапе системной отладки, являются методы анализа и тестирования.

 

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

 

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

 

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

 

Анализ целей, технологии, моделей и методов проведения системной отладки позволяет выделить ряд этапов отладочных работ и последовательность их проведения (рис. 1).

 

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

 

Составление плана системной отладки предусматривает выбор стратегии проведения отладочных работ, т.е. определение состава и последовательности отлаживаемых подструктур, обеспечивающих оптимальные временные или стоимостные характеристики системной отладки. В настоящее время применяются различные стратегии системной отладки: " сверху - вниз", " снизу – вверх" и их различные модификации. Реализация любой стратегии требует разбиения комплекса программ на части, автономной отладки полученных частей, последовательного объединения автономно отлаженных частей и их совместной отладки вплоть до исходного комплекса программ.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.