Смекни!
smekni.com

Информационная система университета (стр. 14 из 16)

Если обозначить через N неизвестное количество ошибок, присутствовавших в программе до начала тестирования, то можно эффективность тестирования каждой из групп определить как:

;
. (61)

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

. (62)

Из формулы (25) N2 = Е2N, подставив в (26), получим:

, (63)

или

. (64)

Значение N12 известно, а E1 и E2 можно определить как N12/N1 и N12/N1. Развивая эту модель и опираясь на предполо­жение, что обе группы, проводящие тестирование, имеют равную вероятность обнаружения "общих" ошибок, ее можно рассчитать по следующей формуле:

, (65)

где Р(N12) — вероятность обнаружения N12 "общих" ошибок тестирования про­граммы двумя независимыми группами.

Модель Коркорэна. Модель Коркорэна относится к статиче­ским моделям надежности ПС, так как в ней не используются параметры времени тестирования и учитывается только резуль­тат N испытаний, в которых выявлено N1 ошибок i-го типа. Модель использует изменяющиеся вероятности отказов для различных типов сшибок.

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

, (66)

где N0 — число безотказных выполнений программы;

N общее число прогонов;

К априориорно известное число типов


ai, если Ni>0;

Yi= (67)

0, если Ni = 0;

ai — вероятность выявления при тестировании ошибки 1-го типа.

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

Таблица 13 - Ошибки программы по категориям и вероятности их появления

Тип ошибки Вероятность появления ошибки
Ошибки вычислений 0,09
Логические ошибки 0,26
Ошибки ввода-вывода 0,16
Ошибки манипулирования данными 0,18
Ошибки сопряжения 0,17
Ошибки определения данных 0,08
Ошибки в БД 0,06

Модель Нельсона. Данная модель была создана в фирме TRW (аэрокосмическая компания США), при расчете надеж­ности ПС учитывает вероятность выбора определенного тесто­вого набора для очередного выполнения программы.

Предполагается, что область данных, необходимых для выполнения тестирования программного средства, разделяется на К взаимоисключающих подобластей Zi, i= 1,2, .... k. Пусть Рi - вероятность того, что набор данных Zi будет выбран для очередного выполнения программы. Предполагая, что к мо­менту оценки надежности было выполнено Ni прогонов про­граммы на Zi наборе данных и из них ni, количество прогонов закончилось отказом, надежность ПС в этом случае равна:

. (68)

На практике вероятность выбора очередного набора данных для прогона (Рi) определяется путем разбиения всего мно­жества значений входных данных на подмножества и нахожде­ния вероятностей того, что выбранный для очередного прогона набор данных будет принадлежать конкретному подмножеству. Определение этих вероятностей основано на эмпирической оценке вероятности появления тех или иных входов в реальных условиях функционирования.

10.4. Эмпирические модели надежности

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

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

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

Некоторые базовые понятия для определения характеристик сложности даны в таблице 14.

Сложность модуля ПС может быть описана, если рассматри­вать структуру программы как последовательность узлов, дуг и петель в виде направленного графа.

Таблица 14 - Определение характеристик сложности

Связь Для модуля Для ПС (многомодульная программа)
Узел Точка ветвления модуля Модуль, имеющий более одного выхода
Дуга Последовательные участки модуля Последовательность нескольких модулей, имеющих один выход
Петля Циклические участки модуля Циклические участки, состоящие из нескольких модулей

В качестве структурных характеристик модуля ПС исполь­зуются:

1) отношение действительного числа дуг к максимально возможному числу дуг, получаемому искусственным соедине­нием каждого узла с любым другим узлом дугой;

2) отношение числа узлов к числу дуг;

3) отношение числа петель к общему числу дуг.

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

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

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

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

- модель позволяет на этапе проектирования ПС принимать оптимальные проектные решения, опираясь на характеристики ошибок, оцениваемые с помощью имитационной модели;

- позволяет прогнозировать требуемые ресурсы тестиро­вания;

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

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

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

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

Пусть ПС состоит из n модулей.

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

Для ПС, состоящего из n модулей, будет ne таких парных отношений.

Р - матрица размерностью n * т с элементами Рij. Допустим, что при тестовой сборке ПС в i-м модуле выявлено Аi, ошибок, или в модуле i должно быть сделано Аi изменений.

Обозначим через А вектор размерностью n с элементами Аi,. Тогда А - общее число изменений, требуемых при интеграции модулей в систему на нулевом шаге.

Общее число изменений на первом шаге, требуемых в резуль­тате изменений, сделанных на нулевом шаге, будет равно А * Р.