на помилкове розуміння того, що інструменти для навантажувального тестування системи - це інструменти такі ж за принципом запису і відтворення як і інструменти для автоматизації регресійного тестування. Інструменти для навантажувального тестування працюють на рівні протоколу, тоді як інструменти для автоматизації регресійного тестування працюють на рівні об'єктів графічного інтерфейсу користувача.
Наприклад:
Мається стандартний інтернет-браузер, що виконує функцію переходу за вказаним посиланням при натисканні кнопки.
У даному випадку для автоматизації регресійного тестування необхідно написати скрипт, передавальний браузеру клік мишею і натискання кнопки, у той час як для створення скрипта для навантажувального тестування необхідно написати передачу гіперпосилання від браузера для декількох користувачів, включаючи унікальні для кожного з них ім'я користувача та пароль.
Існують різні інструменти для виявлення і дослідження проблем в різних вузлах системи. Всі вузли системи можуть бути класифіковані наступним чином:
· додаток;
· база даних;
· мережу;
· обробка на клієнтській стороні;
· балансування навантаження.
Також слід відзначити появу мережевих Business-to-business (B2B) додатків, що використовують угоду про рівень послуг (або SLA, Service Level Agreement). Наростаюча популярність B2B додатків призвело до того, що все більше додатків переходить на сервіс-орієнтовану архітектуру, у разі якої обмін інформацією відбувається без участі веб-браузерів. Прикладом такої взаємодії може служити бюро туристичних послуг, запитуюча інформацію про певний авіарейсі між Санкт-Петербургом і Омському, в той час як авіакомпанія зобов'язана надати відповідь протягом 5 секунд. Часто порушення договору про SLA загрожує великим штрафом.
Міфи тестування продуктивності.
1. Тестування продуктивності проводиться з метою зламати систему. Стрес тестування робиться з метою знайти критичну точку міцності системи. В інших же випадках, звичайне тестування навантаження робиться з метою дослідити поведінку системи при очікуваній навантаженні. Залежно від інших вимог, може знадобитися тестування стабільності, конфігураційне або стрес-тестування.
. Тестування продуктивності повинно здійснюватися тільки після Інтеграційного тестування продуктивності Хоча це практично норма в індустрії створенні ПО, тестування продуктивності може також проводитися на первинній стадії розробки програми. Такий підхід називається Раннє тестування продуктивності. Він допомагає цілісного підходу до розробки, враховуючи параметри продуктивності і, таким чином, зменшує не тільки ймовірність знаходження проблеми продуктивності безпосередньо перед релізом, але і вартість виправлення подібних проблем.
. Тестування продуктивності складається тільки з написання скриптів і будь-яка зміна в додатку призводить до невеликого рефакторингу цих скриптів. Тестування продуктивності саме по собі - це розвивається галузь індустрії програмного забезпечення. Написання скриптів, хоч і важлива, але всього лише частина тестування продуктивності. Найбільш складне завдання для фахівця з тестування - це визначення необхідних до проведення тестів і аналіз різних метрик продуктивності для виявлення вузьких місць системи.
Інша частина міфу, щодо невеликих змін в скриптах теж неправда, оскільки будь-які зміни в UI, особливо в мережевому протоколі, призведе до повного переписування скриптів з самого початку. Проблема стає більш відчутною у разі використання таких протоколів, як Web Services, Siebel, Citrix, SAP.
. Стрес-тестування, тестування навантаження і тестування стабільності це одне і те ж. Один з найпоширеніших міфів, пов'язаний з непорозумінням термінології. Стрес-тестування і тестування навантаження - два різних види діяльності, яка називається загальним терміном тестування продуктивності, і вирішальних різні завдання. Завдання стрес-тестування - знайти критичну точку міцності системи при навантаженнях значно перевищують очікуваних або ж диспропорційних; задача навантажувального тестування - перевірити відповідність системи вимогам при очікуваній навантаженні.
Навантажувальне тестування.
Навантажувальне тестування (англ. load testing ) - визначення або збір показників продуктивності та часу відгуку програмно-технічної системи або пристрою у відповідь на зовнішній запит з метою встановлення відповідності вимогам, що пред'являються до даної системи (пристрою).
Для дослідження часу відгуку системи на високих або пікових навантаженнях проводиться стрес-т...