Тестирование надежности
Тестирование надежности - это процесс тестирования программного обеспечения, который проверяет, может ли программное обеспечение работать без сбоев в течение определенного периода времени в конкретной среде. Цель тестирования надежности - убедиться, что программный продукт не содержит ошибок и достаточно надежен для предполагаемой цели.
Надежность означает «давать то же самое», другими словами, слово «надежный» означает, что что-то надежно и что каждый раз будет давать один и тот же результат. То же верно и для тестирования надежности.
В этом руководстве вы узнаете:
- Что такое проверка надежности?
- Пример проверки надежности
- Факторы, влияющие на надежность программного обеспечения
- Зачем проводить тестирование надежности
- Типы проверки надежности
- Как проводить тестирование надежности
- Примеры методов тестирования надежности
- Инструменты тестирования надежности
Пример проверки надежности
Вероятность того, что ПК в магазине проработает восемь часов без сбоев, составляет 99%; это называется надежностью.
Тестирование надежности можно разделить на три сегмента:
- Моделирование
- Измерение
- Улучшение
Следующая формула предназначена для расчета вероятности отказа.
Вероятность = Количество неудачных дел / Общее количество рассматриваемых дел
Факторы, влияющие на надежность программного обеспечения
- Количество неисправностей в программном обеспечении
- Как пользователи работают с системой
- Тестирование надежности - один из ключей к повышению качества программного обеспечения. Это тестирование помогает обнаружить множество проблем в дизайне и функциональности программного обеспечения.
- Основная цель тестирования надежности - проверить, соответствует ли программное обеспечение требованиям надежности заказчика.
- Тестирование надежности будет проводиться на нескольких уровнях. Сложные системы будут тестироваться на уровне агрегата, сборки, подсистемы и системы.
Зачем проводить тестирование надежности
Тестирование надежности проводится для проверки производительности программного обеспечения в заданных условиях.
Целью проведения тестирования надежности является:
- Найти структуру повторяющихся отказов.
- Чтобы узнать количество возникающих сбоев, необходимо указанное количество времени.
- Чтобы узнать основную причину сбоя
- Провести тестирование производительности различных модулей программного приложения после устранения дефекта.
После выпуска продукта мы также можем минимизировать вероятность возникновения дефектов и тем самым повысить надежность программного обеспечения. Некоторые из полезных для этого инструментов - анализ тенденций, классификация ортогональных дефектов, формальные методы и т. Д.
Типы проверки надежности
Тестирование надежности программного обеспечения включает тестирование функций, нагрузочное тестирование и регрессионное тестирование.
Тестирование функций: -
Рекомендуемое тестирование проверяет функцию, предоставляемую программным обеспечением, и проводится в следующие этапы: -
- Каждая операция в программе выполняется хотя бы один раз.
- Взаимодействие между двумя операциями сокращается.
- Каждую операцию необходимо проверять на правильность ее выполнения.
Нагрузочное тестирование: -
Обычно программное обеспечение работает лучше в начале процесса, а после этого оно начинает ухудшаться. Нагрузочное тестирование проводится для проверки работоспособности программного обеспечения при максимальной рабочей нагрузке.
Регрессионный тест:-
Регрессионное тестирование в основном используется для проверки того, были ли внесены какие-либо новые ошибки из-за исправления предыдущих ошибок. Регрессионное тестирование проводится после каждого изменения или обновления функций программного обеспечения и их функций.
Как проводить тестирование надежности
Тестирование надежности обходится дорого по сравнению с другими типами тестирования. Таким образом, при проведении тестирования надежности требуется надлежащее планирование и управление. Это включает в себя процесс тестирования, который необходимо реализовать, данные для тестовой среды, расписание тестирования, точки тестирования и т. Д.
Чтобы начать тестирование надежности, тестировщик должен следить за тем,
- Установите цели надежности
- Разработать операционный профиль
- Планировать и выполнять тесты
- Используйте результаты тестов для принятия решений
Как мы обсуждали ранее, есть три категории, в которых мы можем проводить тестирование надежности: моделирование, измерение и улучшение .
Ключевые параметры, участвующие в тестировании надежности:
- Вероятность безотказной работы
- Продолжительность безотказной работы
- Среда, в которой он выполняется
Шаг 1) Моделирование
Технику программного моделирования можно разделить на две подкатегории:
1. Прогнозное моделирование
2. Оценочное моделирование
- Значимые результаты можно получить, применяя подходящие модели.
- Можно сделать предположения и абстракции, чтобы упростить проблемы, и ни одна модель не подходит для всех ситуаций.
Основные отличия двух моделей: -
вопросы | Модели прогнозирования | Модели оценки |
---|---|---|
Справка по данным | Он использует исторические данные | Он использует текущие данные из разработки программного обеспечения. |
При использовании в цикле разработки | Обычно он создается до этапа разработки или тестирования. | Обычно он будет использоваться на более позднем этапе жизненного цикла разработки программного обеспечения. |
Временное ограничение | Это будет предсказывать надежность в будущем. | Он предсказывает надежность либо в настоящее время, либо в будущем. |
Шаг 2) Измерение
Надежность программного обеспечения нельзя измерить напрямую, поэтому для оценки надежности программного обеспечения учитываются другие связанные факторы. Текущие методы измерения надежности программного обеспечения делятся на четыре категории:
1. Показатели продукта: -
Метрики продукта - это комбинация 4 типов метрик:
- Размер программного обеспечения : - Строка кода (LOC) - это интуитивно понятный начальный подход к измерению размера программного обеспечения. В этой метрике учитывается только исходный код, а комментарии и другие неисполняемые инструкции не учитываются.
- Метрика функциональной точки : - Метрика функциональной точки - это метод измерения функциональности разработки программного обеспечения. Он будет учитывать количество входов, выходов, основных файлов и т. Д. Он измеряет функциональность, предоставляемую пользователю, и не зависит от языка программирования.
- Сложность : - Это напрямую связано с надежностью программного обеспечения, поэтому важно представлять сложность. Метрика, ориентированная на сложность, - это метод определения сложности структуры управления программой путем упрощения кода до графического представления.
- Показатели покрытия тестами : - это способ оценки сбоев и надежности путем выполнения полного тестирования программных продуктов. Надежность программного обеспечения означает, что это функция определения того, что система полностью проверена и протестирована.
2. Метрики управления проектом
- Исследователи поняли, что хорошее управление может привести к созданию лучших продуктов.
- Хорошее управление может обеспечить более высокую надежность за счет использования более совершенного процесса разработки, процесса управления рисками, процесса управления конфигурацией и т. Д.
3. Метрики процесса
Качество продукта напрямую связано с производственным процессом. Метрики процесса можно использовать для оценки, мониторинга и повышения надежности и качества программного обеспечения.
4. Показатели отказов и отказов
Метрики отказов и отказов в основном используются для проверки того, полностью ли безотказна система. Для достижения этой цели собираются, обобщаются и анализируются как типы неисправностей, обнаруженные в процессе тестирования (т. Е. Перед доставкой), так и отказы, о которых сообщают пользователи после доставки.
Надежность программного обеспечения измеряется средней наработкой на отказ (MTBF) . Среднее время безотказной работы состоит из
- Среднее до отказа (MTTF): это разница во времени между двумя последовательными отказами.
- Среднее время ремонта (MTTR): это время, необходимое для устранения неисправности.
Среднее время безотказной работы = MTTF + MTTR
Надежность хорошего программного обеспечения - это число от 0 до 1.
Надежность повышается при удалении ошибок или недочетов в программе.
Шаг 3) Улучшение
Улучшение полностью зависит от проблем, возникших в приложении или системе, или от характеристик программного обеспечения. В зависимости от сложности программного модуля способ улучшения также будет отличаться. Два основных ограничения: время и бюджет, которые ограничивают усилия, вложенные в повышение надежности программного обеспечения.
Примеры методов тестирования надежности
Проверка надежности - это проверка приложения, чтобы сбои были обнаружены и устранены до развертывания системы.
В основном используются три подхода к тестированию надежности.
- Надежность тестирования-повторного тестирования
- Надежность параллельных форм
- Последовательность решений
Ниже мы постарались все это объяснить на примере.
Надежность тестирования-повторного тестирования
Чтобы оценить надежность повторного тестирования, одна группа испытуемых выполнит процесс тестирования с разницей в несколько дней или недель. Время должно быть достаточно коротким, чтобы можно было оценить навыки испытуемых в данной области. Связь между оценками экзаменуемого от двух разных администраций оценивается посредством статистической корреляции. Этот тип надежности демонстрирует, в какой степени тест может давать стабильные, согласованные результаты во времени.
Надежность параллельных форм
Многие экзамены имеют несколько форматов вопросников, эти параллельные формы экзаменов обеспечивают безопасность. Надежность параллельных форм оценивается путем проведения обеих форм экзамена для одной и той же группы испытуемых. Баллы испытуемых по двум формам теста коррелируют, чтобы определить, насколько схожи функции этих двух форм. Эта оценка надежности является мерой того, насколько согласованные результаты экзаменов могут быть получены в разных формах тестирования.
Последовательность решений
После выполнения Test-Retest Reliability и Parallel Form Reliability мы получим результат сдачи или неудачи экзаменуемых. Именно надежность этого классификационного решения оценивается по надежности согласованности решения.
Важность тестирования надежности
Для повышения производительности программного продукта и процесса требуется тщательная оценка надежности. Тестирование надежности программного обеспечения в значительной степени поможет менеджерам по программному обеспечению и специалистам-практикам.
Чтобы проверить надежность программного обеспечения путем тестирования: -
- Большое количество тестовых примеров следует выполнять в течение длительного периода времени, чтобы выяснить, как долго программное обеспечение будет работать без сбоев.
- Распределение тестовых примеров должно соответствовать фактическому или запланированному рабочему профилю программного обеспечения. Чем чаще выполняется функция программного обеспечения, тем больший процент тестовых примеров следует назначать этой функции или подмножеству.
Инструменты тестирования надежности
Некоторые из инструментов тестирования надежности, используемых для проверки надежности программного обеспечения:
1. WEIBULL ++: - Анализ данных срока службы надежности
2. RGA: - Анализ роста надежности
3. RCM: - Техническое обслуживание, ориентированное на надежность
Резюме:
Тестирование надежности - важная часть программы разработки надежности. Вернее, это душа инженерной программы надежности.
Кроме того, тесты надежности в основном предназначены для выявления конкретных видов отказов и других проблем во время тестирования программного обеспечения.
В программной инженерии тестирование надежности можно разделить на три сегмента:
- Моделирование
- Измерение
- Улучшение
Факторы, влияющие на надежность программного обеспечения
- Количество неисправностей в программном обеспечении
- Как пользователи работают с системой