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

кандидата технических наук
Кудрин, Константин Анатольевич
город
Самара
год
1998
специальность ВАК РФ
05.13.16
Автореферат по информатике, вычислительной технике и управлению на тему «Разработка методов автоматизированного тестирования программного обеспечения систем автоматизации эксперимента»

Автореферат диссертации по теме "Разработка методов автоматизированного тестирования программного обеспечения систем автоматизации эксперимента"

#

~ На правах рукописи

/

КУДРИН Константин Анатольевич

РАЗРАБОТКА МЕТОДОВ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМ АВТОМАТИЗАЦИИ ЭКСПЕРИМЕНТА

Специальность 05.13.16 - Применение вычислительной техники,

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

математических методов в научных исследованиях

Автореферат диссертации на соискание ученой степени кандидата технических наук

Самара -1998

Работа выполнена в Самарском государственном аэрокосмическом университете имени академика С.П. Королева

Научный руководитель: Научный консультант:

д.т.н., профессор С.А. Прохоров к.т.н., доцент А.Н. Коварцев

Официальные оппоненты:

д.т.н., профессор А.В. Соллогуб к.т.н., доцент С.В. Смирнов

Ведущая организация:

ОАО СНТК им академика Н.Д. Кузнецова

Защита состоится 26 июня 1998г. в _ часов на заседании

диссертационного совета Д ,063.87.02 в Самарском государственном аэрокосмическом университете имени академика С.П. Королева по адресу: 443086, г. Самара, Московское шоссе, 34.

С диссертацией можно ознакомиться в библиотеке университета.

Автореферат разослан"_"_1998г.

Ученый секретарь диссертационного совета к.ф.-м.н., доцент А.А. Калентьев

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

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

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

В развитии методов обнаружения и устранения ошибок основным направлением являются отладка и тестирование. Исследования в этой области начали проводиться с тех пор, как появилось понятие "практическое программирование". И в настоящее время проблеме отладки и тестирования посвящены многочисленные труды отечественных и зарубежных специалистов. В начале 80-х годов состояние в этой области отражают публикации таких зарубежных исследователей как Боэм Б., Гласс Р., Майерс Г., Маккейб Т. и других. Среди отечественных исследователей частными аспектами этой проблемы занимались Архангельский Б.В., Бетелин В.Б., Иыуду К.А., Липаев В.В., Шимаров В.А. и другие.

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

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

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

Для достижения поставленной цели необходимо решить следующие задачи:

1) провести комплексный анализ современных методов и средств повышения качества ! программной продукции, а также произвести классификацию методов тестирования и отладки 1111;

2) на основе динамического метода тестирования разработать методы автоматизированного тестирования и отладки программных средств в рамках технологии графо-символического программирования;

3) разработать методы структурной декомпозиции объектов технологии графо-символического программирования;

4) разработать методы и алгоритмы классификации данных граф-агрегатов;

5) разработать методы оценки вероятности обнаружения ошибок в тестируемых объектах на основе статистического метода тестирования.

6) разработать программное обеспечение для проведения экспериментальных исследований проблемы повышения качества ПО.

Научная новизна.

1. Разработана и исследована методика вероятностного анализа качества программного обеспечения с использованием статистического метода тестирования, что позволяет формально оценивать качество процесса отладки программного обеспечения.

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

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

Практическая ценность работы.

1. Разработана информационная система для автоматизации процесса тестирования программных модулей.

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

Реализация результатов.

В результате выполнения работы внедрены:

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

2. Методы, алгоритмы и инструментальная среда автоматизации тестирования в Самарском центре стандартизации, метрологии и сертификации.

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

Основные положения, выносимые на защиту и развиваемые в диссертационной работе:

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

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

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

Апробация работы. Результаты диссертационной работы докладывались и обсуждались на следующих конференциях:

- научно-техническая конференция "Измерение характеристик и имитация случайных сигналов" Новосибирск, 1994;

- научно-техническая конференция "Методы и средства измерения механических параметров в системах контроля и управления" Пенза, 1994;

