Що таке тестування на витривалість у тестуванні програмного забезпечення? (з прикладом)

⚡ Розумний підсумок

Тестування на витривалість передбачає тривале виконання застосунку під нормальним очікуваним навантаженням, щоб виявити, чи знижується продуктивність з часом. Це тест, який виявляє дефекти, яких не може досягти запуск за годину навантаження.

  • 🕒 Тривале навантаження: Очікуваний виробничий трафік утримується годинами або днями, а не хвилинами.
  • 📉 Фокус деградації: Питання полягає в тому, чи збільшується час реагування, а не в тому, чи досягнуто мети одного разу.
  • 💧 Загальні висновки: Витоки пам'яті, вичерпання пулу підключень та необмежене зростання журналу або кешу.
  • 📊 Набір для моніторингу: Пам'ять, процесор, час відгуку, пропускна здатність та підключення до бази даних протягом усього запуску.
  • 🛠️ інструменти: Стандартні інструменти завантаження керують трафіком, тоді як інструменти APM фіксують криві ресурсів.
  • 🇧🇷 Компроміс: Результати мають високу цінність, але їх отримання відбувається повільно, що обмежує частоту проведення тесту.

Що таке випробування на витривалість

Що таке тестування на витривалість?

Випробування на витривалість це нефункціональний тип тестування програмного забезпечення, коли програмне забезпечення тестується з високим навантаженням протягом значного проміжку часу, щоб оцінити поведінку програмного додатка при тривалому використанні. Основна мета тестування на довговічність полягає в тому, щоб переконатися, що програма достатньо здатна витримувати тривале навантаження без будь-якого погіршення часу відгуку.

Цей тип тестування виконується на останньому етапі циклу виконання продуктивності. Випробування на витривалість – це тривалий процес, іноді навіть до року. Це може включати застосування зовнішніх навантажень, таких як Інтернет-трафік або дії користувача. Це відрізняє тестування на витривалість від Тестування навантаження, яка зазвичай закінчується приблизно через пару годин.

Витривалість означає потужність, отже, іншими словами, ви можете назвати тестування на витривалість як тестування потужності.

Цілі тестування на витривалість

  • Основна мета тестування на витривалість – перевірити наявність витоків пам’яті.
  • Щоб дізнатися, як працює система при тривалому використанні.
  • Щоб переконатися, що після тривалого періоду час відгуку системи залишатиметься таким самим або кращим, ніж на початку тесту.
  • Щоб визначити кількість користувачів і/або транзакцій, яка буде підтримуватися певною системою та відповідати цілям продуктивності.
  • Щоб керувати майбутніми навантаженнями, нам потрібно зрозуміти, скільки додаткових ресурсів (як-от ємність процесора, ємність диска, використання пам’яті або пропускна здатність мережі) необхідно для підтримки використання в майбутньому.
  • Перевірка на довговічність зазвичай проводиться шляхом перевантаження системи або зменшення певних ресурсів системи та оцінки наслідків.
  • Це виконується для того, щоб гарантувати, що дефекти або витоки пам’яті не відбуваються після того, що вважається відносно «нормальним» періодом використання.

Що слід контролювати під час випробувань на витривалість

Випробування на витривалість

Під час тестування на витривалість перевіряються такі речі.

  • Перевірте витік пам'яті– Виконуються перевірки, щоб перевірити, чи є витік пам’яті в програмі, який може спричинити збій системи чи ОС
  • Перевірте замикання з'єднання між рівнем системи – Якщо з’єднання між рівнями системи не закрито успішно, деякі або всі модулі системи можуть зупинитися.
  • Тестове підключення до бази даних успішно закрито– Якщо підключення до бази даних не закрито успішно, це може призвести до збою системи
  • Час відгуку тесту – Система перевіряється на час відгуку системи, оскільки програма стає менш ефективною в результаті тривалого використання системи.

Як проводити випробування на витривалість

