Главная страница
Навигация по странице:

  • Модель Миллса (модель предсказания числа ошибок)

  • Простая интуитивная модель.

  • Контрольные вопросы и задания

  • Варианты заданий к лабораторной работе

  • Распределение ошибок по тестовым прогонам программы

  • Данные испытаний программы

  • 8.4. Порядок выполнения работы

  • еуцвывыа. Лабораторная работа 8 определение надежности программного обеспечения по результатам тестирования и испытаний


    Скачать 90.82 Kb.
    НазваниеЛабораторная работа 8 определение надежности программного обеспечения по результатам тестирования и испытаний
    Анкореуцвывыа
    Дата09.05.2023
    Размер90.82 Kb.
    Формат файлаdocx
    Имя файлаLABORATORNAYa_RABOTA_8.docx
    ТипЛабораторная работа
    #1117368

    ЛАБОРАТОРНАЯ РАБОТА № 8

    ОПРЕДЕЛЕНИЕ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПО РЕЗУЛЬТАТАМ ТЕСТИРОВАНИЯ И ИСПЫТАНИЙ
    Цель работы: Оценка надежности программного обеспечения по результатам тестирования и испытаний.

    Задачи работы:

    1. Изучить модели определения надежности программного обеспечения.

    2. Получить практические навыки использования моделей для расчета надежности программного обеспечения.
    Сведения из теории
    Для количественной оценки показателей надежности программного обеспечения (ПО) используют модели надежности, под которыми понимаются математические модели, построенные для оценки зависимости этих показателей от заранее известных или определенных в ходе выполнения задания параметров. Значения таких параметров либо предполагаются известными, либо могут быть измерены в ходе наблюдений или экспериментального исследования процесса функционирования программного обеспечения.

    Модели надежности программного обеспечения можно разделить на аналитические и динамические.

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

    Эмпирические модели базируются на анализе структурных особенностей программ и являются наиболее простыми моделями. Они основаны на анализе накопленной информации о функционировании разработанных программ. Например, считалось, что если в программе на каждые 1000 операторов приходится 10 ошибок, то она пригодна к эксплуатации. По другим данным, уровень надёжности программ считается приемлемым, если на 1000 операторов приходится одна ошибка.

    Модель Шумана. Относится к динамическим моделям дискретного времени. Исходные данные для модели Шумана собираются в процессе тестирования ПО в течение фиксированных или случайных временных интервалов. При использовании модели Шумана предполагаются справедливыми следующие допущения:

    • тестирование проводится в несколько этапов, выявленные на конкретном этапе ошибки регистрируются, но не исправляются;

    • в конце этапа рассчитываются количественные показатели надежности, исправляются найденные ошибки, корректируются тестовые наборы и проводится следующий этап тестирования;

    • число ошибок в программе постоянно и в процессе корректировки новые ошибки не вносятся;

    • до начала тестирования имеется ошибок. В течение времени тестирования τобнаруживается ошибок в расчете на одну команду в машинном языке;

    • общее число машинных команд постоянно в рамках этапа тестирования.

    Базовые понятия модели заимствованы из теории надежности аппаратных средств [6]:

    ­ функция надежности ­ вероятность того, что ни одна ошибка не появится на интервале от 0 до t,

    ­ функция отказов, вероятность того, что ошибка появится на интервале от 0 до t: ,

    ­ функция риска, условная вероятность того, что ошибка появится на интервале от 0 до , при условии, что до t ошибок не было. Значение функции пропорционально числу оставшихся в ПО ошибок:

    где C ­ некоторая константа, t ­ время работы ПО без отказа, ­ удельное число ошибок на одну машинную команду, оставшихся в системе после времени тестирования τ, вычисляемое как:
    .
    Если время работы программы без отказа t отсчитывается от точки

    t = 0, а время тестирования τ остается фиксированным, то функция надежности, или вероятность безотказной работы на интервале от 0до t, равна

    где неизвестными величинами являются начальное количество ошибок и коэффициент пропорциональности C. Для определения этих величин в процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона: . Предполагая, что интенсивность появления ошибок постоянна и равна λ, можно вычислить ее как число ошибок в единицу времени: , где ­ количество ошибок на i-ом прогоне.

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

    Значения начального количества ошибок и коэффициент пропорциональности C вычисляются как


    .
    Модель Миллса (модель предсказания числа ошибок). Относится к классу аналитических статических моделей. Использование этой модели предполагает необходимость перед началом тестирования искусственно вносить в программу («засорять») некоторое количество известных ошибок.

    Тестируя программу в течение некоторого времени, собирают статистику об ошибках. Соотношение дает возможность оценить N – первоначальное число ошибок в программе. В данном соотношении, которое называется формулой Миллса, S– количество искусственно внесенных ошибок, n число найденных собственных ошибок, V– число обнаруженных к моменту оценки искусственных ошибок.

    Мерой доверия к модели является величина C:



    ,

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

    Пусть N­ неизвестное количество ошибок в программе и первая группа в процессе тестирования обнаружила ошибок, вторая – , a – это ошибки, обнаруженные обеими группами (рис. 8.1).

    Эффективность тестирования каждой из групп определяется как






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



    .
    Модель Коркорэна.

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

    Применение модели предполагает знание следующих ее показателей:

    • изменяющуюся вероятность отказов для различных источников ошибок и соответственно разную вероятность их исправления;

    • результаты N испытаний, в которых наблюдается ошибок i-го типа;

    • вероятности появления ошибок i-го типа.

    Вероятность безотказного выполнения программы на момент оценки определяется как

    где – число безотказных выполнений программы; N – общее число прогонов; K – априори известное число типов ошибок.

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

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

    3. На каких предположениях построена модель «дискретно-понижающая интенсивность проявления ошибок»?

    4. На каких допущениях построена модель Шумана?

    5. Каким образом определяется надежность программного обеспечения по модели Джелинского-Моранды?

    6. В чем заключается различие между статическими и динамическими моделями надежности программных средств?

    7. В чем сущность модели Миллса?

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

    9. Каким образом определяется надежность программного обеспечения по модели Коркорэна?

    10. В чем сущность интуитивной модели фирмы IBM?

    11. Какую модель надежности программы следует применять, если предпринято две попытки тестирования?
    Варианты заданий к лабораторной работе
    1. Предположим в программе есть три собственные ошибки, внесём ещё шесть случайным образом. В процессе тестирования было найдено пять внесенных ошибок и две собственные. Найти надёжность программы по модели Миллса.

    2. В программе есть две собственные ошибки, внесём ещё три случайным образом. В процессе тестирования было найдено две внесенные ошибок и три собственные. Найти надёжность программы по модели Миллса.

    3. Предположим в программе есть десять собственных ошибок, внесём ещё пять случайным образом. В процессе тестирования было найдено восемь внесенных ошибок и трисобственные. Найти надёжность программы по модели Миллса.

    4. Пусть в программе есть двенадцать собственных ошибок, внесём ещё шесть случайным образом. В процессе тестирования было найдено семь внесенных ошибок и пять собственных. Найти надёжность программы по модели Миллса.

    5. Предположим, в программе перед началом тестирования было 90 ошибок. Искусственно рассеяно 20 ошибок. Данные тестовых прогонов приведены в табл.8.1.
    Таблица .8.1

    Распределение ошибок по тестовым прогонам программы


    Номер тестового прогона

    1

    2

    3

    4

    5

    6

    7

    n (число обнаруженных собственных ошибок)

    25

    20

    20

    15

    10

    19

    1

    v (число найденных внесенных ошибок)

    5

    4

    2

    4

    2

    2

    1


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

    6. Предположим, в программе перед началом тестирования было 100 ошибок. Искусственно рассеяно 15 ошибок. Данные тестовых прогонов приведены в табл.8.2.
    Таблица .8.2

    Распределение ошибок по тестовым прогонам программы


    Номер тестового прогона

    1

    2

    3

    4

    5

    6

    7

    n (число обнаруженных собственных ошибок)

    20

    20

    25

    16

    9

    8

    1

    v (число найденных внесенных ошибок)

    5

    3

    3

    4

    3

    1

    1


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

    7. Предположим, в программе перед началом тестирования было 80 ошибок. Искусственно рассеяно 30 ошибок. Данные тестовых прогонов приведены в табл.8.3.
    Таблица .8.3

    Распределение ошибок по тестовым прогонам программы



    Номер тестового прогона

    1

    2

    3

    4

    5

    6

    7

    n (число обнаруженных собственных ошибок)

    30

    15

    15

    13

    10

    10

    1

    v (число найденных внесенных ошибок)

    5

    3

    3

    4

    3

    1

    1


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

    8. В процессе тестирования программы первая группа нашла 15 ошибок, вторая группа нашла 25 ошибок, общих ошибок было 5. Определить надёжность по простой интуитивной модели.

    9. В процессе тестирования программы первая группа нашла 10 ошибок, вторая группа нашла 20 ошибок, общих ошибок было 8. Определить надёжность по простой интуитивной модели.

    10. В процессе тестирования программы первая группа нашла 20 ошибок, вторая группа нашла 22 ошибки, общих ошибок было 4. Определить надёжность по простой интуитивной модели.

    11. Было проведено N=100 испытаний программы. В двадцати испытаниях ошибки не были обнаружены, данные других испытаний приведены в табл. 8.4. Оценить надёжность программы по модели Коркорэна.

    Таблица .8.4

    Данные испытаний программы


    Тип ошибки

    Вероятность появления ошибки

    Количество ошибок

    Ошибки вычисления

    0,09

    5

    Логические ошибки

    0,26

    25

    Ошибки ввода/вывода

    0,16

    3

    Ошибки манипулирования

    данными

    0,18

    12

    Ошибки сопряжения

    0,17

    11

    Ошибки определения данных

    0,08

    3

    Ошибки в базах данных

    0,06

    4


    12. В процессе тестирования программы первая группа нашла 5 ошибок, вторая группа нашла 40 ошибок, общих ошибок было 5.

    Определить надёжность по простой интуитивной модели.

    13. В процессе тестирования программы первая группа нашла 35 ошибок, вторая группа нашла 25 ошибки, общих ошибок было 20. Определить надёжность по простой интуитивной модели.

    14. В процессе тестирования программы первая группа нашла 5 ошибок, вторая группа нашла 2 ошибки, общих ошибок было 2. Определить надёжность по простой интуитивной модели.

    15. Оценить надёжность программы по модели Коркорэна. Было проведено N=100 испытаний программы. В 20 испытаниях ошибки не были обнаружены, а в остальных случаях получены данные, представленные в табл. 8.5.
    Таблица .8.5

    Данные испытаний программы


    Тип ошибки

    Вероятность появления ai

    Количество ошибок Ni.

    Ошибки вычисления

    0,26

    5

    Логические ошибки

    0,9

    8

    Ошибки ввода/вывода

    0,16

    3

    Ошибки манипулирования данными

    0,2

    25

    Ошибки сопряжения

    0,17

    11

    Ошибки определения данных

    0,08

    3

    Ошибки в БД

    0,16

    3


    16. Оценить надёжность программы по модели Коркорэна. Было проведено N=100 испытаний программы. В двадцати испытаниях ошибки не были обнаружены, а в остальных случаях получены данные, представленные в табл. 8.6.
    Таблица .8.6

    Данные испытаний программы


    Тип ошибки

    Вероятность появления ai

    Количество ошибок Ni.

    Ошибки вычисления

    0,09

    8

    Логические ошибки

    0,26

    0

    Ошибки ввода/вывода

    0,17

    4

    Ошибки манипулирования данными

    0,2

    25

    Ошибки сопряжения

    0,8

    25

    Ошибки определения данных

    0,08

    3

    Ошибки в БД

    0,16

    5

    17. Оценить надёжность программы по модели Коркорэна. Было проведено N=100 испытаний программы. В двадцати испытаниях ошибки не были обнаружены, а в остальных случаях получились следующие данные, представленные в табл. 8.7.

    Таблица .8.7

    Данные испытаний программы


    Тип ошибки

    Вероятность появления ai

    Количество ошибок Ni.

    Ошибки вычисления

    0,2

    4

    Логические ошибки

    0,26

    3

    Ошибки ввода/вывода

    0,17

    11

    Ошибки манипулирования данными

    0,9

    0

    Ошибки сопряжения

    0,08

    3

    Ошибки определения данных

    0,8

    5

    Ошибки в БД

    0,16

    25


    18. Оценить надёжность программы по модели Шумана если известно, что общее число операторов в программе составляет 10000, данные тестовых прогонов приведены в табл.8.8.

    Таблица .8.8

    Данные испытаний программы


    T, час

    0,5

    0,4

    0,5

    0,75

    0,2

    0,5

    0,3

    0,3

    0,1

    0,4

    Количество ошибок

    2

    0

    5

    3

    4

    1

    3

    2

    0

    1


    19. Оценить надёжность программного обеспечения по модели Шумана. Общее число операторов составляет 9000, данные тестовых прогонов приведены в табл.8.9.


    T, час

    0,4

    0,5

    0,5

    0,2

    0,75

    0,3

    0,5

    0,3

    0,1

    0,4

    Количество ошибок

    2

    5

    0

    3

    4

    1

    2

    1

    1

    0


    20. . Общее число операторов в программе равно10000, данные тестовых прогонов представлены в табл. Оценить надёжность программы после девяти прогонов, используя модель Шумана.

    T, час

    0,5

    0,1

    0,3

    0,75

    0,3

    0,4

    0,5

    0,5

    Количество ошибок

    1

    5

    4

    0

    1

    2

    3

    2


    21. Общее число операторов в программе равно10000 данные тестовых прогонов представлены в табл. Оценить надёжность программы после восьми прогонов, используя модель Шумана.


    T, час

    0,5

    0,1

    0,75

    0,5

    0,3

    0,4

    0,2

    0,5

    Количество ошибок

    0

    5

    1

    3

    1

    2

    1

    2


    8.4. Порядок выполнения работы
    1. Изучите основные модели оценки надежности программного обеспечения.

    2. Получите практическое задание у преподавателя.

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

    4. Ответьте на контрольные вопросы.

    5. Составьте отчет в электронном варианте, который должен содержать титульный лист, цель лабораторной работы, полученные результаты и выводы.


    написать администратору сайта