Задача 1
В программу преднамеренно внесли (посеяли) 10 ошибок. В результате тестирования обнаружено 12 ошибок, из которых 10 ошибок были внесены преднамеренно. Все обнаруженные ошибки исправлены. До начала тестирования предполагалось, что программа содержит не более 4 ошибок. Требуется оценить количество ошибок до начала тестирования и степень отлаженности программы.
Решение задачи
Для оценки количества ошибок до начала тестирования используем формулу (1). Нам известно:
· количество внесенных в программу ошибок S = 10;
· количество обнаруженных ошибок из числа внесенных V =10;
· количество «собственных» ошибок в программе n = 12 - 10 = 2.
Подставив указанные значения в формулу, получим оценку количества ошибок:
N=(S*n)/ V = (10*2)/10 = 2
Таким образом, из результатов тестирования следует, что до начала тестирования в программе имелось 2 ошибки.
Для оценки отлаженности программы используем уравнение (2). Нам известно:
· количество обнаруженных «собственных» ошибок в программе n = 2;
· количество предполагаемых ошибок в программе K = 4;
· количество преднамеренно внесенных и обнаруженных ошибок S = 10.
Очевидно, что обнаружено меньшее число «собственных» ошибок, чем количество предполагаемых ошибок в программе (n<K). Для оценки отлаженности программы используем уравнение
С = S /(S+K + 1) = 10/(10 + 4+ 1) = 0,67
Степень отлаженности программы равна 0,67, что составляет 67%.
Задача 2
В программу было преднамеренно внесено (посеяно) 7 ошибок. В результате тестирования обнаружено 11 ошибок, из которых 7 ошибок были внесены преднамеренно. Все обнаруженные ошибки исправлены. До начала тестирования предполагалось, что программа содержит не более 5 ошибок. Требуется оценить количество ошибок до начала тестирования и степень отлаженности программы.
|
Решение задачи
Для оценки количества ошибок до начала тестирования используем формулу (1). Нам известно:
· количество внесенных в программу ошибок S = 7;
· количество обнаруженных ошибок из числа внесенных V =7;
· количество «собственных» ошибок в программе n =11-7 = 4.
Подставив указанные значения в формулу, получим оценку:
N=(S*n)/ V=(7*4)/7 = 4
Таким образом, из результатов тестирования следует, что до начала тестирования в программе имелось 4 ошибки.
Для оценки отлаженности программы используем уравнение (2). Нам известно:
· количество обнаруженных «собственных» ошибок в программе n = 4;
· количество предполагаемых ошибок в программе K = 5;
· количество преднамеренно внесенных и обнаруженных ошибок S =7.
Очевидно, что обнаружено меньшее число «собственных» ошибок, чем количество предполагаемых ошибок в программе (n < K). Для оценки отлаженности программы используем уравнение
С= S/(S+K + 1) = 7/(7 + 5 + 1) = 0,54
Степень отлаженности программы равна 0,54, что составляет 54%.
Задача 3
В программу было преднамеренно внесено (посеяно) 14 ошибок. Предположим, что в программе перед началом тестирования было 14 ошибок. В процессе четырех тестовых прогонов было выявлено следующее количество ошибок.
Номер прогона | ||||
V | ||||
n |
Необходимо оценить количество ошибок перед каждым тестовым прогоном. Оценить степень отлаженности программы после последнего прогона. Построить диаграмму зависимости возможного числа ошибок в данной программе от номера тестового прогона.
|
Решение задачи
Количество ошибок перед каждым прогоном будем оценивать в соответствии с выражением (1). Перед каждой последующей оценкой количества ошибок и степени отлаженности программы необходимо корректировать значения внесенных S и предполагаемых K ошибок с учетом выявленных и устраненных после каждого прогона тестов. Степень отлаженности программы на всех прогонах, кроме последнего, рассчитывается по комбинаторной формуле.
Определяя показатели программы по результатам первого прогона, необходимо учитывать, что S 1 = 14; n 1 = 4; V 1 = 6, тогда
N1 = (S1*n1)/ V1= (14 * 4) / 6 = 9
По результатам второго прогона корректируем исходные данные для оценки параметров: K2 = 14 - 4 = 10; S 2 = 14 - 6 = 8; n 2 = 2; V2 = 4, следовательно,
N2 = (S2*n2)/V2 = (8*2)/4 = 4.
Корректировка исходных данных после третьего прогона дает следующие данные: K 3 = 10 - 2 = 8, S 3 = 8 - 4 = 4; n 3= 1; V 3 = 2, откуда количество ошибок определится следующим образом:
N3 = (S3*n3)/V3 = (4*1)/2 = 2.
После четвертого прогона программы получим следующие исходные данные: K4 = 8 - 1 = 7, S4 = 4 - 2 = 2; n4 = 1; V4 = 2, тогда
N4 = (S4 *n 4) / V4 = (2 * 1) / 2 = 1.
Поскольку после четвертого прогона все «посеянные» ошибки выявлены и устранены, то для оценки отлаженности программы можно воспользоваться упрощенной формулой
C=S/(S+K + 1) = 2/(2 + 7+ 1) = 0,2.
Таким образом, в предположении, что до начала четвертого прогона в программе оставалось 7 ошибок, степень отлаженности программы составляет 20%.
Результат по количеству ошибок в программе до начала каждого прогона приведен ниже.
|
Номер прогона | ||||
N |
Графически динамика количества ошибок по результатам тестирования программы показана на рисунке 2.
На приведенном графике дополнительно отображена линия тренда, характеризующая тенденцию снижения количества ошибок в программе по результатам тестовых прогонов.
Рисунок 2. Динамика количества ошибок при тестировании программы
Задача 4
В программу было преднамеренно внесено (посеяно) 14 ошибок. В результате тестирования обнаружено 9 ошибок, из которых 6 ошибок были внесены преднамеренно. Все обнаруженные ошибки исправлены. До начала тестирования предполагалось, что программа содержит не более 4 ошибок. Требуется оценить степень отлаженности программы на момент завершения тестирования.
Решение задачи
Если тестирование закончено раньше, чем обнаружены все преднамеренно внесенные ошибки, то следует применять более сложное комбинаторное выражение (6).
Из условия задачи нам известно:
· количество внесенных в программу ошибок S =14;
· количество обнаруженных ошибок из числа внесенных V= 6;
· количество «собственных» ошибок в программе n = 9-6 = 3;
Подставив значения в формулу, получим оценку количества ошибок:
N=(S*n)/ V = (14*3)/6 = 7
Таким образом, из результатов тестирования следует, что до начала тестирования в программе имелось 7 ошибок.
Для оценки отлаженности программы используем уравнение (7). Нам известно:
· количество обнаруженных «собственных» ошибок в программе n = 3;
· количество предполагаемых ошибок в программе K = 4;
· количество преднамеренно внесенных и обнаруженных ошибок S = 14.
Очевидно, что обнаружено меньшее число «собственных» ошибок, чем количество предполагаемых ошибок в программе (n<K). Для оценки отлаженности программы используем уравнение
С = S /(S+K + 1) = 14/(14 + 4+ 1) = 0,74
Степень отлаженности программы равна 0,74, что составляет 74%.
Заключение
В проделанной нами работе была достигнута первоначально поставленная цель. Мы изучили статические модели и метрики для определения качества ПО. Для достижения данной цели мы ознакомились с показателями качества программного обеспечения по стандарту ГОСТ Р 9126-93. Изучили статические модели и метрики. Для лучшего представления и анализа рассмотрели модели Миллса и простую интуитивную модель на конкретных примерах.
Следует признать, что абсолютно надежных программ не существует, так как абсолютная степень надежности не может быть теоретически доказана и, следовательно недостижима. Однако важно знать, насколько надежно конкретное ПО. Описанные модели представляют теоретический подход и, как правило, имеют ограниченное применение. До сих пор не предложено ни одного надежного количественного метода оценки надежности ПО, не содержащего чрезмерного количества ограничений.
Практика разработки ПО предполагает приоритет задачи обеспечения надежности над задачей её оценки. Ситуации выглядит парадоксально: совершенно очевидно, что прежде чем обеспечивать надежность, следует научиться её измерять. Но для этого нужно иметь практически приемлемую единицу измерения надежности ПО и модели её расчета.