Нижче наведено базовий підхід до тестування на витривалість

  • Тестове середовище – Визначте обладнання, програмне забезпечення, операційну систему, необхідні для тестування на довговічність, розподіл ролей і обов’язків у команді тощо. Середовище має бути готове до виконання тесту. Вам також потрібно оцінити загальний обсяг виробництва бази даних і щорічне зростання. Це потрібно, оскільки вам потрібно перевірити, як ваша програма відреагує через рік, два чи п’ять.
  • Створення плану тестування, сценарії – Залежно від характеру тестування – вручну, автоматизації або комбінації обох, Тестовий випадок дизайн, огляди та виконання повинні бути сплановані. Тестування для навантаження на систему, тестування точки зупинки тощо також має бути частиною плану тестування. Тестування на навантаження системи визначає точку зупинки в додатку.
  • Тестова оцінка – Надайте оцінку того, скільки часу знадобиться для завершення етапу тестування. Його слід аналізувати на основі кількості залучених тестувальників і кількості необхідних циклів тестування.
  • Аналіз ризиків – Аналіз ризику та вжиття відповідних заходів для запобігання. Пріоритезація тестових випадків відповідно до фактора ризику та виявлення нижче ризиків і проблем, які тестувальник може провести під час тесту на довговічність.
  • Чи продуктивність залишатиметься постійною з часом?
  • Чи є інші незначні проблеми, які ще не виявлені?
  • Чи існує зовнішнє втручання, яке не було розглянуто?
  • Розклад випробувань – Визначте бюджет, результати в терміни. як Випробування на витривалість застосовує велике, але природне розташування транзакцій до системи/програми протягом тривалого періоду часу.

Приклад тестування на витривалість

У той час як Стресові випробування доводить тестовану систему до її меж, Випробування на витривалість доводить до ліміту програму через деякий час.

Наприклад, найскладніші проблеми – витоки пам’яті, використання сервера бази даних та зависання системи – виникають, коли програмне забезпечення працює протягом тривалого періоду часу. Якщо ви пропустите тести на витривалість, ваші шанси виявити такі дефекти до розгортання досить низькі.

Інструменти тестування на витривалість

  • WebLOAD
  • Завантаження завершено
  • Apache JMeter
  • LoadRunner
  • Appvance
  • LoadUI
  • OpenSTA
  • Rational Performance Tester

Переваги тестування на витривалість

  • Це допомагає визначити, яке робоче навантаження може витримати система під навантаженням.
  • Надає точні дані, які клієнт може використовувати для перевірки або покращення своїх потреб у інфраструктурі.
  • Визначає проблеми продуктивності, які можуть виникнути після того, як система працювала на високому рівні протягом тривалого періоду часу
  • Типові проблеми виявляються під час невеликих цільових тестів продуктивності, що означає, що програма залишається доступною навіть за великого навантаження за дуже короткий проміжок часу.
  • Тест на витривалість також використовується, щоб перевірити, чи є погіршення продуктивності після тривалого періоду виконання

Недоліки тестування на витривалість

  • Часто важко визначити, скільки стресу варто застосовувати.
  • Тестування на довговічність може призвести до збоїв програми та/або мережі, що може призвести до значних збоїв, якщо Тестове середовище не ізольовані.
  • Постійна втрата або пошкодження даних може статися через надмірне навантаження на систему.
  • Використання ресурсів залишається дуже високим після усунення стресу.
  • Деякі компоненти програми не відповідають.
  • Необроблені винятки спостерігаються кінцевим користувачем.

Як цей тест підходить для сімейства тестів продуктивності

Тестування продуктивності – це загальний термін. Варіанти, наведені нижче, відрізняються лише формою прикладеного навантаження та тривалістю його утримання, тому їх так часто плутають один з одним.

