естування, при якому створювана на систему навантаження перевищує нормальні сценарії її використання. Не існує чіткої межі між навантажувальним і стрес-тестуванням, однак ці поняття не варто змішувати, так як ці види тестування відповідають на різні бізнес-питання і використовують різну методологію.
Навантажувальне тестування програмного забезпечення.
Термін тестування навантаження може бути використаний у різних значеннях в професійному середовищі тестування ПЗ. У загальному випадку він означає практику моделювання очікуваного використання програми за допомогою емуляції роботи декількох користувачів одночасно. Таким чином, подібне тестування найбільше підходить для багатокористувацьких систем, частіше - використовують клієнт-серверну архітектуру (наприклад, веб-серверів). Однак і інші типи систем ПЗ можуть бути протестовані подібним способом. Наприклад, текстовий або графічний редактор можна змусити прочитати дуже великий документ; а фінансовий пакет - згенерувати звіт на основі даних за декілька років. Найбільш адекватно спроектований навантажувальний тест дає точніші результати.
Основна мета навантажувального тестування полягає в тому, щоб, створивши певну очікувану в системі навантаження (наприклад, за допомогою віртуальних користувачів) і, зазвичай, використавши ідентичне програмне і апаратне забезпечення, спостерігати за показниками продуктивності системи.
Основні принципи навантажувального тестування.
В ідеальному випадку в якості критеріїв успішності навантажувального тестування виступають вимоги до продуктивності системи, які формулюються і документуються на стадії розробки функціональних вимог до системи до початку програмування основних архітектурних рішень. Однак часто буває так, що такі вимоги не були чітко сформульовані або були сформульовані зовсім. У цьому випадку перше тестування навантаження буде пробним (англ. Exploratory load testing) і ґрунтуватися на розумних припущеннях про очікувану навантаженні і споживанні апаратної частини ресурсів.
Одним з оптимальних підходів у використанні навантажувального тестування для вимірювань продуктивності системи є тестування на стадії ранньої розробки. Тестування навантаження на перших стадіях готовності архітектурного рішення з метою визначити його спроможність називається proof-of-concept тестуванням.
Основні принципи навантажувального тестування.
Нижче розглянуті деякі експериментальні факти, узагальнені в принципи, використовувані при тести?? Ован продуктивності в цілому і застосовні до будь-якого типу тестування продуктивності (зокрема і до навантажувального тестування).
. Унікальність запитів.
Навіть сформувавши реалістичний сценарій роботи з системою на основі статистики її використання, необхідно розуміти, що завжди знайдуться винятки з цього сценарію.
. Час відгуку системи.
У загальному випадку час відгуку системи підпорядковується функції нормального розподілу.
Зокрема це означає, що маючи достатню кількість вимірювань, можна визначити ймовірність з якою відгук системи на запит потрапить в той чи інший інтервал часу.
. Залежність часу відгуку системи від ступеня розподіленості цієї системи.
Дисперсія нормального розподілу часу відгуку системи на запит пропорційна відношенню кількості вузлів системи, паралельно обробних такі запити і кількістю запитів, що припадають на кожен вузол.
Тобто, на розкид значень часу відгуку системи впливає одночасно кількість запитів припадають на кожен вузол системи і сама кількість вузлів, кожен з яких додає деяку випадкову величину затримки при обробці запитів.
. Розкид часу відгуку системи.
З тверджень 1, 2 і 3 можна також зробити висновок, що при досить великій кількості вимірювань величини часу обробки запиту у будь-якій системі завжди знайдуться запити, час обробки яких перевищує певні у вимогах максимуми; причому, чим більше сумарний час проведення експерименту тим вище виявляться нові максимуми.
Цей факт необхідно враховувати при формуванні вимог до продуктивності системи, а також при проведенні регулярного навантажувального тестування.
. Точність відтворення профілів навантаження.
Необхідна точність відтворення профілів навантаження тим дорожче, чим більше компонент містить система.
Часто неможливо врахувати всі аспекти профілю навантаження для складних систем, тому що чим складніше система, тим більше часу буде витрачено на проектування, програмування і підтримку адекватного профілю навантаження для неї, що не завжди є необхідні...