Поняття тестування навантаження
Навантажувальне тестування – це один з елементів комплексного тестування продуктивності, спрямований на аналіз швидкості реакції системи на зовнішній запит. Головна мета даної перевірки – з'ясувати, чи відповідає заявленим вимогам додаток (пристрій), що тестується. Цей метод широко використовується в професійних колах під час тестування продукту, коли необхідно зрозуміти, як буде реагувати програма на одночасну експлуатацію певною кількістю користувачів.
Навантажувальне тестування найчастіше застосовується для дослідження багатокористувацьких ресурсів і різноманітних загальних систем, але інші види програмних продуктів також можуть бути протестовані цим методом. Наприклад, можна перевірити, чи зможе графічний редактор впоратися з відкриттям зображення великого обсягу. Також можна з'ясувати, чи здатна система сформувати фінансовий звіт, проаналізувавши дані декількох місяців, або навіть років. Якісно створений навантажувальний тест забезпечить найбільш достовірними результатами.
Основною ідеєю навантажувального тестування є створення певного навантаження за допомогою однакових апаратних і програмних забезпечень, щоб відстежити індекс продуктивності продукту. Найефективнішим цей метод буде на ранніх етапах розробки, тому що такий підхід дозволить отримати оптимальні результати вимірювання показників продуктивності системи.
Основні принципи навантажувального тестування:
- Унікальність запитів. Під час складання сценарію слід враховувати реальні статистичні дані, вимоги, очікувану поведінку системи.
- Час відгуку системи. Керуючи певним собі числом вимірів, можна визначити до якого інтервалу часу потрапить той чи інший запит.
- Розподіл системи залежить від часу відгуку. Кількість вузлів впливає на розкид часу відгуку системи, кожен з яких збільшує величину затримки при скануванні запитів. Цей факт варто врахувати під час складання вимог до продуктивності продукту.
- Коректність відтворення навантажувальних профілів. Складність програмного забезпечення вимагає значних витрат часу і ресурсів на проєктування, програмування і подальшу підтримку. Розробка тестів і покриття функціоналу системи повинні бути збалансованими для отримання найбільш ефективних результатів тестування в максимально короткі терміни.