- научно-техническая конференция "Информационные и кибернетические системы управления и их элементы" Уфа, 1995;

- научно-техническая конференция "Научно-исследовательские разработки и высокие технологии двойного применения" Самара, 1995;

- научно-техническая конференция "Королевские чтения" Самара, 1995;

- научно-методическая конференция "Интенсивные технологии обучения в подготовке специалистов" Самара, 1996;

- научно-техническая конференция "XXII Гагаринские чтения" Москва, 1996;

- международная конференция "Математика. Компьютер. Образование". Дубна. 1996.

Публикации.

По результатам выполненных исследований опубликовано 10 печатных работ, в том числе 2 статьи и 8 тезисов докладов научных конференций.

Структура и объем диссертации.

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

Содержание диссертации

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

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

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

В середине 80-х годов в области методов безошибочного проектирования началось формирование нового направления, получившего название САБЕ-технологии - автоматизированное проектирование программных продуктов.

Одним - из направлений, реализующих концепции СА8Е-технологии, является технология графо-символического программирования (в дальнейшем - ГСП-технология).

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

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

Программные модули делятся на базовые модули и объекты. Под базовым модулем понимается исходный текст программного модуля, написанного с учетом ограничений технологии ГСП.

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

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

Объекты являются исходным материалом для графического программирования. Результатом графического программирования являются агрегаты. Агрегат создается в форме графа, в котором объекты предметной области играют роль вершин и дуг. Дуги - объекты-предикаты, а вершины -акторы или агрегаты. Дуга графа определяют передачу управления от одной вершины к другой.

Предикат в технологии ГСП - это логическая функция, которая в зависимости от значений данных равна 0 или 1. Если значение 0, то переход по дуге запрещен, иначе - переход разрешен. Переход выполняется по самой приоритетной из всех разрешенных дуг, выходящих из текущей вершины, после ее срабатывания.

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

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

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

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

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

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

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

- тестирование для обнаружения ошибок в программе;

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

- тестирование правильности выполненных корректировок, цель которого состоит в подтверждении правильности программы и оценки ее надежности.

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

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

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

Во втором разделе рассматривается роль процесса тестирования на этапе отладки ПП.

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

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

Функционально любой программный модуль представляв? собой отображение: : £)" £)ш, где £)'" и £)'ы - соответственно вектора входных

и выходных параметров модуля А.

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

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

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

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

которым не определено отображение -у £)""'.

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

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

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

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

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

(см. рис. 1).

Окрестность ошибки в области определения модуля

Область ошибки ПЕ

Область определения Пг

Очевидно, что при

равномерном просмотре

области вероятность

события Е ошибочного

вычисления будет равна: где "<П) •

функция, оценивающая

площадь (в общем случае -гиперобъем) области П.

В том случае, когда тестирование модуля

производится по схеме независимых испытаний Бернулли, оценку качества тестирования можно представить как вероятность проявления ошибки Е при проведении N испытаний: г(Е) =1-^1—Л?)"-

При таком подходе возможны два варианта постановки задачи оценивания

г(Е):

- известна априорная оценка величины или порядка вероятности наличия ошибки в программе Ре",

- неизвестна величина РЕ.

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

Рис. 1.

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

Исследования, проведенные в работе показали, что вероятность обнаружения ошибки методом статистического тестирования, даже в самом худшем случае, больше 1/2, и этот факт служит оправданием проведения экспериментов по обнаружению в программе "тонких" ошибок.

Третий раздел посвящен анализу проблемы структурной отладки ПП.

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

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

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

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

С этой целью управляющий граф программы разбивается на цепочки (Мь М2,..., Ма), каждая из которых представляет собой один из возможных путей поведения алгоритма. Каждая из цепочек представляет собой подграф, классификация данных которого зависит от классификации данных входящих в него модулей. То есть, паспорт данного подграфа можно построить из паспортов его вершин. Под паспортом, в этом случае, понимается соответствие имен формальных параметров модуля и классов их модификации (инициируемый или вычисляемый). Очевидно, что паспорта объектов, образующих цепочку, могут быть объединены в некоторую совокупность. Паспорт цепочки Р(М;) эквивалентен списку паспортов модулей, составляющих эту цепочку:

