Лекции о надёжности (1088462), страница 3
Текст из файла (страница 3)
тестировании (например, с помощью модели Шумана). Надежность R для оперативного периода τ выражается равенством

В литературе указывается, что практическое использование рассматриваемой модели требует громоздких вычислений и делает необходимым наличие ее программной поддержки.
Статические модели надежности
Статические модели принципиально отличаются от динамических прежде всего тем, что в них не учитывается время появления ошибок в процессе тестирования. Этот тип моделей учитывает только статистические характеристики появления ошибок.
Модель Миллса. Использование этой модели предполагает внесение в программу некоторого количества известных ошибок. Они вносятся случайным образом и фиксируются в протоколе искусственных ошибок. Специалист, проводящий тестирование, не знает ни количества, ни характера внесенных ошибок до момента оценки показателей надежности по модели Миллса. Предполагается, что все ошибки (как имеющиеся в исследуемой программе, так и искусственно внесенные) имеют равную вероятность быть найденными в процессе тестирования. Тестируя программу в течение некоторого времени, собирают статистику об ошибках. В момент оценки надежности по протоколу искусственных ошибок все ошибки делятся на ошибки собственно программы и искусственные.
С помощью соотношения (формулы Миллса)
можно оценить первоначальное число ошибок в программе (N). Здесь S- количество искусственно внесенных ошибок, η — число найденных собственных ошибок, V— число обнаруженных к моменту оценки искусственных ошибок.
Например, если в программу внесено дополнительно 50 ошибок и к некоторому моменту тестирования обнаружено 25 собственных и 5 внесенных, то по формуле Миллса делается предположение, что первоначально в программе было 250 ошибок.
Вторая часть модели связана с проверкой гипотезы об оценке первоначального числа ошибок Nb программе. Допустим, что в программе имеется Л" собственных ошибок. Внесем в нее еще S ошибок.
Положим, что в процессе тестирования были обнаружены все S внесенных и л собственных ошибок программы. Тогда по формуле Миллса получим, что первоначально в программе было N= n ошибок. Вероятность, с которой можно высказать такое предположение, рассчитывается с помощью следующих соотношений:
Величина С является мерой «доверия» к модели и показывает вероятность того, насколько правильно найдено значение N. Эти два связанных между собой по смыслу соотношения образуют полезную модель ошибок: первое предсказывает возможное число первоначально имевшихся в программе ошибок, а второе используется для установления доверительного уровня прогноза. Однако приведенная выше формула для расчета С не может быть использована, если не обнаружены все внесенные ошибки.
где числитель и знаменатель при n < К являются биноминальными коэффициентами вида
Если оценка надежности производится до момента обнаружения всех внесенных ошибок (S), величина С рассчитывается по модифицированной формуле:
В реальной практике модель Миллса можно использовать для оценки N после каждой найденной ошибки. Предлагается во время всего периода тестирования отвечать на графике число найденных ошибок и текущие значения N
К достоинствам модели относят простоту применяемого математического аппарата, наглядность и возможность использования в процессе тестирования.
Самым существенным недостатком считают необходимость внесения искусственных ошибок (этот процесс плохо формализуем) и достаточно вольное допущение величины К, которое основывается исключительно на интуиции и опыте испытателя, проводящего оценку, т. е. допускает большое влияние субъективного фактора.
Модель Липова. Липов модифицировал модель Миллса, рассмотрев вероятность обнаружения ошибки при использовании различного числа тестов. Если сделать то же предположение, что и в модели Миллса, т. е. что собственные и внесенные ошибки имеют равную вероятность быть найденными, то вероятность обнаружения n собственных и Vвнесенных ошибок может быть определена с помощью соотношения
где т — количество тестов, используемых при тестировании; q— вероятность обнаружения ошибки в каждом из т тестов, рассчитанная по формуле; S- общее количество внесенных ошибок; N— количество собственных ошибок, имеющихся в программе до начала тестирования.
Оценки максимального правдоподобия (наиболее вероятное значение) для N осуществляются с помощью соотношений
Для использования модели Липова должны выполняться следующие условия:
Модель Липова дополняет модель Миллса, позволяя оценить вероятность обнаружения определенного количества ошибок к моменту оценки.
Модель Коркорэна относится к статическим моделям надежности ПО, так как в ней не используются параметры времени тестирования, а учитывается только результат N испытаний, в которых выявлено Ni ошибок i-ro типа.
Применение модели предполагает знание следующих ее показателей:
-
модель содержит изменяющуюся вероятность отказов для различных источников ошибок и соответственно разную вероятность их исправления;
-
в модели используются такие параметры, как результат Nиспытаний, в которых наблюдается Ni ошибок г-го типа;
-
обнаруженные в ходе ^испытаний ошибки г-го типа появляются с вероятностью аi
Показатель уровня надежности R вычисляют по формуле
где N0 — число безотказных (или безуспешных) испытаний, выполненных в серии из ^испытаний; к— известное число типов ошибок; Y— вероятность появления ошибок: при N>0 Y. = аi при N = 0 У>0.
Отметим, что в данной модели вероятность а. оценивается на основании априорной информации или данных предшествующего периода функционирования однотипных программных средств.
Модель Нельсона создана в аэрокосмической компании США TRW. При расчете надежности программно-информационного обеспечения учитывается вероятность выбора определенного тестового набора для очередного выполнения программы.
Для описания модели вводятся следующие обозначения.
Совокупность действий, включающая ввод Еi выполнение программы и получение результата F'(E), называется прогоном программы. При этом значения входных переменных, образующих Ei не должны одновременно подаваться на вход программ. Таким образом, вероятность (P) того, что прогон программы приведет к обнаружению дефекта, равна вероятности того, что набор данных Ei используемый в прогоне, принадлежит множеству Ei.
Если обозначить через пе число различных наборов входных данных, содержащихся в Е. то
есть вероятность того, что прогон программы на наборе входных данных Ei случайно выбранном из E среди равновероятных, закончится обнаружением дефекта.
Однако в процессе функционирования программы выбор входных данных из E обычно осуществляется не с одинаковыми априорными вероятностями, а диктуется определенными условиями работы. Эти условия характеризуются некоторым распределением вероятностей (р) того, каким будет выбран определенный набор входных данных Ei
Распределение P может быть найдено через р. с помощью величины у., которая принимает значение О, если прогон программы на наборе £ заканчивается получением приемлемого результата, и значение 1, если этот прогон заканчивается обнаружением дефекта. Поэтому
есть вероятность того, что прогон программы на наборе входных данных Ei, выбранных случайно с распределением вероятностей рi, закончится обнаружением дефекта. При этом
есть вероятность того, что прогон программы на наборе входных данных Ei выбранных случайно с распределением вероятностей рi, приведет к получению приемлемого результата.
Так как R- вероятность того, что единичный прогон программы не закончится отказом на наборе входных данных, выбранных в соответствии с распределением рi то вероятность успешного выполнения n прогонов этой программы при независимом для каждого прогона выборе входных данных в соответствии с распределением Рбу-дет равна
Таким образом, можно дать следующее математическое определение надежности программы: надежность программы - это вероятность безотказного выполнения n прогонов программы. Поэтому прогон является единичным испытанием программы.
На практике выбор входных данных для каждого прогона нельзя считать независимым. Исключение составляют лишь такие последовательности прогонов, которые определяются возрастающими значениями некоторой входной переменной или некоторым порядком установленных процедур, как в случае программ, работающих в реальном масштабе времени.
С учетом введенного определения функциональный разрез должен быть переопределен в терминах вероятностей р выбора £ в качестве входных данных при j-м прогоне из некоторой последовательности прогонов. Тогда вероятность того, что j-й прогон закончится отказом, может быть записана в виде
Надежность R(n) программы равна вероятности того, что в последовательности из η прогонов ни один из них не закончится отказом:
Эта формула может быть представлена в виде
Некоторые свойства функции R(n) могут стать более явными при следующих допущениях:
для Рj << 1
если Рj = P для вcex j, то
С помощью соответствующих замен переменных и подстановок можно выразить функцию R(п) через время функционирования tОбозначим через Δt время выполнения j-гo прогона, а через ΣΔti - суммарное время выполнения первых jпрогонов программы. Введем h(t)\
В случае Рj << 1 функция h(tj) может быть интерпретирована как функция интенсивности отказов, которая, будучи умноженной на Δt дает условную вероятность появления отказов в интервале (tj, tj+ tj) при отсутствии отказов до момента tj
Тогда
На практике вероятность выбора очередного набора данных для прогона (Pi) определяется путем разбиения всего множества значений входных данных на подмножества и нахождения вероятностей того, что выбранный для очередного прогона набор данных будет принадлежать конкретному подмножеству. Определение этих вероятностей основано на эмпирической оценке вероятности появления тех или иных входов в реальных условиях функционирования.
Поскольку в основу модели Нельсона положены свойства программного обеспечения, она допускает развитие за счет более детального описания других аспектов надежности. Некоторые из полученных обобщений модели могут рассматриваться в контексте исследования проблемы безопасности программ. Вследствие отмеченных особенностей модели ее можно рассматривать в целом как математическую теорию надежности программного и информационного обеспечения, а не как простую модель надежности.
Эмпирические модели надежности