Способы оценки надежности программы

Лекция 13 Тема: Надежность программного обеспечения информационных систем План 1. Основные понятия и определения надежности программного обеспечения. 2. Показатели надежности программного обеспечения. 3. Причины отказов программного обеспечения, признаки появления ошибок. 4. Способы обеспечения и повышения надежности программ. Ключевые слова Надежность программного обеспечения, ПО, отказ, скрытые ошибки, спецификация, корректность программы, контроль ПО, логические ошибки, ошибки ввода-вывода, сбой, резервирование программ, ошибки манипулирования.

Рекомендуемые материалы

Вариант 13 — ДЗ №2
Объектно-ориентированное программирование (ООП)
500 290 руб.

Вариант 24 — Отчёт по практике — Проектирование и реализация программного обеспечения с использованием структурного и объектного подходов

Объектно-ориентированное программирование (ООП)
290 269 руб.
4 lab вариант 13
Программирование
Вариант 13 — ЛР №8 — Наследование
Объектно-ориентированное программирование (ООП)

Домашняя работа С13+ (№1) ОТЧЕТ+КОД по ООП РК6
Объектно-ориентированное программирование (ООП)
Вариант 13 — Отчёт по практике №3
Объектно-ориентированное программирование (ООП)

Анализ методов оценки надежности оборудования и систем

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

Надежность ПО определяется его безотказностью и восстанавливаемостью. Безотказность программы или программного обеспечения есть его (ее) свойство сохранять работоспособность при использовании в процессе обработки информации на компьютере.

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

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

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

Механизм возникновения отказа аппаратуры и отказа ПО существенно отличаются друг от друга. Отказ аппаратуры обусловлен разрушением каких-либо элементов аппаратуры. Отказ ПО обусловлен несоответствием ПО поставленным задачам.

Несоответствие может возникать по двум причинам: либо разработчиком программы допущено нарушение спецификации – технических требований к программе, либо спецификация неточная или неполная. Корректность программы – ее соответствие спецификации.

Оценка надежности систем и программного обеспечения

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

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

Причины отказов программного обеспечения Основными причинами непосредственно вызывающими нарушение нормального функционирования программы, являются [1, 2, 3, 10, 11]: 1. ошибки, скрытые в самой программе; 2. искажения входной информации, подлежащей обработке; 3. неверные действия пользователя; 4. неисправность аппаратуры установки, на которой реализуется вычислительный процесс. 1. Скрытые ошибки программы являются главным фактором нарушения нормальных условий его функционирования; Можно выделить следующие основные ошибки в программе: · Ошибки вычислений – ошибки данного класса содержаться в закодированных математических выражениях или получаемых с их помощью результатах.

Читайте также:
Какие существуют программы и аппараты способы защиты информации

Примерами таких ошибок является неверное преобразование типов переменных, неверный знак операции, ошибка в выражении индекса, переполнение или потеря значимости при вычислениях. · Логические ошибки – являются причиной искажения алгоритма решения задачи. Такого рода ошибки возникают в связи с неверной передачей управления, неверном задании диапазона изменения параметров цикла, неверных условий и т.д. · Ошибки ввода-вывода – связаны с такими действиями, как управление вводом-выводом, формирование выходных записей и определение размеров записей. · Ошибки манипулирования данными – примерами таких ошибок являются неверно определенное число элементов данных, неверные начальные значения, присвоенные данным, неверно указанная длина операнда, имя переменной и т.д.

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

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

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

3. Неверные действия пользователя, приводящие к отказу в процессе функционирования ПО связаны, прежде всего, с неправильной интерпретацией сообщений, неправильными действами пользователя в процессе диалога с компьютером и т.д. 4. Неисправность аппаратуры – неисправности, возникающие при работе аппаратуры, используемой для реализации вычислительного процесса, оказывают влияние на характеристику надежности ПО.

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

Способы обеспечения и повышения надежности программ Они определены на следующие основные категории: 1. усовершенствование технологии программирования; 2. выбор алгоритмов, не чувствительных к различного рода нарушениям вычислительного процесса (использование алгоритмической избыточности); 3. резервирование программ – дуальное или N-версионное программирование, другие методы введения структурной избыточности; 4. контроль и тестирование программ с последующей коррекцией. Выбор алгоритмов, не чувствительных к нарушениям вычислительного процесса, основан на исследовании их чувствительности.

