В этом сообщении блога будет рассказано, что такое тестирование на выносливость, как его проводить и следующее
Что такое тестирование на выносливость?
Тестирование на выносливость относится к нефункциональному тестированию, оно проверяет производительность системы при определенных условиях нагрузки в течение длительного периода времени. Мы можем оценить поведение системы, чтобы убедиться, что программное обеспечение способно справляться с расширенной нагрузкой без ухудшения отклика. Это также известно как тестирование на выдержку.
Здесь мы будем проводить тестирование на выносливость в течение более длительного периода времени в зависимости от требований, это может быть 12 часов, 72 часа или даже больше. Именно это отличает тестирование на выносливость от других видов тестирования производительности, таких как стрессовое или нагрузочное тестирование, поскольку оно отслеживает стабильность системы в течение длительного периода времени.
- Это нефункциональный тип тестирования, поэтому мы используем такие инструменты автоматизации, как Apache Jmeter, LoadRunner, Appavance IQ и т. д.
- Поскольку тестирование должно выполняться в течение длительного периода времени без перерыва, мы можем запланировать его на выходные. .
- Основные проблемы, обнаруженные при тестировании на выносливость, включают утечку памяти, проблемы с подключением, ухудшение времени отклика и т. д.
- В ходе тестирования на выносливость мы внимательно отслеживали использование памяти и снижение производительности, чтобы выявить потенциальные утечки и слабые места.
- оптимальное время для начала тестирования на выносливость — до развертывания и после нагрузочного тестирования.
Не пропустите: функциональное и нефункциональное тестирование
Почему мы сделать тестирование на выносливость?
Когда наше приложение используется клиентом, будет происходить постепенная утечка памяти. В краткосрочной перспективе это не повлияет на систему, но со временем файлы журналов разрастаются, что приводит к нехватке места на диске, а процесс очистки от мусора может увеличить стоимость обслуживания.
Давайте возьмем пример, чтобы понять это. Игровой веб-сайт создает множество серверных файлов для сеанса, когда пользователь играет на нем в какие-либо игры. Файлы удаляются после завершения сеанса. Эти веб-сайты могут хорошо работать при высокой нагрузке в течение короткого периода времени. Но если загрузка продолжается в более длительном сеансе, создается больше файлов, память может быть исчерпана или даже утечка. Это может привести к сбою сервера и повлиять на пользователей.
- Тестирование на выносливость позволяет убедиться, что программное приложение достаточно эффективно для обработки такой возросшей нагрузки без сбоев времени отклика.
- Оно проверяет наличие утечки памяти в таких экстремальных условиях.
- Это помогает нам гарантировать надежность и стабильность продукт.
- Он отслеживает, как система работает при длительном использовании.
- Он также может выявлять проблемы с подключением к базе данных.
- Он проверяет, перезапускаются ли обработчики файлов.
- Он следит за тем, чтобы циклирование журналов не выполнялось. подходит.
Как проводить испытания на выносливость?
Прежде чем приступить к тестированию на выносливость, мы должны изучить как бизнес-требования, так и системные требования, чтобы понять, нужно ли нам тестирование на выносливость. Если мы уже провели тестирование на выносливость и просто добавляем новую функцию в программное обеспечение, то оно может не потребоваться, поскольку время отклика может ухудшиться в результате длительного тестирования. Но если это новое приложение, это необходимо.
Обратите внимание, что мы должны проводить тестирование на выносливость организованно, систематически и планомерно, а не от случая к случаю. Поэтому обычно это делают специалисты по тестированию производительности, которые знают, как создать и выполнить комплексный план тестирования.
Мы можем провести тестирование на выносливость, выполнив следующие шаги:
Шаг 1. Планирование тестирования
Мы начинаем создавать план тестирования, уточняем требования к ресурсам, стоимость и примерное время завершения тестирования. Наряду с этим мы решаем, какие методы тестирования мы будем использовать, ручное или автоматизированное или и то, и другое, стратегии, инструменты, как долго мы собираемся выполнять нужный нам тест.
Другие требования, такие как оборудование, программное обеспечение, сеть и другие элементы, необходимые для проведения испытаний на выносливость, перечислены ниже.
Не пропустите: стратегия тестирования по сравнению с планом тестирования
Шаг 2. Дизайн тестового набора
На этом этапе мы создаем, разрабатываем, просматриваем и дорабатываем тестовые наборы. Мы строим стратегию тестирования на основе этого шага. Также мы определяем временные рамки, точку останова, нагрузку, стресс, который мы применяем к системе во время тестирования на выносливость.
Шаг 3. Среда тестирования
На этом этапе мы создаем среду тестирования. На основе плана тестирования мы собираем все требования, такие как оборудование, программное обеспечение, инструменты, операционная система, сеть и т. д. Наша цель — создать среду, похожую на рабочую среду
Шаг 4. Выполнение теста
На этом этапе мы выполняем выполнение, если во время тестирования вы обнаружите какие-либо ошибки, вы можете записать их и создать отчет об ошибке. Мы видели, остается ли производительность стабильной с течением времени, какие внешние интерфейсы влияют на приложение, есть ли какие-то незначительные проблемы, которые еще не устранены, и т. д.
Шаг 5. Закрытие
Здесь , выполнение завершается, когда цикл тестирования удовлетворяет критериям выхода. Мы создадим отчет, содержащий выявленные проблемы, выводы и окончательный отчет о приложении.
Что отслеживать при тестировании на выносливость?
Используя собранную статистику использования и ежедневную нагрузку сайта, мы определяем пиковую нагрузку. Используя эти исторические данные в качестве ориентира, мы можем рассчитать среднюю нагрузку, которую мы собираемся применить к системе во время тестирования. Если это новое приложение, данные могут быть недоступны, тогда можно учитывать 50%, 60% или 70% нагрузки.
Утечка памяти: мы должны проверить, нет ли утечки памяти в приложение, оно часто может привести к сбою вашего приложения или операционной системы.
Нормальное время отклика:Мы должны следить за временем отклика программного обеспечения, так как длительное использование может повлиять на производительность системы, что приводит к менее эффективному времени отклика.
Закрытие соединения между различными уровнями системы: мы должны посмотрите, правильно ли закрываются разные слои системного модуля. Если она не будет успешно закрыта, это может привести к остановке некоторых или всех модулей в приложении.
Успешное закрытие тестовой базы данных:Мы должны проверить, правильно ли закрывается база данных, иначе это может привести к сбою нашего приложения.
Ухудшение времени отклика: мы можем обнаружить ухудшение времени отклика, это поможет разработчикам решить проблему и предоставить надежную систему.
Преимущества тестирования на выносливость
- Это помогает нам находить ошибки, связанные с утечкой памяти.
- Это гарантирует надежность программного приложения.
- Создание лучшей инфраструктуры дает дополнительное преимущество, когда мы выявляем ошибки и исправляем их.
- Это помогает нам находить проблемы, связанные с производительностью, и проверять надежность программного обеспечения.
- Он проверяет устойчивость системы с течением времени.
- Это снижает затраты на обслуживание, поскольку мы выявляем эти проблемы на ранней стадии.
- Он выявляет проблемы, которые мы могли не заметить при проведении других тестов производительности.
- Это может дать нам точное значение того, какую нагрузку система может выдерживать в течение длительного времени.
- Это дает нам уверенность в приложении и обеспечивает удовлетворенность клиентов.
Недостатки тестирования на выносливость
- Проверка на выносливость может занять много времени.
- Нам нужны эксперты, обладающие знаниями в области автоматизации и инструментами автоматизации, поскольку это невозможно выполнить вручную.
- Это может стоить дорого, так как мы должны запускать систему в течение длительного времени.
- При проведении тестирования на выносливость мы должны изолировать тестовую среду от реальной, поскольку это может повлиять на производительность реальной. В результате мы создаем другую инфраструктуру, не связанную с текущей.
- Мы часто не знаем, какую нагрузку стоит применять.
- Если мы перегружаем систему, это может привести к безвозвратной потере или повреждению данных
- Конечный пользователь может заметить эти необработанные исключения.
Пример тестирования на выносливость в реальном времени
В идеальном сценарии тестирование на выносливость должно выполняться как можно дольше с другим набором нагрузок, чтобы понять, где система становится нестабильной. Но мы можем работать с данными инструментами, средой и ресурсами только с временной шкалой.
Вот пример тестирования на выносливость в режиме реального времени.
Допустим, объявлено о закрытии, и клиент не может посетить физическое местонахождение банка. Поэтому большое количество транзакций будет происходить онлайн. Банковский веб-сайт и мобильное приложение должны быть способны обрабатывать такой огромный набор транзакций в течение длительного периода времени. Мы должны убедиться, что система может работать бесперебойно, без каких-либо утечек данных или сбоев.
Чтобы избежать любого сбоя в последнюю минуту, мы можем провести тестирование на выносливость с нашим банковским приложением.
Мы можем начать с назначения 1000 транзакций для обработки в течение 1 часа и посмотреть, как система обрабатывает такие запросы. Позже мы можем увеличить транзакцию до 2000 за 1 час. Мы можем увеличить нагрузку и продолжительность теста в зависимости от заданных требований.
Другим примером могут быть поисковые системы, такие как Google. Есть миллионы людей, которые будут использовать его по всему миру. Он имеет различные сценарии, такие как бездействие панели поиска в течение длительного времени, выход пользователя или оставление без присмотра в середине поиска, активный поиск информации и многое другое. Другими примерами могут быть социальные сети, служба электронной почты, игровые приложения и т. д., к которым миллионы пользователей будут обращаться и использовать их в течение длительного времени.
Поэтому мы должны убедиться, что наше приложение имеет высокое время отклика, хорошее подключение в уровни базы данных и системы без ущерба для памяти. Тестирование на выносливость может занимать много времени и требует много ресурсов, но если все сделано правильно, мы можем гарантировать высокую производительность нашей системы.
TAG: qa