Назад
281
модули.
Затем проводится тестирование интерфейсов, т.е. проверка правильности
вызовов модулей и конкретности передачи экспортируемых и импортируемых
значений параметров. Тестирование интерфейсов осуществляется для модулей
верхних уровней, вместо заглушек для них используются реальные вызываемые
модули. Многие тесты, которые использовались при автономном тестировании,
могут использоваться при тестировании интерфейсов. Новые тесты должны
проверять различные ситуации передачи параметров для границ областей,
имитировать ошибочные ситуации и т.д.
Тестирование монолитных (объединенных модулей) программ является более
трудоемким. Оно требует разработки модулей, как драйверов, так и заглушек.
Основным недостатком является то, что ошибки в интерфейсах между модулями
обнаруживаются позднее, чем при пошаговом тестировании, по которому
последствия более серьезны, а стоимость их устранения выше.
После отладки обнаруженных в ходе тестирования ошибок ПС должна пройти
процесс повторного тестирования для обнаружения ошибок, появившихся после
выполнения корректирующих воздействий.
Завершающими технологическими процессами тестирования объекта являются
тестирование функций и комплексные испытания. Оба они преследуют цель
определить соответствие полученной программы исходным требованиям и
внешним спецификациям. Объектом при тестировании функций выступают
отдельные функции или их совокупности, а при комплексных испытаниях– в
соответствии с ТЗ.
Основными критериями завершенности тестирования являются:
экономические; вероятностные и статистические; структурные (критерии полноты
тестирования).
Выбор определенного критерия зависит от классов ПС, реализуемых на ТЛ, от
методов тестирования, а также от стадии тестирования. Структурные критерии
полноты тестирования наиболее распространены на практике и применяются на
разных стадиях тестирования.
Заключение о полноте тестирования производится на основании плана
тестирования, таблиц тестов и определяет численную оценку полноты
тестирования по формуле
Р
Т
n
/ Т,
где Т общее количество тестовых ситуаций; Т
n
количество проверенных
ситуаций, соответствующих ожидаемым.
При приемке отлаженных программных модулей, как правило, применяется
статистический критерий, основанный на метриках Холстеда [202]: п словарь,
включающий К
1
число операторов и. К
2
операндов; N – длина модуля; V – объем
модуля (программы).
Число ошибок В, оставшихся после отладки в программе, предположительно
можно вычислить по формуле
B =
3000
V
или В =
3000
log
2
nN
Вероятностные критерии завершенности тестирования применяются при
испытаниях ПС для определения надежности и устойчивости функционирования
282
ПС. Применение существующих моделей надежности позволит достаточно точно
прогнозировать надежность ПС в эксплуатации.
Экономические критерии устанавливают соответствие между необходимыми
затратами на тестирование и реальными сроками его проведения.
Методологическая поддержка технологии сборки. Эффективность
применения ТЛ зависит от степени их инструктивности. Последние определяются
ТД общего и частного характера, присущими конкретному процессу. В них
определены регламентация и порядок применения инструментальных средств, форм
представления результатов выполнения процессов и документирования продукта, а
также управления работами по получению ПП высокого качества.
Документы поддерживают единый подход к созданию ПС по ТЛ с
использованием стандартных форм документов для фиксации проектных решений на
всех процессах разработки. Для них принят стандарт в соответствии с требованиями
ГОСТ ЕСКД. Дадим им краткую характеристику применительно к СОД.
1. ТД «Язык проектирования» представляет методику применения данного языка
(типа PDL) для описания структур программ, способов улучшения качества
проектирования и единообразного представления проектных решений; составления
документации на ПС; применения методов контроля разработки ПС и т. д.
2. ТД «Методика применения ТМ» определяет способы использования
инструментальных средств: различных СУБД, программ ввода, контроля и
обработки данных. Эти документы способствуют освоению и практическому
использованию методов и средств выполнения соответствующих ТО, ТП и ТЛ.
ТД «Организация и контроль разработки ПС» определяет задачи и функции
группы контроля качества ПС по проведению контроля хода разработки. Содержит
описание видов и методов контроля, порядок формирования номенклатуры
показателей качества в классе реализуемой ПрО и методические указания по
систематической, экспертной или количественной оценке показателей качества,
достигнутых в ходе разработки ПС на процессах ТЛ. Сюда входят документы
планированию и проверки сроков разработки ПП в соответствии с планом-графиком
работ. Описаны принципы организации коллектива разработчиков для создания ПС
по ТЛ исходя из оргструктуры, заложенной в каждой ТЛ.
4. ТД «Методика тестирования ПС» содержит рекомендации по организации и
проведению тестирования на разных процессах процесса разработки ПС (автономное
и комплексное тестирование), определяет порядок составления и содержание плана
тестирования, фиксации обнаруженных ошибок в журналах регистрации ошибок и
методы оценки полноты тестирования по разным критериям. Методика нацелена на
тщательное планирование процесса тестирования, проведения его оценки и сбора
данных об обнаруженных ошибках.
1. ТД «Формы проектно-технологических документов» представлен набором
модулей табличного вида. Дано их назначение и порядок заполнения при
выполнении ТО. Приведены комплекты ПТД, рекомендуемые для разных видов
объектов (компонент, модуль) и поддерживающие разные процессы
(программирование, тестирование на основе таблиц тестов и сбор статистики об
ошибках в журналах регистрации ошибок и т. д.).
2. ТД «Порядок описания прикладных модулей. Стандарт модулей» предлагает
стандартную структуру прикладного модуля, удобную для разработки и составления
документации. В классе ППО СОД определены типы модульных элементов:
283
функциональные заготовки, прикладные и системные модули, КПИ. Для них
предложена рекомендуемая форма представления внешних спецификаций и текстов
модулей.
3. ТД «Описание текста модуля» определяет оформление текста модуля в любом
ЯП в унифицированном виде.
Такой набор технологических методик и инструкций может быть использован
при регламентации работ и в другом классе систем. Они могут уточняться и допол-
няться исходя из условий разработки и используемых инструментальных средств.
9.6. АНАЛИЗ МОДЕЛЕЙ НАДЕЖНОСТИ ДЛЯ ОЦЕНКИ ПРОГРАММНЫХ
СИСТЕМ
На оценку надежности ПС, заключающуюся в определении вероятности
безотказной работы ПС в заданных условиях в течение предопределенного периода
времени, существенное влияние оказывают два фактора:
программные методы и средства технологии программирования, применяемые
на процессах разработки и способствующие достижению требуемой надежности;
тестирование и проверка функционирования созданного ПС со сбором данных о
результатах обнаружения ошибок и интенсивности отказов в интервалах времени
функционирования.
Методы оценки надежности базируются на аналогичных методах и в теории
надежности технических средств и отличаются тем, что ошибки в ПС устраняются,
улучшая их качество. Отказы в технических средствах, как правило, являются
следствием износа и меньше всего зависят от ошибок проектирования (аппаратные
средства логически проще, чем программные). Отказы при функционировании
технических средств могут привести к непригодности или физическому износу
этих средств.
Исследования программных средств на надежность [2, 6, 80, 81, 102, 104, 150,
152, 154, 162, 235, 237-245, 251 и др.] интенсивно проводились по основным
направлениям создания трех типов программных систем.
К первому типу систем относятся программы решения инженерных и научно-
технических задач. Они характеризуются неполным жизненным циклом,
небольшим объемом и при эксплуатации не требуют всех ресурсов ЭВМ, носят
эпизодический и кратковременный характер.
Второй тип представляет собой класс программных систем для ин-
формационно-справочных и автоматизированных систем обработки информации,
функционирующих вне реального времени.
К третьему типу относятся программы и комплексы, входящие в контур
управления и функционирующие в реальном времени, используя все ресурсы ЭВМ
(память, быстродействие и др.).
В соответствии с классификацией Хетча [251] в классе этих типов систем
сформировались три типа моделей надежности (рис. 9.6).
284
Модели надежности ПС
Прогнозиующие Измерительные Оценочные
Модель
Холстеда
Модель
Мотли --
Брукса
Модели без
пдсчета
ошибок
Модели с
подсчетом
ошибок
Модели Мусы
с выбором
области
данных
Модели
подсева
ошибок
Рис. 9.6. Типы моделей надежности ПС
9.6.1. ТИПИЗАЦИЯ МОДЕЛЕЙ НАДЕЖНОСТИ ДЛЯ КЛАССА
ПРОГРАММНЫХ СИСТЕМ
Прогнозирование надежности это утверждение, основанное на количественных
характеристиках создаваемых на ТП программ (длина программ, объем, число
переменных и др.). Модель надежности Холстеда применяется для
прогнозирования надежности на ранних процессах разработки
(программирование и сборка) и рассмотрена ранее.
Оценочные модели надежности основаны на результатах тестирования,
получаемых в тестовой среде при прогонах ПС на тестах и используемых при
определении вероятности отказов ПС в реальной операционной среде
функционирования. Данные модели исходят из частоты проявления и устранения
причины, вызвавшей отказ ПС, поэтому их называют моделями интенсивности
(сходство с моделями оценки надежности технических средств).
Измерительные модели предназначены для измерения надежности
программного обеспечения, работающего с заданной внешней средой и имеющие
следующие ограничения:
программное обеспечение не модифицируется во время периода измерений
свойств надежности;
– обнаруженные ошибки не исправляются;
измерение надежности проводится для зафиксированной конфигурации
программного обеспечения.
Типичным примером таких моделей является модель Нельсона и Рамамурти–
Бастани и др.
Модель оценки надежности Нельсона основывается на выполнении k–прогонов
программы при тестировании и позволяет определить надежность
R (k) = exp [– )(tt
j
],
где t
j
время выполнения j–прогона,
(t) = [ln (1– q
i
)
j] и при q
i
1 она
интерпретируется как интенсивность отказов.
В процессе испытаний программы на тестовых n
l
прогонах оценка надежности
вычисляется по формуле
R (l) = 1 n
l
/ k, где k – число прогонов программы.
Таким образом, данная модель рассматривает полученные количественные
данные о проведенных прогонах.
Оценочные модели основываются на серии тестовых прогонов и проводятся на
285
процессах тестирования ПC. В тестовой среде определяется вероятность отказа
программы при ее выполнении или тестировании.
Эти типы моделей могут применяться на процессах ЖЦ. Кроме того,
результаты прогнозирующих моделей могут использоваться как входные данные
для оценочной модели. Имеются модели (например, модель Мусы), которые
можно рассматривать как оценочную и в тоже время, как измерительную модель
[39, 233, 235].
Другой вид классификации моделей предложил Гоэл [32, 33, 219], согласно
которой модели надежности базируются на отказах и разбиваются на четыре
класса моделей:
– без подсчета ошибок,
– с подсчетом отказов,
– с подсевом ошибок,
– модели с выбором областей входных значений.
Модели без подсчета ошибок основаны на измерении интервала времени
между отказами и позволяют спрогнозировать количество ошибок, оставшихся в
программе. После каждого отказа оценивается надежность и определяется среднее
время до следующего отказа. К такой модели относится модель Джелински и
Моранды, Шика Вулвертона и Литвуда–Вералла [238, 240].
Модели с подсчетом отказов базируются на количестве ошибок,
обнаруженных на заданных интервалах времени. Возникновение отказов в
зависимости от времени является стохастическим процессом с непрерывной
интенсивностью, а количество отказов является случайной величиной.
Обнаруженные ошибки устраняются и поэтому количество ошибок в единицу
времени уменьшается. К этому классу моделей относится модель Шумана, Шика–
Вулвертона, Пуассоновская модель и др.[246, 249, 251].
Модели с подсевом ошибок основаны на количестве устраненных ошибок и
подсеве внесенном в программу искусственных ошибок, тип и количество
которых заранее известны. Затем строиться соотношение числа оставшихся
прогнозируемых ошибок к числу искусственных ошибок, которое сравнивается с
соотношением числа обнаруженных действительных ошибок к числу
обнаруженных искусственных ошибок. Результат сравнения используется для
оценки надежности и качества программы. При внесении изменений в программу
проводится повторное тестирование и оценка надежности. Этот подход к
организации тестирования отличается громоздкостью и редко используется из–за
дополнительного объема работ, связанных с подбором, выполнением и
устранением искусственных ошибок.
Модели с выбором области входных значений основываются на генерации
множества тестовых выборок из входного распределения и оценка надежности,
проводится по полученным отказам на основе тестовых выборок из входной
области. К этому типу моделей относится модель Нельсона и др.
Таким образом, классификация моделей роста надежности относительно
процесса выявления отказов, фактически разделена на две группы:
модели, рассматривающие количество отказов как Марковский процесс [24];
модели, которые рассматривают интенсивность отказов как Пуассоновский
процесс.
Фактор распределения интенсивности отказов разделяет модели на
286
экспоненциальные, логарифмические, геометрические, байесовские и др.
Таким образом, классификация моделей роста надежности относительно
процесса выявления отказов, фактически разделяет их на две группы:
– модели, которые рассматриваются с позиции марковского процесса;
– модели, в которых интенсивность появления отказов рассматривается с точки
зрения пуассоновского процесса.
Фактор распределения интенсивности отказов разделяет модели на
экспоненциальные, логарифмические, геометрические, байесовские и др.
Марковский процесс характеризуется дискретным временем и конечным
множеством состояний. Временной параметр пробегает неотрицательные числовые
значения, а процесс епочка) определяется набором вероятностей перехода p
ij
(n),
т.е. вероятностью на n– шаге перейти из состояния i в состояние j. Процесс
называется однородным, если он не зависит от n.
В моделях, базирующихся на процессе Маркова, предполагается, что
количество дефектов, обнаруженных в ПС, в любой момент времени зависит от
поведения системы и представляется в виде стационарной цепи Маркова [24, 133,
157]. При этом количество дефектов конечное, но является неизвестной величиной,
которая задается для модели в виде константы. Интенсивность отказов в ПС или
скорость прохода по цепи зависит лишь от количества дефектов, которые
остались в ПС.
9.6.2. МОДЕЛИ НАДЕЖНОСТИ МАРКОВСКОГО ТИПА
К этой группе моделей относятся: Джелинського–Моранды, Шика–Вулвертона,
Шантикумера [125, 133, 140].
Ниже рассматриваются некоторые модели надежности, которые
обеспечивают рост надежности ПО (называются моделями роста надежности
[162]), находят широкое применение на процессе тестирования и описывают
процесс обнаружения отказов при следующих основных предположениях:
– все ошибки в ПС не зависят друг от друга с точки зрения локализации
отказов;
интенсивность отказов пропорциональна текущему числу ошибок в ПС
бывает при тестировании программного обеспечения);
– вероятность локализации отказов остается постоянной;
– локализованные ошибки устраняются до того, как тестирование будет
продолжено;
– при устранении ошибок новые ошибки не вносятся.
Приведем основные обозначения используемых величин при описании
моделей роста надежности:
m – число обнаруженных отказов ПО за время тестирования;
Х
i
– интервалы времени между отказами i–1 и i, при i =1,..., m;
S
i
моменты времени отказов (длительность тестирования до i отказа), S
i
=
X
k
при i = 1,..., m;
T продолжительность тестирования программного обеспечения (время, для
которого определяется надежность);
N – оценка числа ошибок в ПО в начале тестирования;
M – оценка числа прогнозированных ошибок;
– оценка среднего времени до следующего отказа;
287
E (T
p
) – оценка среднего времени до завершения тестирования;
Var (T
p
) – оценка дисперсии;
R ( t) – функция надежности ПО;
Zi ( t) – функция риска в момент времени t между i–1 и i отказами;
скоэффициент пропорциональности;
b – частота обнаружения ошибок.
Далее рассматриваются несколько моделей роста надежности, основанные на
этих предположениях и использовании результатов тестирования программ в
части отказов, времени между ними и др.
Модель Джелински–Моранды. В этой модели используются исходные данные,
приведенные выше, а также:
m – число обнаруженных отказов за время тестирования,
X
i
– интервалы времени между отказами,
Т – продолжительность тестирования.
Функция риска Z
i
(t) в момент времени t расположена между i–1 и i имеет
вид:
Z
i
(t) = c (N – n
i–1
) ,
где i = 1 ,.., m; T
i–1
< t < T
i
.
Эта функция считается ступенчатой кусочно–постоянной функцией с
постоянным коэффициентом пропорциональности и величиной ступени – с.
Оценка параметров c и N производится с помощью системы уравнений:
0)/(1
11
1
m
i
i
m
i
i
cXnN
n/c - Nn/c –
m
i
NT
1
1
1
i
m
i
i
nX = 0
При этом суммарное время тестирования вычисляется так: Т =
m
i
i
X
1
Выходные показатели для оценки надежности относительно указанного
времени T включают:
– число оставшихся ошибок M
т
= N–m;
– среднее время до текущего отказа
т
= 1/( N–m) c;
– среднее время до завершения тестирования и его дисперсия
E (T
p
) =
nN
i
ic
1
)/1( ,
Var (T
p
) =
nN
i
ic
1
2
)/(1 ,
При этом функция надежности вычисляется по формуле:
Rт ( t) = exp (– (N– m) ct),
при t>0 и числе ошибок, найденных и исправленных на каждом интервале
тестирования, равным единице.
Модель Шика–Волвертона. Модель используется тогда, когда интенсивность
отказов пропорциональна не только текущему числу ошибок, но и времени,
прошедшему с момента последнего отказа. Исходные данные для этой модели
аналогичны выше рассмотренной модели Джелински–Моранды:
288
m – число обнаруженных отказов за время тестирования,
X
i
– интервалы времени между отказами,
Т – продолжительность тестирования.
Функции риска Z
i
(t) в момент времени между i–1 и i–m отказами
определяются следующим образом:
Z
i
( t) = c (N – n
i –1
),
где i = 1 ,..., m; T
i–1
< t < T
i ,
Т =
m
i
i
X
1
.
Эта функция является линейной внутри каждого интервала времени между
отказами, возрастает с меньшим углом наклона.
Оценка c и N вычисляется из системы уравнений:
1
1
/1
i
m
i
nN - 2/
1
2
m
i
i
X = 0
n/c - 2/)(
1
2
1
m
i
ii
XnN = 0
К выходным показателям надежности относительно продолжительности T
относятся:
– число оставшихся ошибок M
т
= N–m;
– среднее время до следующего отказа MT
т
= (
/ (2 ( N–m) c) )
1/2
;
– среднее время до завершения тестирования и его дисперсия
E (T
p
) =
2/1
1
)2/((
mN
i
ic
,
Var (T
p
) = )/)2/2((
1
mN
i
ic
,
Функция надежности вычисляется по формуле:
R
Т
( t) = exp (–(N–m) ct
2
/2) , t
0.
9.6.3. МОДЕЛИ НАДЕЖНОСТИ ПУАССОНОВСКОГО ТИПА
Эти модели базируются на выявлении отказов и моделируется неоднородным
процессом, который задает {M(t), t
0} неоднородный пуассоновский процесс с
функцией интенсивности (t), что соответствует общему количеству отказов ПС за
время его использования t.
Модель Гоело–Окумото. В основе этой модели лежит описание процесса
обнаружения ошибок с помощью неоднородного Пуассоновского процесса, ее
можно рассматривать как модель экспоненциального роста. В этой модели
интенсивность отказов также зависит от времени. Кроме того, в ней количество
выявленных ошибок трактуется как случайная величина, значение которой
зависит от теста и других условных факторов.
Исходные данные этой модели:
m – число обнаруженных отказов за время тестирования,
X
i
– интервалы времени между отказами,
Т – продолжительность тестирования.
289
Функция среднего числа отказов, обнаруженных к моменту t имеет вид:
m ( t) = N (1 – e
–bt
) ,
где b интенсивность обнаружения отказов и показатель роста надежности q ( t) =
b.
Функция интенсивности
( t) в зависимости от времени работы до отказа
равна
( t) = Nb
–bt
, t
0.
Оценка b и N получаются из решения уравнений:
m/N –1 + exp (–bT) = 0
m/b – )exp(
1
bTNt
m
m
i
i
= 0
Выходные показатели надежности относительно времени T определяют:
1) среднее число ошибок, которые были обнаружены в интервале [ 0, T]
E (N
T
) = N exp (–bT) ,
2) функцию надежности
R
T
( t) = exp (–N (e
–bt
– e
–bt (t+т)
)) , t
0.
В этой модели обнаружение ошибки, трактуется как случайная величина,
значение которой зависит от теста и операционной среды. В других моделях
количество обнаруженных ошибок рассматривается как константа.
В моделях роста надежности исходной информацией для расчета надежности
являются интервалы времени между отказами тестируемой программы, число
отказов и время, для которого определяется надежность программы при отказе. На
основании этой информации по моделям определяются следующие показатели
надежности:
– вероятность безотказной работы;
– среднее время до следующего отказа;
– число необнаруженных отказов (ошибок);
– среднее время для дополнительного тестирования программы.
Модель анализа результатов прогона тестов использует в своих расчетах общее
число экспериментов тестирования и число отказов. Эта модель определяет
только вероятность безотказной работы программы и выбрана для случаев, когда
предыдущие модели нельзя использовать (мало данных, некорректность
вычислений). Формула определения вероятности безотказной работы по числу
проведенных экспериментов имеет вид: P = 1 – Neх /N ,
где Neх – число ошибочных экспериментов, N число проведенных экспериментов
для проверки работы ПС.
Таким образом, можно сделать вывод о том, что модели надежности ПС
основаны на времени функционирования и/или количестве отказов (ошибок),
полученных в программах в процессе их тестирования или эксплуатации. Модели
надежности учитывает случайный Марковский и пуассоновский характер
соответственно процессов обнаружения ошибок в программах, а также характер и
интенсивность отказов.
9.6.4. ПРАКТИКА ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММ
Оценочные модели охватывают более широкий класс программных систем и
основаны на истории отказов, зафиксированной в картах регистрации ошибок (см.
290
табл. 9.7 - 9.9). В картах отмечаются интервалы времени между ошибками либо
число ошибок на заданных интервалах.
В процессе эксплуатации оценочные методы надежности применительно к
рассматриваемому классу ППО СОД обеспечивают прогнозирование поведения
программ. Они используют результаты тестирования и историю отказов, фик-
сированных в журналах регистрации ошибок G
1
G
3
. К основным используемым
на ТЛ моделям оценки надежности ППО относятся модели Мусы и S-образная
[102, 104, 125, 133, 140].
Оценочная модель Мусы основана на следующих положениях:
тексты адекватно представляют среду функционирования;
происходящие отказы учитываются (оценивается их количество);
интервалы между отказами независимы;
время между отказами распределено по экспоненциальному закону;
интенсивность отказов пропорциональна числу ошибок;
скорость исправления ошибок (относительно времени функционирования)
пропорциональна интенсивности их появления.
На основе этих ошибок устанавливаются:
1) зависимость среднего числа
отказов от времени функционирова-
ния τ
m=M
0
[1-ехр (
00
TM
c
)], (9.11)
где М
0
общее число ошибок; Т
0
начальная наработка на отказ; с–
коэффициент сжатия тестов (равен
времени испытаний).
На графике зависимость выглядит
следующим образом:
2) зависимость текущей средней
наработки на отказ Т от времени
функционирования τ
T = T
0
ехр (
00
TM
c
), (9.12)
где М
0
, Т
0
, с те же величины,
зависящие от наработки на отказ.
На графике эта зависимость выглядит
так:
Из уравнений (9.11) и (9.12) следует
T =
mM
MT
0
00
T
0
(9.13)
График этой зависимости представлен областью 1, для которой М
1
= 1, 2, ...–
номера наблюдений, a τ
1,
τ
2
τ
M
1
- время между отказами. Область 2 соответствует
достижению средней наработки Т
р
на отказ за время Δτ.