Мерой чувствительности могут являться погрешности, вызванные этими нарушениями. Результаты вычислений искажаются погрешностями: · исходных данных, трансформированными в ходе вычислений: · округления; · методическими; · обусловленными отказами, сбоями и ошибками в программе. Контрольные вопросы и задания 1. Что понимается под надежностью программного обеспечения (ПО)?

2. Что такое корректность ПО? 3. От чего зависит восстанавливаемость ПО компьютера и КС? 4. Определите основные причины отказов ПО. 5. Какие существуют пути повышения надежности ПО компьютеров и КС? 6. Почему при мультипрограммной обработке информации используют принцип виртуальных машин?

Читайте также:
Как установить программу сканера на компьютер

Информация в лекции «20. Истечение жидкости через отверстия» поможет Вам. 7. Какой из способов обеспечения надежности программ считается более эффективным? 8. Что значит «усовершенствование технологии программирования»? 9. Дайте определение понятию «дуальное и N-версионное» программирование. 10. Как оценить вероятность безотказной работы программ?

11. Что означает термин «алгоритмическая избыточность»? Литература: 1, 2, 3, 9, 10, 11.

Поделитесь ссылкой:

Рекомендуемые лекции

  • Эмбриональное развитие
  • 9 — Систематическая картотека статей
  • 9.1. Защита информации от потери и разрушения
  • 15. Коммутационные элементы
  • 20. Истечение жидкости через отверстия

Источник: studizba.com

Методы оценки и измерения характеристик надежности программ

Внутренняя характеристика – число оставшихся ошибок – абсолютное или относительное. Считается, что в хорошо отлаженной программе — не более одной ошибки на 1 тысячу строк исходного кода. Для ответственных применений требуется то же на 10 тыс. строк и больше. Например, для СОИ этот показатель был задан как не более 2,5 ошибок на 10 5 операторов языка Ада.

Как проверить соответствие ПП таким требованиям ?

Метод Миллса (IBM, 1972) использует прием биологов — метод «меченых рыб». Группа тестирования засоряет программу искусственно ошибками и, продолжая тестирование, анализирует долю внесенных ошибок среди обнаруженных.

1) Пусть внесено s ошибок, обнаружено n собственных и v внесенных ошибок. Предполагая, что вероятность обнаружения внесенных и собственных ошибок одинакова, получим первоначальное количество оставшихся ошибок N = s * n / v

В методе Руднера (1977) тестирование осуществляется двумя независимыми группами тестеров параллельно, которые обнаруживают m1 и m2 ошибок соответственно, из которых m1,2 ошибок — общие. Используя гипергеометрическое распределение, по методу максимального правдоподобия может быть найдена оценка числа первоначально содержавшихся в программе ошибок N = m1 * m2 / m1,2 .

Фирма Моторола использует в качестве меры надежности своих ПП (управляющих программ реального времени) среднее число ошибок на 1000 строк исходного кода. Она разработала метод оценки времени тестирования без отказов (zero-failure method), подтверждающего заданную надежность. Метод основан на некоторой, принятой фирмой Моторола, зависимости T = f (N, n, t), где:

T – время окончательного тестирования – испытаний без отказов

N – допустимое число ошибок в коде

n – общее число ошибок, обнаруженных в ходе тестирования

t – время, потраченное на выявление всех n ошибок

Если за время T ни одного отказа не произошло, считается, что в программе не более N ошибок и тестирование можно закончить. Если же отказ произошел через промежуток времени tr < T, то испытание продолжается, причем функция T пересчитывается заново для n+1 и t+ tr.

Как получена функция Т ? – из одной из моделей надежности программ на основе оценок функции  ( t ) – внешней характеристики надежности. Эти оценки обычно экстраполируют динамику отладки, отраженную в базе данных отчетов об ошибках. Например, модель Джелинского – Моранды (1972), использовавшаяся в ряде ответственных проектов, в том числе Apollo NASA (пилотируемый полет на Луну). Она основана на следующих допущениях:

  1. Интенсивность обнаружения ошибок R( t ) пропорциональна текущему числу ошибок в программе, т.е. числу исходных ошибок минус обнаруженные.(Вопрос 9).
  2. Все ошибки равновероятны и их проявление не зависит друг от друга.
  3. Ошибки постоянно исправляются без внесения новых.
  4. R( t ) постоянна в промежутке между двумя смежными моментами обнаружения t i и t i+1.

Тогда R( t ) – ступенчатая монотонно убывающая функция вида:

