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

кандидата технических наук
Домарацкий, Ярослав Александрович
город
Санкт-Петербург
год
1999
специальность ВАК РФ
05.13.06
Диссертация по информатике, вычислительной технике и управлению на тему «Автоматизированная система тестирования операционных систем реального времени микропроцессорных управляющих комплексов»

Текст работы Домарацкий, Ярослав Александрович, диссертация по теме Автоматизация и управление технологическими процессами и производствами (по отраслям)

санкт- петербургский государственный

электротехнический университет (лэти)

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

Домарацкий Ярослав Александрович

АВТОМАТИЗИРОВАННАЯ СИСТЕМА ТЕСТИРОВАНИЯ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ МИКРОПРОЦЕССОРНЫХ УПРАВЛЯЮЩИХ КОМПЛЕКСОВ

Специальность 05.13.06 - автоматизированные системы управления

Диссертация на соискание ученой степени кандидата технических наук

Научный руководитель -д.т.н., проф. Никифоров в.в.

Санкт-Петербург - 1999

1. Оглавление

1. ОГЛАВЛЕНИЕ......................................................................................................1

2. ВВЕДЕНИЕ...........................................................................................................7

3. ОСОБЕННОСТИ ТЕСТИРОВАНИЯ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ..........................................................................................11

3.1. Специфика систем управления реального времени...............................11

3.1.1. Среда разработки приложений ОС........................................................12

3.1.2. Особенности ОС.......................................................................................13

3.1.2.1 .Многозадачность.................................................................................13

3.1.2.2.Объем памяти......................................................................................13

3.1.2.3.Быстродействи е...................................................................................14

3.1.2.4.Повышенная надежность...................................................................14

3.1.2.5.Большое число контролируемых объектов......................................15

3.1.2.6.Масштабируемост ь.............................................................................15

3.1.2.7.Многоплатформност ь.........................................................................15

3.1.2.8.Уменыпенное энергопотребление....................................................16

3.1.2.9.3ащита от сбоев...................................................................................16

3.1.3. Характеристика некоторых промышленных ОС..................................16

3.1.4. Требования, предъявляемые к системам управления..........................18

3.2. Классификация тестовых комплектов.....................................................19

3.2.1. Делимость.................................................................................................19

3.2.2. Переход в базовое состояние..................................................................20

3.2.3. Интерпретация результата работы.........................................................20

3.2.4. Контроль исполнения..............................................................................21

3.2.5. Повторяемость..........................................................................................21

3.2.6. Возможность автоматизации..................................................................21

3.2.7. Анализ отличительных признаков.........................................................22

3.3. Способы организации тестовых комплектов..........................................22 -

3.3.1. Неделимый ТК с внешней интерпретацией результата.......................23

3.3.2. Неделимый ТК с внутренней интерпретацией результата..................24

3.3.3. Делимый ТК с контролем исполнения..................................................25

3.3.4. Тестовый комплект, управляемый данными.........................................27

3.4. Виды тестирования.......................................................................................28

3.4.1. Модульное тестирование.........................................................................28

3.4.1.1 .Задача модульного тестирования......................................................28

3.4.1.2.Требования к модульным тестам......................................................29

3.4.1.3.План модульного тестирования........................................................30

3.4.1.4.Методики создания модульных тестов............................................31

3.4.1.4.1.Разработка списка модульных тестов на основе анализа спецификаций..............................................................................................32

3.4.1.4.2. Составление списка модульных тестов на основе анализа кода ..........................................................................................................35

3.4.1.5.Специфика реализации модульных тестов......................................36

3.4.1.6.Способы реализации модульных тестов..........................................37

3.4.2. Интеграционное тестирование...............................................................38

3.4.3. Тестирование работоспособности..........................................................39

3.4.4. Системное тестирование.........................................................................40

3.4.4.1.Поиск дефектов на этапе системного тестирования.......................40

3.4.4.2.Циклы системного тестирования......................................................42

3.4.4.3.Требования, предъявляемые к системным тестам ОС....................43

3.4.4.4,Основные виды системного тестирования ОС................................44

3.5. Выводы по Разделу 2.....................................................................................45

4. СИСТЕМНОЕ ТЕСТИРОВАНИЕ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ..........................................................................................46

4.1. Основные виды системного тестирования..............................................46

4.1.1. Функциональное тестирование...............................................................47

4.1.2. Тестирование версий ядра ОС................................................................48

4.1.3. Сценарное тестирование.........................................................................49

4.1.4. Тестирование производительности........................................................50

4.1.5. Граничное тестирование.........................................................................51

4.1.6. Тестирование защиты системы...............................................................52

4.1.7. Тестирование исходного кода системы.................................................53

4.1.8. Инстоляционное тестирование...............................................................53

4.1.9. Тестирование документации...................................................................54

4.1.10.Выходное тестирование..........................................................................54

4.2. Этапы создания тестового комплекта.....................................................55

4.2.1. Анализ требований...................................................................................55

4.2.2. Создание списка элементарных тестов..................................................55

4.2.3. Разработка описаний и структур элементарных тестов.......................56

4.2.4. Реализация элементарных тестов...........................................................57

4.3. Формальное представление тестовых комплектов...............................57

4.3.1. Виды элементарных тестов.....................................................................58

4.3.2. Структура тестов ОС................................................................................58

4.3.3. Плоские схемы...........................................................................................60

4.3.4. Тестовые комплекты, управляемые данными.......................................63

4.3.5. Интерпретатор плоских схем..................................................................66

4.3.6. Построение тестов производительности на основе ИПС....................68

4.3.7. Формат описания плоских схем.............................................................70

4.4. Выводы по Разделу 3.....................................................................................72

5. АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ ОС...................................................74

5.1. Основные требования к автоматизированному ТК...............................74

5.1.1. Структурированность ТК........................................................................75

5.1.2. Использование распространенных программных и аппаратных ресурсов...............................................................................................................75

5.1.3. Возможность исполнения отдельных групп тестов.............................76

5.1.4. Связь ТК с системой отслеживания дефектов......................................76

5.1.5. Возможность перезапуска целевой аппаратуры...................................77

5.1.6. Возможность перезапуска ТК после прерывания в работе.................77

5.1.7. Возможность приостановки и возобновления исполнения ТК...........77

5.1.8. Возможность адаптации к целевой аппаратуре....................................77

5.1.9. Запуск каждого теста из стандартного начального состояния...........78

5.1.10.Создание подробных отчетов о проведении тестирования................78

5.1.11.Возможность отключения определенных тестов................................78

5.1.12.Легкость модификации существующих тестов и создания новых тестов...................................................................................................................79

5.1.13.Тесты уникальны и зависимости между тестами определены...........79

5.1.14.ТК адаптируем к различным версиям системы...................................79

5.1.15.Возможность включения новых тестов и исправления старых.........80

5.1.1 б.Временные заглушки документированы..............................................80

5.1.17.ТК хорошо документирован...................................................................80

5.2. Автоматизация разработки ТК...................................................................81

5.2.1. Автоматизация этапа анализа требований............................................81

5.2.2. Автоматизация этапа создания списка элементарных тестов.............82

5.2.3. Автоматизация этапа реализации элементарных тестов.....................84

5.2.3.1.Реализация ТК, базирующаяся на использовании интерпретатора плоских схем....................................................................................................84

5.2.3.2.Реализация ТК, базирующаяся на применении средств моделирования................................................................................................86

5.3. Автоматизация процесса проведения тестирования............................87

5.3.1. Автоматизация процесса построения тестовых комплектов..............87

5.3.2. Автоматизация загрузки, запуска и интерпретации работы тестовых комплектов..........................................................................................................89

5.3.3. Автоматизация процесса измерения покрытия кода ОС.....................90

5.3.3.1.Измерение покрытия кода, базирующееся на использовании аппаратных средств........................................................................................90

5.3.3.2.Измерение покрытия кода, основанное на использовании средств профилирования кода.....................................................................................91

5.3.3.3.Измерение покрытия кода, основанное на разработке собственных средств измерения покрытия.........................................................................92

5.4. Выводы по Разделу 4.....................................................................................94

6. ОРГАНИЗАЦИЯ ПРОЦЕССА ТЕСТИРОВАНИЯ ОС...................................95

6.1. Набор требований для разработки процесса тестирования ПИ............95

6.1.1. Модель СММ разработки ПИ.................................................................96

6.1.2. Пятиуровневая модель разработки ПИ..................................................97

6.1.2.1 .Первый уровень...................................................................................97

6.1.2.2.Второй уровень...................................................................................97

6.1.2.3.Третий уровень....................................................................................98

6.1,2.4.Четвертый уровень..............................................................................99

6.1.2.5.Пятый уровень.....................................................................................99

6.1.3. Модель жизненного цикла ПИ.............................................................100

6.1.3.1 .Концептуализация проекта ПИ.......................................................101

6.1.3.2.Планирование и составление требований......................................102

6.1.3.3.Проектирование ПИ..........................................................................103

6.1.3.4.Кодирование и отладка....................................................................103

6.1.3.5.Системное тестирование..................................................................104

6.1.3 ^.Заключительная фаза........................................................................104

6.1.3.7.Сопровождение ПИ..........................................................................104

6.1.4. Стандартный процесс тестирования ПИ.............................................105

6.2. Критерии завершения тестирования ПИ.................................................108

6.2.1. Учет дефектов на всех стадиях разработки ПИ..................................110

6.2.2. Анализ распределения дефектов по уровням серьезности................112

6.2.3. Сравнение распределения дефектов на каждом цикле тестирования 112

6.2.4. Полное покрытие функциональных требований к ПИ......................113

6.2.5. Число циклов системного тестирования.............................................114

6.3. Метрики, характеризующие процесс тестирования ПИ......................114

6.3.1. Число тестов............................................................................................114

6.3.2. Размер тестового комплекта.................................................................115

6.3.3. Степень покрытия требований.............................................................115

6.3.4. Степень покрытия кода.........................................................................115

6.4. Автоматизированная система тестирования ОС реального времени 115

6.4.1. Структура автоматизированной системы тестирования ОС.............116

6.4.2. Описание тестируемой ОС и аппаратно-программного окружения 117

6.4.3. Описание тестового комплекта............................................................118

6.4.4. Средства сборки ТК...............................................................................120

6.4.5. Исполнение и интерпретация результатов работы ТК......................122

6.5. Выводы по Разделу 5...................................................................................123

7. ЗАКЛЮЧЕНИЕ.................................................................................................125

8. ЛИТЕРАТУРА..................................................................................................127

2. Введение

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

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

Разделяют два типа затрат на системное тестирование:

• затраты на создание тестового комплекта (составление плана и процедуры системного тестирования, разработка и отладка отдельных тестов и тестового комплекта в целом);

• затраты на исполнение собственно тестов, входящих в состав тестового комплекта (исполнение тестов, регистрация дефектов и составление отчетов о системном тестировании).

Наибольшая трудоемкость в системном тестировании приходится на создание тестового комплекта (ТК), поскольку трудоемкость исполнения тестов можно снизить во много раз за счет создания

высокоавтоматизированного тестового комплекта. По опыту работы Санкт-Петербургского института информатики и автоматизации РАН (СПИИРАН) трудоемкость системного тестирования составляет 29% от трудоемкости разработки ПИ в целом, а трудоемкость создания новых тестовых комплектов составляет до 70% от трудоемкости системного тестирования. Поэтому снижение затрат на разработку тестового комплекта для системного тестирования является актуальной задачей.

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

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

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

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

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

Научная новизна состоит в следующем:

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

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

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

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

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

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

На ПЭВМ типа IBM РС486 в среде Windows NT осуществлена программная реализация высокоавтома