на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Отладка программ и программных комплексов
аиболее перспективными методами детерминированного подхода к генерации тестовых данных являются методы, основанные на использовании символического исполнения программы. При таком исполнении вместо действительных значений переменных используют их символические значения, а множество прогонов с различными входными значениями заменяется одним символическим выполнением некоторого пути программы. Последняя представляется в виде направленного графа, вершинами которого являются предложения программы, а дугами - передачи управления между ними. Символическому выполнению пути р соответствует система неравенств В(р) относительно входных переменных, называемых условиями пути р. Решение tp системы неравенств B(р) определяет условия выполнения исследуемого пути, т.е. любые исходные данные, удовлетворяющие полученному решению, вызовут выполнение этого пути.

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

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

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

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

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

Известные методы и модели формализации процесса локализации ошибок обеспечивают лишь автоматизацию процедур выделения областей локализации ошибок. При этом используется диагностическая модель программы, задаваемая совокупностью <Х, 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).

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

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

Рис. 1

Множество стратегий системной отладки определяется множеством возможных вариантов разбиения и объединения структурного графа С, вершинами которого являются программные модули комплекса, а дугами - связи по управлению между ними. Любая mn-стратегия задает множество подграфов разбиения графа GРm = {Р1, ..., Pv, ..., Pmn} и последовательность объединения этих подграфов до исходной графовой структуры При этом задача выбора оптимальной стратегии системной отладки по критерию минимума времени на ее проведение формулируется следующим образом:

Найти

- время и стоимость разбиения при использовании mn-стратегии; - время и стоимость объединения при использовании mn-стратегии; Сзад. - допустимые затраты на проведение системной отладки.

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

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

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

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

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

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

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

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

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

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

Оптимизация программ включает оптимизацию распределения памяти, оптимизацию выражений, оптимизацию циклов.

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

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

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

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

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

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.