Р(М)=РС1й)АРи2)А"ЛЯЫ»),

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

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

Классификация параметров граф-агрегата Р(в) будет определяться полученными паспортами всех цепочек:

где V - операция над данными, реализующая объединение паспортов цепочек, исходя из приоритетности признака инициируемости.

Таким образом, задача классификации данных граф-агрегата состоит из трех этапов (см. рис. 2).

Этапы классификации данных граф-агрегатов.

о :

2)

оом ска—о-съа оо—о

CZMZWZ]

Р(М ,) Р(Мг) Р(М,) Р(М,)

3)

>-P(G)

Рис.2.

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

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

3. Классификация данных граф-агрегата, на основании полученных паспортов цепочек. Для реализации этого этапа определена операция V, позволяющая реализовать объединение паспортов цепочек с учетом приоритетности признака инициируемости.

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

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

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

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

Другим направлением исследований, проводимых в третьем разделе стало исследование проблемы отладки граф-агрегатов с точки зрения структурного

анализа программ.

При отладке граф-агрегатов в рамках технологии ГСП следует учитывать следующие факторы:

- граф-агрегат строится из отлаженных и оттестированных модулей, расположенных в системных и пользовательских библиотеках;

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

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

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

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

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

Таким образом, процесс тестирования граф-агрегатов в рамках технологии ГСП состоит из следующих этапов:

- декомпозиция исходного управляющего графа программы на множество подграфов, которые классифицируются в соответствии с выбранным критерием;

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

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

В четвертом разделе производится апробация предложенных методов и алгоритмов автоматизированного тестирования при исследовании программного обеспечения САПР авиационных ГТД.

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

Структурная декомпозиция граф-агрегата.

Рнс.З.

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

предметной области

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

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

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

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

В то же время, процесс тестирования базовых модулей САПР ГТД легко поддается автоматизации в силу ряда характерных особенностей этой предметной области:

- базовые модули САПР ГТД представляют собой простые и линейные программные конструкции, имеющие короткое время выполнения, что позволяет проводить тестовые испытания на достаточно больших выборках входных параметров со сравнительно небольшими временными затратами;

- в силу того, что основная часть программных модулей САПР ГТД реализует численные методы, входные и выходные параметры этих модулей представляют собой численные переменные, имеющие, как правило, один общий синтаксический тип (например, "плавающий" или "плавающий с

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

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

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

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

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

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

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

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

/(*) = —— > причем у функции ср(х) в области определения существует (р(х)

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

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

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

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

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

Следующей проблемой, рассматриваемой в четвертой главе, являлась задача построения области значений входных параметров модулей. Актуальность этой задачи объясняется тем, что модели современных газотурбинных двигателей - это системы нелинейных уравнений, составленных на основе законов сохранения энергии и учитывающие конструктивные особенности двигателя. В предметной области САПР ГТД традиционным считается решение данных систем с помощью различных итерационных методов (например, метода Ньютона).

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

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

наиболее интересные фрагменты области сходимости (рис. 4 б)-г)).

Визуальное представление области сходимости метода Ньютона решения системы нелинейных уравнений.

в) г>

Рис. 4.

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

Результаты эксперимента, проведенного с использованием искусственно подобранной модели, показали работоспособность метода и возможность его применения для исследования реальных модулей САПР ГТД. Для проведения практического исследования тестированию были подвергнуты модули термодинамического расчета отдельных узлов и агрегатов газотурбинных двигателей, взятые из реально работающих систем автоматизации проектирования (рис 5).

Тестирование показало, что даже при превышении предполагаемых значений входных параметров, тем не менее, имеется значительный "запас прочности" модулей. То есть, работа даже на предельных граничных режимах модуля дает реальные результаты. Этот факт обусловлен тем, что исследуемые программные модули имели многолетнюю практическую апробацию (около 15 лет) при разработке реальных САПР ГТД. Поэтому результаты тестирования лишь подтвердили их функциональную надежность.