5. Предполагается, что динамика проявления ошибок во время эксплуатации остается такой же, как при тестировании, т.е. постулируется тождество функций R( t ) и  ( t ) с тем отличием, что значение  ( t ) «замораживается» в момент завершения тестирования — прекращается исправление ошибок.

поскольку dN(t) / dt = R(t) (число ошибок, обнаруженных в единицу времени), получаем дифференциальное уравнение с нач. условиями:

Читайте также:
Программы совместимые с Андроид авто

сли N – число ошибок, обнаруженных к моменту времени t, то до следующего обнаружения справедливо R( t ) = K * (B – N), где В – неизвестное число исходных ошибок, K – неизвестный коэффициент пропорциональности. Полагая X i = t i+1 — t i ( i = 0. n-1 ), можно утверждать, что X i имеют экспоненциальное распределение: P (X i) = exp ( — K * ( B — i) * X i ). Имея набор Xi из базы данных ошибок, можно решать задачу нахождения значений K и B, отвечающих принципу максимального правдоподобия. Несколько проще решение для модифицированной модели, где снято допущение 4, и функция R( t ) перестает быть кусочно-постоянной: R( t ) = K ( B — N ( t ) ). Дифференцируя:

Его решение: R(t) = KB e — K t . Обозначая a = ln (KB), b = — K, получаем запись решения в виде: R (t) = exp (a + bt). Логарифмируя обе части этого равенства и переходя к дискретному времени ti,, получим систему из n уравнений:

ln R(ti) = a + bti; i = 1, . n

Решая эту систему относительно двух неизвестных a и b методом наименьших квадратов, можно найти оценки величин K и B в соответствии с критерием максимального правдоподобия. Этот метод был применен для ряда конкретных проектов IBM и показал хорошее соответствие реальности.

Майерс. Надежность программного обеспечения. М., Мир, 1985.

Источник: studfile.net

ТЕСТИРОВАНИЕ НАДЕЖНОСТИ ПРИ ТЕСТИРОВАНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ПОЛНОЕ РУКОВОДСТВО

ПРОВЕРКА НАДЕЖНОСТИ ПРИ ТЕСТИРОВАНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ПОЛНОЕ РУКОВОДСТВО

наиболее важным аспектом тестирования программного обеспечения является его надежность. Тестировщики программного обеспечения несут ответственность за то, чтобы все части программного обеспечения работали должным образом, прежде чем оно будет выпущено клиентам и конечным пользователям.

Один из способов, с помощью которого тестировщики могут это сделать, – это тестирование кода на надежность. Эти типы тестов гарантируют, что ошибки не приведут к системным сбоям в будущем, когда в программу будут добавлены или изменены другие компоненты.

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

Что такое тестирование надежности?

Тестирование надежности — это тип процесса тестирования программного обеспечения, который проверяет, безошибочно ли работает программное обеспечение в заданной среде в течение определенного времени.

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

Цели тестирования надежности

  • Создать надежный программное обеспечение, которое работает точно каждый раз.
  • Выявлять и устранять проблемы в программном обеспечении перед поставкой.
  • Убедиться, что программное обеспечение соответствует потребностям клиента.
  • Выявлять проблемы в дизайне и функциональности программного обеспечения.
  • Выявлять закономерности в тенденциях дефектов.
  • /ul>

Почему важно тестирование надежности?

  • Это помогает найти постоянную структуру повторяющихся сбоев.
  • Он может определить количество сбоев, происходящих за определенный период.
  • Он раскрывает основную причину сбоя.
  • Снижает риск сбоя.
  • Это даже позволяет нам оценить будущие сбои.
  • Это гарантирует, что мы поставляем качественный продукт.

Какие факторы влияют на тестирование надежности?

  • Количество проблем в существующей системе.
  • Каким образом. пользователь управляет системой.
  • Количество тестов, выполненных группой тестирования.

Какие подходы используются при тестировании надежности?

ТЕСТИРОВАНИЕ НАДЕЖНОСТИ ПРИ ТЕСТИРОВАНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ПОЛНОЕ РУКОВОДСТВО

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

  1. Надежность при повторном тестировании
  2. Надежность параллельных форм
  3. Согласованность решений
  4. Надежность между тестами

Может быть трудно оценить точность в надежности. Упомянутые выше подходы обычно используются для оценки приложения.

Подход № 1: повторное тестирование надежности

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

Подход № 2: Надежность параллельных форм

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru