what is scalability testing
Вступ до тестування масштабованості:
Тестування масштабованості - це нефункціональна методологія тестування, в якій ефективність програми вимірюється з точки зору її здатності збільшувати або зменшувати кількість запитів користувачів або інших таких атрибутів міри продуктивності.
як написати css селектор в селені -
Тестування на масштабованість можна проводити на апаратному, програмному або базі даних.
Параметри, що використовуються для цього тестування, відрізняються від програми до програми, для веб-сторінки це може бути кількість користувачів, використання центрального процесора, використання мережі, тоді як для веб-сервера це буде кількість оброблених запитів.
Цей посібник надасть вам повний огляд Тестування на масштабованість разом із його атрибутами та різними етапами, пов’язаними з виконанням тесту, на практичних прикладах, щоб ви могли краще зрозуміти концепцію.
Що ви дізнаєтесь:
- Тестування масштабованості проти тестування навантаження
- Атрибути тестування масштабованості
- Кроки для перевірки масштабованості програми
- Висновок
- Рекомендована література
Тестування масштабованості проти тестування навантаження
Тестування навантаження вимірює додаток, що перевіряється, при максимальному навантаженні, при якому система може вийти з ладу. Основна мета тестування навантаження полягає у визначенні точки піку, після якої користувачі не зможуть користуватися системою.
Як навантаження, так і масштабованість підпадають під методологію тестування продуктивності.
Масштабованість відрізняється від тестування навантаження тим, що тест масштабованості вимірює систему на мінімальному та максимальному навантаженнях на всіх рівнях, включаючи програмне, апаратне та бази даних. Як тільки буде встановлено максимальне навантаження, розробники повинні відповісти належним чином, щоб забезпечити масштабованість системи після певного завантаження.
Приклад: Якщо тестування масштабованості визначає максимальне навантаження 10 000 користувачів, то для того, щоб система стала масштабованою, розробники повинні вжити заходів щодо таких факторів, як зменшення часу відгуку після досягнення ліміту 10 000 користувачів або збільшення обсягу оперативної пам'яті для розміщення зростаючих даних користувачів.
Тестування навантаження передбачає одночасне максимальне навантаження на розроблені програми, тоді як тестування масштабованості передбачає поступове збільшення навантаження протягом певного періоду поступово.
Тестування навантаження визначає момент аварійного завершення роботи програми, тоді як масштабованість намагається виявити причину збою програми та вжити заходів для вирішення проблеми.
Коротше кажучи, Тестування навантаження допомагає виявити проблеми з продуктивністю, тоді як тестування масштабованості допомагає визначити, чи може система масштабуватися до зростаючої кількості користувачів.
Атрибути тестування масштабованості
Атрибути тесту на масштабованість визначають показники продуктивності, на основі яких буде проводитися це тестування.
Нижче наведено деякі загальні атрибути:
1) Час відповіді:
- Час відповіді - це час між запитом користувача та відповіддю програми. Це тестування проводиться для виявлення часу відгуку сервера при мінімальному навантаженні, пороговому навантаженні та максимальному навантаженні, щоб визначити точку, в якій програма зламається.
- Час відповіді може збільшуватися або зменшуватися залежно від різного навантаження користувача на програму. В ідеалі, час відгуку програми зменшуватиметься із збільшенням навантаження користувача.
- Програму можна вважати масштабованою, якщо вона може забезпечити однаковий час відгуку для різних рівнів завантаження користувача.
- У випадку кластерних середовищ, де навантаження програми розподіляється між кількома серверними компонентами, тестування масштабованості повинно вимірювати ступінь розподілу навантаження балансувальним навантаженням між кількома серверами. Це гарантуватиме, що один сервер не буде перевантажений запитами, поки інший сервер сидить без діла і чекає надходження запиту.
- Час відгуку кожного серверного компонента повинен бути ретельно виміряний, якщо додаток розміщується в кластерному середовищі, а тестування масштабованості повинно переконатися, що час відгуку кожного серверного компонента повинен бути однаковим, незалежно від величини навантаження, що розміщується на кожному сервері.
- Приклад: Час відповіді можна виміряти як час, коли користувач вводить URL-адресу у веб-браузері до часу, до якого веб-сторінка займає завантаження вмісту. Чим менше час відгуку, тим вищою буде продуктивність програми.
2) Пропускна здатність:
- Пропускна здатність - це міра кількості запитів, оброблених додатком за одиницю часу.
- Результат пропускної здатності може відрізнятися в залежності від додатка. Якщо це веб-додаток, пропускна здатність вимірюється як кількість запитів користувачів, оброблених за одиницю часу, і якщо це база даних. пропускна здатність вимірюється через кількість запитів, оброблених за одиницю часу.
- Додаток вважається масштабованим, якщо він може забезпечити однакову пропускну здатність для різних рівнів навантаження на внутрішні програми, апаратне забезпечення та базу даних.
3) Використання процесора:
- Використання ЦП - це показник використання ЦП для виконання завдання програмою. Використання центрального процесора зазвичай вимірюється в одиницях Мегагерц.
- В ідеалі, чим більше оптимізований код програми, тим меншим буде споживання CPU.
- Для цього багато організацій використовують стандартні практики програмування, щоб мінімізувати використання процесора.
- Приклад: Видалення мертвого коду в додатку та мінімізація використання Thread. Методи сну є однією з найкращих практик програмування для мінімізації використання процесора.
4) Використання пам'яті:
- Використання пам’яті - це міра пам’яті, яку споживає програма для виконання завдання.
- В ідеалі пам’ять вимірюється байтами (MegaBytes, GigaBytes або Tera Bytes), які розробляється програма використовує для доступу до оперативної пам'яті (RAM).
- Використання пам'яті програми можна звести до мінімуму, дотримуючись найкращих практик програмування.
- Прикладами найкращих практик програмування може бути не використання зайвих циклів, зменшення звернень до бази даних, використання кеш-пам’яті, оптимізація використання запитів SQL тощо. Додаток вважається масштабованим, якщо воно мінімізує використання пам’яті для максимально можливий обсяг.
- Приклад: Якщо місця для зберігання, доступного для вказаної кількості користувачів, не вистачає, то розробник буде змушений додати додаткове сховище бази даних, щоб компенсувати втрату даних.
5) Використання мережі:
- Використання мережі - це величина пропускної здатності, споживаної тестованою програмою.
- Метою використання мережі є зменшення мережевої перевантаженості. Використання мережі вимірюється через байти, отримані в секунду, кадри, отримані в секунду, отримані та відправлені сегменти в секунду тощо.
- Такі методи програмування, як використання методів стиснення, можуть допомогти зменшити перевантаження та мінімізувати використання мережі. Додаток вважається масштабованим, якщо він може працювати з мінімальними перевантаженнями мережі та забезпечувати високу продуктивність програми.
- Приклад: Замість того, щоб слідувати механізму черги для обробки запитів користувачів, розробник може написати код для обробки запитів користувачів як і коли запит надходить у базу даних.
Окрім цих параметрів, є кілька інших менш використовуваних параметрів, таких як час відповіді на запит сервера, час виконання завдання, час транзакції, час завантаження веб-сторінки, час отримання відповіді з бази даних, час перезавантаження, час друку, час сеансу, перехід на екран , транзакції в секунду, звернення в секунду, запити в секунду тощо.
Атрибути тестування на масштабованість можуть відрізнятися в залежності від програми, оскільки показник продуктивності веб-додатків може бути не таким, як показник робочого столу або програми клієнт-сервер.
Кроки для перевірки масштабованості програми
Основною перевагою проведення цього тестування на програмі є розуміння поведінки користувача при досягненні максимального навантаження та шляхів його вирішення.
Крім того, це тестування дозволяє тестувальникам визначити деградацію на стороні сервера та час відгуку щодо завантаження користувача програми. В результаті цього тестування надають перевагу у кількох організаціях по всьому світу.
Нижче наведено перелік кроків для перевірки масштабованості програми:
- Створіть повторювані сценарії тесту для кожного з атрибутів тестування масштабованості.
- Перевірте програму на різні рівні навантаження, такі як низькі, середні та високі навантаження та перевірте поведінку програми.
- Створіть тестове середовище, яке є досить стабільним, щоб витримати весь цикл тестування масштабованості.
- Налаштуйте обладнання, необхідне для проведення цього тестування.
- Визначте набір віртуальних користувачів для перевірки поведінки програми при різному навантаженні користувачів.
- Повторіть сценарії тестування для кількох користувачів за різних умов внутрішніх змін програм, обладнання та бази даних.
- У випадку кластерного середовища перевірте, чи балансувач навантаження спрямовує запити користувачів на кілька серверів, щоб переконатись, що жоден сервер не перевантажений низкою запитів.
- Виконайте тестові сценарії в тестовому середовищі.
- Проаналізуйте створені звіти та перевірте напрямки вдосконалення, якщо такі є.
Висновок
Коротко,
=> Тестування на масштабованість - це нефункціональна методологія тестування, щоб перевірити, чи може додаток масштабуватися або зменшуватися до різних атрибутів. Атрибути, які використовуються для цього тестування, будуть відрізнятися залежно від програми.
=> Основна мета цього тестування - визначити, коли програма починає деградувати при максимальному навантаженні, та вжити належних заходів для забезпечення того, щоб розроблена програма була досить масштабованою, щоб враховувати зміни у внутрішніх додатках, програмному забезпеченні, апаратному забезпеченні, а також базі даних зміни в майбутньому.
=> Якщо це тестування зроблено належним чином, у розроблених додатках можна виявити основні помилки щодо продуктивності програмного, апаратного забезпечення та бази даних.
=> Основним недоліком цього тестування буде обмеження на зберігання даних з обмеженнями на розмір бази даних та буферний простір. Крім того, обмеження пропускної здатності мережі можуть стати перешкодою для перевірки масштабованості.
=> Процес тестування масштабованості відрізняється від однієї організації до іншої, оскільки атрибути тесту на масштабованість однієї програми будуть відрізнятися від інших програм.
Рекомендована література
- Тестування навантаження за допомогою підручників HP LoadRunner
- Тестування продуктивності проти тестування навантаження проти стрес-тестування (різниця)
- Різниця між робочим столом, тестуванням клієнтського сервера та веб-тестуванням
- Тестування навантаження, напруги та продуктивності веб-додатків за допомогою WAPT
- Найкращі засоби тестування програмного забезпечення 2021 р. (Засоби автоматизації тестування якості)
- Посібник із тестування безпеки веб-додатків
- Тестування додатків - до основ тестування програмного забезпечення!
- Встановіть свою програму на пристрій і починайте тестування з Eclipse