В качестве следующего объекта исследования были выбраны модули САПР расчета характеристик лопаток рабочих колес авиационных газовых

Модуль расчета камеры смешения Модуль расчета камеры сгорания

Модуль расчета ступени М1 югоступенчатой турбины

■ 1

Модуль расчета характеристик компрессора

Рис.5.

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

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

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

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

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

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

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

Исследование программных модулей САПР полочных бандажей рабочих колес авиационных газовых турбин

к

Рис. б.

Основные результаты работы

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

2. Предложена методика вероятностной оценки качества тестирования модулей.

3. Предложен критерий декомпозиции граф-агрегата, обеспечивающий более глубокую детализацию при его тестировании.

4. Разработан алгоритм сокращения числа непериодических маршрутов для тестирования объектов ГСП и классификации их данных на основе алгебры трехзначной логики.

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

6. Разработана диалоговая инструментальная подсистема тестирования базовых программных модулей и граф-агрегатов в рамках системы "Graph", реализующей концепции технологии ГСП.

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

Публикации по теме диссертационной работы

1. Коварцев А.Н., Кудрин К.А. Интерфейс редактирования данных, основанный на многооконной технологии // Тез. докл. науч.-тех. конф. "Методы и средства измерения механических параметров в системах контроля и управления" -Пенза, 1994, -С.40-41.

2. Коварцев А.Н., Кудрин К.А. Метод классификации данных программных модулей, реализованных в технологии графо-символического программирования // Тез. докл. науч.-тех. конф. "Интенсивные технологии обучения в подготовке специалистов" -Самара, 1996. -С.45-46.

3. Кудрин К.А. Автоматизация отладки в технологии графо-символического программирования // Тез. докл. науч.-тех. конф. "Информационные и кибернетические системы управления и их элементы" -Уфа, 1995. -С.21-22.

4. Кудрин К.А. Автоматизированная классификация данных программных модулей // Тез. докл. науч.-тех. конф. "ХХП Гагаринские чтения" -Москва, 1996. -С.110-111.

5. Кудрин К.А. Система автоматизированного тестирования и отладки программных средств в технологии графо-символического программирования // Тез. докл. науч.-тех. конф. "Математика, компьютер, образование" -Дубна, 1996. -С.70.

6. Кудрин К.А., Коварцев А.Н. Технология графо-символического программирования в системе GRAF // Сб. науч. тр. Международной конференции "Математика. Компьютер. Образование". -М.:РИИС ФИАН, 1996. -С.191-198.

7. Применение ГП-технологии в статистических измерениях и моделировании случайных сигналов / Прохоров С.А., Коварцев А.Н., Кудрин К.А. и др. // Тез. докл. науч.-тех. конф. "Измерение характеристик и имитация случайных сигналов" -Новосибирск, 1994. -С. 13-14.

8. Прохоров С.А., Коварцев А.Н., Кудрин К.А. Методы автоматизации отладки в технологии графо-символического программирования //Сб. науч. тр. "Информационные системы и технологии", -Самара, 1996. -С.75-79.

9. Прохоров С.А., Коварцев А.Н., Кудрин К.А. Система автоматизации программирования GRAF И Тез. докл. науч.-тех. конф. "Научно-исследовательские разработки и высокие технологии двойного применения" -Самара, 1995. -С.97-98.

10. Прохоров С.А., Кудрин К.А. Подсистема отладки средства автоматизации программирования // Тез. докл. науч.-тех. конф. "Королевские чтения" -Самара, 1995. -С.141.

Подписано в печать 08.05.98 г. Формат 60x84 '/i6 Бумага Куш Lux. Печать оперативная. Гарнитура "Тайме" Усл. печ. л. 1,15. Тираж 100 экз. Заказ 94

Отпечатано с готовых оригинал-макетов в типографии ООО "CMC" Лицензия ПЛД 67-33 от 03.02.97 г.