481.44K

Тестирование стабильности

1.

Тестирование
стабильности

2.

О тестировании стабильности
Приложения и сайты работают в непрерывном режиме (без перезагрузки
серверов) на протяжении многих недель и месяцев. В очень крупных (глобальных)
проектах количество одновременных пользователей может быть очень большим
практически все время, при этом доступ к сайтам/приложениям должен быть
гарантирован всегда, что заставляет владельцев таких проектов проводить
тестирование стабильности (надежности, устойчивости).
QA-команды, проводящие такое тестирование, фокусируются на недопущении:
• внезапных сбоев сервиса из-за недоступности инфраструктуры
• замедления скорости и ухудшения качества сервиса
• и других последствий длительной непрерывной работы «на высоких оборотах».

3.

Важность тестирования стабильности
Итак, тестирование стабильности — это проверка стабильности
приложения/сайта, работающего длительное время в условиях
большой нагрузки. Оно помогает разработчикам и архитекторам
совершенствовать систему, делая ее более гибкой, устойчивой
к стабильно большой нагрузке, и измерить пределы выносливости.
Будет ли система гарантированно стабильной? Что можно сделать
превентивно? Какое количество одновременных
пользователей/запросов на протяжении месяца система готова
отработать без выведения в режим обслуживания? Когда проявятся
утечки памяти? На все эти вопросы помогает ответить тестирование
стабильности

4.

Проблемы, обнаруживаемые
тестированием стабильности
• Постепенное замедление системы, потеря «отзывчивости» на какихто уровнях
• Потеря части функциональности
• Неправильное/некорректное функционирование
• Со временем возможен полный отказ системы

5.

Этапы тестирования стабильности
Стандартные этапы тестирования стабильности/надежности/устойчивости системы:
1. Описать цели и масштабы тестирования, и выделить время
2. Распределить ресурсы и ответственность по задачам. Написание тест-плана,
включающего описание общей стратегии, этапов проведения, и мониторинг
3. Подготовка команды с соответствующим уровнем навыков тестирования
производительности
4. Непосредственно проведение тестирования
5. В качестве подготовительного/дополнительного этапа желательно проведение
нагрузочного тестирования
6. Репорты и их анализ

6.

Метрики, собираемые тестированием
стабильности
Проводится мониторинг системы и сбор тестовых метрик, а далее их
анализ. Метрики:
• Время обработки транзакции — как параметр, страдающий в первую
очередь
• Количество обработанных запросов к серверу в секунду
• Пропускная способность (Throughput)
• Параметры CPU, памяти и дисков

7.

Тестирование стабильности на разных
системах
Тестирование стабильности обычно включает в себя длительное воздействие на программное
обеспечение при умеренной нагрузке, чтобы проверить его устойчивость в течение
продолжительного времени. Вот несколько конкретных примеров тестирования стабильности:
1. Тестирование стабильности операционных систем
Запуск операционной системы на тестовых компьютерах и длительное воздействие на нее путем
многократного выполнения различных задач, таких как открытие приложений, работа с
документами и веб-серфинг. Цель — выявить потенциальные сбои, зависания или утечки
ресурсов после длительного использования.
2. Тестирование веб-серверов:
Загрузка веб-сервера умеренным трафиком и непрерывное взаимодействие с ним в течение
долгого времени, включая обработку запросов, авторизацию и передачу данных. Цель —
обнаружить проблемы, связанные с производительностью и стабильностью веб-сервера при
постоянной работе.

8.

Тестирование стабильности на разных
системах
3. Тестирование мобильных устройств:
Запуск мобильных устройств под нагрузкой в течение продолжительного времени. Последовательное
выполнение множества приложений и сценариев использования, а также непрерывная работа с
мобильными приложениями. Цель — проверить, как мобильные устройства справляются с
длительным использованием и разнообразными задачами.
4. Тестирование стабильности баз данных:
Нагрузочное тестирование баз данных с постоянным обновлением, вставкой и извлечением данных.
Это включает в себя долгосрочное тестирование. Чтобы оценить, как базы данных обрабатывают
запросы и поддерживают стабильность при постоянных изменениях данных.
5. Тестирование мультимедийных приложений:
Запуск мультимедийных приложений, таких как видеоплееры, аудиоредакторы и 3D-графические
программы. На них непрерывно воспроизводится мультимедийный контент в течение
продолжительного времени. Цель — проверить, как приложения управляют ресурсами и
поддерживают стабильность воспроизведения.

9.

Критерии успешного завершения
тестирования стабильности
• Отсутствие критических сбоев в течение продолжительного времени.
• Устойчивая работа приложения при высокой нагрузке.
• Отсутствие утечек ресурсов.
• Успешное восстановление после сбоев.
English     Русский Rules