Учебники

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

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

НАДЕЖНОСТЬ ИСПЫТАНИЯ — это тип тестирования программного обеспечения, который проверяет, может ли программное обеспечение выполнять безотказную работу в течение определенного периода времени в конкретной среде.

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

В этом уроке вы узнаете

Пример тестирования надежности

Вероятность того, что ПК в магазине работает и работает в течение восьми часов без сбоев, составляет 99%; это называется надежностью.

Образец тестирования надежности

Тестирование надежности можно разделить на три сегмента,

  • моделирование
  • измерение
  • улучшение

Следующая формула предназначена для расчета вероятности отказа.

Probability = Number of failing cases/ Total number of cases under consideration

Факторы, влияющие на надежность программного обеспечения

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

Зачем проводить тестирование надежности

Проверка надежности проводится для проверки работоспособности программного обеспечения в данных условиях.

Целью проведения проверки надежности являются:

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

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

Типы тестирования надежности

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

Тестирование функций: —

Рекомендуемое тестирование проверяет функцию, предоставляемую программным обеспечением и проводится в следующие шаги:

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

Нагрузочное тестирование: —

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

Регрессионный тест:-

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

Как сделать тестирование надежности

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

Чтобы начать тестирование на надежность, тестер должен придерживаться следующих вещей,

  • Установить цели надежности
  • Разработать операционный профиль
  • Планируйте и выполняйте тесты
  • Используйте результаты тестов для принятия решений

Как мы уже говорили ранее, есть три категории, в которых мы можем проводить тестирование надежности: моделирование, измерение и улучшение .

Ключевые параметры, вовлеченные в тестирование надежности:

  • Вероятность безотказной работы
  • Продолжительность безотказной работы
  • Среда, в которой он выполняется

Шаг 1) Моделирование

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

1. Моделирование прогноза

2. Оценочное моделирование

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

    Основные отличия двух моделей:

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

Шаг 2) Измерение

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

1. Метрики продукта: —

Метрики продукта представляют собой комбинацию 4 типов метрик:

  • Размер программного обеспечения : — Линия кода (LOC) — это интуитивно понятный начальный подход к измерению размера программного обеспечения. В этом метрике учитывается только исходный код, а комментарии и другие неисполняемые операторы не учитываются.
  • Метрика точки функции : — Метрика функции Pont — это метод измерения функциональности разработки программного обеспечения. Он будет учитывать количество входов, выходов, основных файлов и т. Д. Он измеряет функциональность, предоставляемую пользователю, и не зависит от языка программирования.
  • Сложность : — Это напрямую связано с надежностью программного обеспечения, поэтому важно представлять сложность. Метрика, ориентированная на сложность, представляет собой метод определения сложности структуры управления программой путем упрощения кода в графическом представлении.
  • Метрики покрытия тестирования : — Это способ оценки неисправности и надежности путем выполнения полного тестирования программных продуктов. Надежность программного обеспечения означает, что это функция определения того, что система была полностью проверена и протестирована.

2. Метрики управления проектом

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

3. Метрики процесса

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

4. Показатели неисправностей и отказов

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

Надежность программного обеспечения измеряется в терминах среднего времени наработки на отказ (MTBF) . MTBF состоит из

  • Среднее до отказа (MTTF): это разница во времени между двумя последовательными сбоями
  • Среднее время ремонта (MTTR): это время, необходимое для устранения неисправности.
MTBF = MTTF + MTTR

Надежность для хорошего программного обеспечения — это число от 0 до 1.

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

Шаг 3) Улучшение

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

Примеры методов проверки надежности

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

В основном, для тестирования надежности используются три подхода

  • Тест-ретест Надежность
  • Надежность параллельных форм
  • Согласованность решений

Ниже мы попытались объяснить все это на примере.

Тест-ретест Надежность

Тест-ретест Надежность изображения

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

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

Параллельные формы Надежность изображения

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

Согласованность решений

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

Важность тестирования надежности

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

Чтобы проверить надежность программного обеспечения с помощью тестирования: —

  1. Большое количество тестовых случаев должно быть выполнено в течение длительного периода времени, чтобы выяснить, как долго программа будет работать без сбоев.
  2. Распределение тестовых случаев должно соответствовать фактическому или запланированному рабочему профилю программного обеспечения. Чем чаще выполняется функция программного обеспечения, тем больше процент тестовых случаев, которые должны быть выделены для этой функции или подмножества.

Инструменты тестирования надежности

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

1. WEIBULL ++: — Анализ данных о сроке службы

2. RGA: — Анализ роста надежности

3. RCM: -обслуживание, ориентированное на надежность

Summary:

Reliability Testing is the important part of a reliability engineering program. More correctly, it is the soul of reliability engineering program.

Furthermore, reliability tests are mainly designed to uncover particular failure modes and other problems during software testing.

In Software Engineering, Reliability Testing can be categorized into three segments,

  • Modeling
  • Measurement
  • Improvement

Factors Influencing Software Reliability

  • The number of faults presents in the software
  • The way users operate the system