Тип тесту Схема навантаження Питання, на яке воно відповідає
Тестування навантаженням Очікуване пікове навантаження, короткочасна тривалість Чи досягає система своїх цілей за нормальних пікових навантажень?
Стресові випробування Збільшення за межі ємності до відмови Де воно ламається, і чи виходить з ладу належним чином?
Спайкове тестування Раптовий екстремальний сплеск, потім відмова Чи виживе воно та відновиться після дорожнього шоку?
Випробування на витривалість Нормальне навантаження витримується протягом багатьох годин Чи знижується продуктивність з часом?
Випробування замочуванням Постійне навантаження протягом тривалого періоду Чи є витоки пам'яті або виснаження ресурсів?
Тестування стабільності Зміна навантаження залежно від умов Чи залишається система надійною, коли умови змінюються?
Об'ємне тестування Звичайні користувачі, дуже великий обсяг даних Чи справляється воно зі зростанням бази даних?

Випробування на витривалість та замочування часто розглядаються як синоніми. У загальному вжитку це: обидва витримують стійке навантаження протягом тривалого періоду. Там, де команди їх розрізняють, тестування на витривалість зосереджується на тому, чи збільшується час відгуку, тоді як тестування на замочування зосереджується на споживанні ресурсів, таких як пам'ять, дескриптори файлів та пули підключень. Запуск одного з них зазвичай дає докази для обох.

Ключові показники для відстеження під час тестування

Якість продуктивності залежить від того, як добре ви записуєте під час його виконання. Зафіксуйте ці шість показників на стороні сервера та клієнта, а потім порівняйте їх з базовим рівнем, а не з інтуїцією.

Metric Що це вам говорить Попереджувальний знак
Середній час відгуку Типовий досвід користувача Будь-який висхідний дрейф поперек траси
Час відповіді 95-го процентиля Досвід найповільніших користувачів Значно вище середнього, що означає нестабільність
Пропускна здатність Запитів, оброблених за секунду Падіння при постійному навантаженні
Частота помилок Частка невдалих або запитів, що минули за часом Будь-яке підвищення вище узгодженого порогу
Використання процесора та пам'яті Запас ресурсів сервера Пам'ять, що піднімається і ніколи не повертається
Підключення до бази даних та потоки Виснаження в басейні Кількість, яка постійно зростає без релізу

Прочитайте середнє значення та процентиль разом. Середнє значення 800 мс з 95-м процентилем 900 мс описує стабільну систему. Таке ж середнє значення з 95-м процентилем 9 секунд означає, що один користувач з двадцяти переживає невдалі часи, і середній показник це приховує.

Звертайте увагу на форму, а не лише на значення. У будь-якому тривалому тесті рівна лінія ресурсу вважається пройденим, а зростаюча – витоком, навіть якщо абсолютне число все ще комфортно знаходиться в межах ліміту на момент завершення тесту.

Випробування на витривалість: ключові висновки

  • In Розробка програмного забезпечення, Тестування на витривалість є підмножиною тестування навантаження.
  • Випробування на витривалість – це тривалий процес, який іноді триває навіть рік
  • Перевірки проводяться для перевірки
  • Перевірте витік пам'яті
  • Час відгуку тесту
  • Перевірте підключення до бази даних тощо.

Поширені запитання

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

Будь-яка стійка тенденція до зростання часу відгуку або використання ресурсів, навіть якщо не порушено жодного порогу. Дефектом є сам дрейф, оскільки він зрештою перетне ліміт у виробництві.

Після успішного проходження функціонального та навантажувального тестування, і достатньо рано, щоб виявлену витік ще можна було виправити. Запуск напередодні релізу не залишає часу на вжиття заходів щодо результату.

Моніторинг на основі штучного інтелекту виявляє точку, в якій метрика змінює тренд, і співвідносить її з розгортаннями або запланованими завданнями, перетворюючи години графіків на конкретного підозрюваного.

Це може допомогти у визначенні пріоритетів. Моделі ризиків виділяють, які релізи коду схильні до витоку сенсорних вражень, тому повні запуску резервуються для змін, які, найімовірніше, їх потребуватимуть.

Підсумуйте цей пост за допомогою: