Смекни!
smekni.com

Основные определения теории надежности (стр. 9 из 9)

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

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

ТЕСТИРОВАНИЕ ВЕТВЕЙ.

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

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

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

1) привел бы к исполнению цикла с возвратом

2) проходил бы цикл без возврата.

ВЕРТИФИКАЦИЯ ПРОГРАММ:

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

СИМВОЛИЧЕСКОЕ ТЕСТИРОВАНИЕ

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

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

Для различных путей существуют различные входы и выходы.

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

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

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

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

«+» обратной: не требуется память для запоминания символических записей переменных.

«+» прямой: имеется возможность раннего обнаружения несуществующих путей с противоречивыми ограничениями на входных данных.

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

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

Второе затруднение связано с наличием в программе модулей. Данная проблема преодолевается символическим исполнением модулей.

Третья проблема: работа с массивами.

Генерирование структурных тестов.

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

Граф программы (граф управления) – это структурная модель программы, которая показывает связь м/ ее элементами. Вершины – операторы разветвления и объединения; дуги – операторы обработки и передачи данных.

Граф представляется в виде упакованной матрицы смежности (УМС) А.

А = {aij}

с v вершинами – есть матрица v

l, l – max степень выхода i-ой вершины

dВХ(vi) – степень входа и dВЫХ(vi) – степень выхода некоторой вершины графа означает соответственно количество входящих и выходящих из вершины дуг.

Каждая строка i УМС заполняется в произвольном порядке номерами вершин, которые являются смежными с вершиной i.

Представление графов в виде УМС имеет следующие преимущества:

1) для больших графов число столбцов УМС значительно <, чем число столбцов соответствующей матрицы смежности.

2) относительно просто моделируется процесс движения по графу для построения путей.

3) снижается время обработки графов.

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

Для построения min покрытия граф разбивается на ДД пути с использованием УМС исходного графа.

Множество вершин, у которых степень выхода dВЫХ(vi)>1, вх и вых вершины обозначаются как Д вершины. Тогда путь ДД – это простой путь м/ двумя Д вершинами, такой, что в его пределах нет Д вершин.

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

Алгоритм построения min покрытия графа состоит из следующих этапов:

1) просматриваемая i-ая вершина фиксируется, определяется смежная вершина j-ая, номер которой является максимальным среди номеров смежных вершин.

i

[1, N-1] N – количество вершин графа.

2) просматривается дуга vivj. Если количество выходов dВЫХ(vi)>1, а dВХ(vj)>1, то дуга g(vi,vj) исключается.

3) Еслт количество dВЫХ(vi)=1, dВХ(vj)>1 и если на пути не имеется дуги типа g, то исключается рассматриваемая дуга типа h (дуга vivj).

4) Подставляется i=j и повторяются этапы 1-3, пока j не станет = номеру конечной или выходной вершины. Пути фиксируются в виде последовательностей значений j.

5) Повторяя-ся 1-4 до тех пор, пока в построенном пути не останется дуг типа g и h.

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

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

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

Функциональные методы тестирования программ.

Оглавление

Законы распределения случайной величины (СВ) и их события.1

Законы распределения, используемые в теории надежности.2

Показатели готовности аппаратуры.. 3

Прогнозирование показателей надежности. 3

Расчеты показателей надежности систем с последовательной структурой. 3

Расчеты показателей надежности систем с параллельной структурой. 3

Показатели надежности систем с комбинированной структурой. 3

Определение параметров готовности аппаратуры.. 3

Надежность резервных вычислительных систем. Резервирование в ЭВМ и ВС.. 3

Резервирование на уровне ЭВМ... 3

Резервирование на уровне устройств. 3

Резервирование на уровне кодов. 3

Резервирование в специализированных и управляющих ЭВМ... 3

Описание резервных систем.. 3

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

Определение вероятности безотказной работы.. 3

Определение средней наработки на отказ. 3

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

Надежность ВС со сложной структурой резервирования. 3

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

Мажоритарное резервирование. 3

Расчет надежности ВС-ем и надежность нерезервированных восстанавливаемых систем.. 3

Приближенный метод расчета надежности ВС.. 3

Количественные характеристики надежности при постепенных отказах. 3

Параметры надежности при хранении систем.. 3

Контроль в ЭВМ... 3

Надежность системы с учетом влияния контролирующих устройств. 3

Классификация ошибок программирования. 3

Способы обеспечения и

надежности программ.. 3

Модели надежности ПО.. 3

Модель Шумана.3

Марковская модель.3

Модель Елинского-Моранды.3

Модель Шика-Волвертона.3

Метод введения структурной избыточности в программе. 3

Метод контрольных функций. 3

Структурные методы тестирования программ.. 3

Генерирование структурных тестов.3