Підручник з тестування продуктивності

Тестування навантаження

Що таке тестування продуктивності?

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

Тестування продуктивності зосереджено на перевірці програмного забезпечення

  • швидкість – Визначає, чи швидко реагує програма
  • масштабованість – Визначає максимальне навантаження користувача, яке може впоратися з програмним застосунком.
  • Стабільність – Визначає, чи програма стабільна за різних навантажень

Навіщо проводити тестування продуктивності?

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

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

Тестування продуктивності

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

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

За даними Dunn & Bradstreet, 59% компаній зі списку Fortune 500 стикаються з приблизно 1.6 години простою щотижня. Враховуючи, що середня компанія зі списку Fortune 500 із мінімум 10,000 56 співробітників платить 896,000 доларів США на годину, частина витрат на час простою для такої організації становитиме 46 XNUMX доларів США щотижня, що означає понад XNUMX мільйонів доларів США на рік.

Тільки а 5 хвилин простою Google.com (19 серпня 13 р.) коштуватиме пошуковому гіганту стільки ж, скільки $ 545,000.

Підраховано, що компанії втратили вартість продажів 1100 доларів за секунду через недавнє Amazon Збій у роботі веб-служби.

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

Види тестування продуктивності

Існує шість типів тестування продуктивності в тестуванні програмного забезпечення, які пояснюються нижче.

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

Поширені проблеми продуктивності

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

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

Як провести тестування продуктивності

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

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

Процес тестування продуктивності
Процес тестування продуктивності

Крок 1) Визначте своє середовище тестування

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

Крок 2) Визначте критерії прийнятності ефективності

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

Крок 3) Тестування продуктивності плану та дизайну

Визначте, як використання буде відрізнятися серед кінцевих користувачів, і визначте ключові сценарії для перевірки всіх можливих випадків використання. Необхідно змоделювати різноманітних кінцевих користувачів, спланувати дані тестування продуктивності та визначити, які показники збиратимуться.

Крок 4) Налаштування тестового середовища

Підготуйте середовище тестування перед виконанням. Крім того, організуйте інструменти та інші ресурси.

Крок 5) Реалізуйте дизайн тесту

Створіть тести продуктивності відповідно до вашого тестового дизайну.

Крок 6) Виконайте тести

Виконувати та контролювати тести.

Крок 7) Проаналізуйте, налаштуйте та повторно перевірте

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

Показники тестування продуктивності: контрольовані параметри

Основні параметри, які контролюються під час тестування продуктивності, включають:

показники тестування продуктивності

  • Використання процесора – кількість часу, який процесор витрачає на виконання неактивних потоків.
  • Використання пам'яті - обсяг фізичної пам'яті, доступної для процесів на комп'ютері.
  • Дисковий час – кількість часу, протягом якого диск зайнятий виконанням запиту на читання або запис.
  • Пропускна здатність - показує кількість бітів на секунду, які використовуються мережевим інтерфейсом.
  • Приватні байти – кількість байтів, виділених процесом, які не можуть бути спільно використані іншими процесами. Вони використовуються для вимірювання витоків пам’яті та використання.
  • Закріплена пам'ять - обсяг використаної віртуальної пам'яті.
  • Сторінок пам'яті/с – кількість сторінок, записаних на диск або прочитаних з диска, щоб усунути жорсткі помилки сторінки. Жорсткі помилки сторінки виникають, коли код не з поточного робочого набору викликається з іншого місця та отримується з диска.
  • Помилки сторінки/с – загальна швидкість, з якою сторінки з помилками обробляються процесором. Це знову ж таки відбувається, коли процесу потрібен код з-поза його робочого набору.
  • Переривання ЦП за секунду – є середнім кількість апаратних переривань, які процесор отримує та обробляє кожну секунду.
  • Довжина черги диска – є середнім немає запитів на читання та запис у черзі для вибраного диска протягом інтервалу вибірки.
  • Довжина черги виведення мережі – довжина вихідної черги пакетів у пакетах. Все, що більше ніж два, означає затримку та вузьке місце, яке потрібно припинити.
  • Загальна кількість байтів мережі за секунду – оцінювати, які байти надсилаються та приймаються на інтерфейсі, включаючи кадрові символи.
  • Час реакції - час від моменту введення користувачем запиту до отримання першого символу відповіді.
  • Пропускна здатність – швидкість отримання комп’ютером або мережею запитів за секунду.
  • Обсяг пулу з’єднань – кількість запитів користувачів, які задовольняються об’єднаними з’єднаннями. Чим більше запитів задовольняють підключення в пулі, тим кращою буде продуктивність.
  • Максимальна кількість активних сесій – максимальна кількість сеансів, які можуть бути активними одночасно.
  • Коефіцієнти влучності – Це пов’язано з кількістю SQL оператори, які обробляються кешованими даними замість дорогих операцій введення-виведення. Це гарне місце для вирішення проблем із вузькими місцями.
  • Ударів за секунду – немає відвідувань веб-сервера протягом кожної секунди навантажувального тесту.
  • Відкат сегмента – обсяг даних, який можна відкотити в будь-який момент часу.
  • Блокування бази даних – блокування таблиць і баз даних потрібно контролювати та ретельно налаштовувати.
  • Найбільші очікування – відстежуються, щоб визначити, який час очікування можна скоротити, маючи справу з тим, як швидко дані витягуються з пам’яті
  • Кількість потоків – Працездатність програми можна виміряти за номером. потоків, які запущені та наразі активні.
  • Вивіз сміття – Це пов’язано з поверненням невикористаної пам’яті назад до системи. Необхідно стежити за ефективністю збирання сміття.

Приклад тестових випадків тестування продуктивності

  • Тестовий приклад 01: Перевірте час відповіді не більше 4 секунд при одночасному відвідуванні сайту 1000 користувачів.
  • Тестовий приклад 02: Переконайтеся, що час відповіді програми під навантаженням знаходиться в прийнятному діапазоні, коли з’єднання з мережею повільне
  • Тестовий приклад 03: Перевірте максимальну кількість користувачів, яку може обслуговувати програма, перш ніж вона вийде з ладу.
  • Тестовий приклад 04: Перевірте час виконання бази даних, коли 500 записів читаються/записуються одночасно.
  • Тестовий приклад 05: Перевірте використання процесора та пам’яті програмою та сервером бази даних в умовах пікового навантаження
  • Тестовий приклад 06: Перевірте час відгуку програми в умовах низького, нормального, середнього та сильного навантаження.

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

Інструменти перевірки продуктивності

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

  • HP LoadRunner - є найпопулярнішим інструментом тестування продуктивності на ринку сьогодні. Цей інструмент здатний симулювати сотні тисяч користувачів, навантажуючи додатки реальними навантаженнями, щоб визначити їх поведінку під очікуваними навантаженнями. Loadrunner містить генератор віртуальних користувачів, який імітує дії живих користувачів.
  • jmeter – один із провідних інструментів для навантажувального тестування веб-серверів і серверів додатків.

FAQ

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

Наприклад, Microsoft Калькулятор не базується ні на клієнт-сервері, ні на кількох користувачах; тому він не є кандидатом на тестування продуктивності.

Тест на продуктивність

Важливо зрозуміти різницю між тестуванням продуктивності та розробкою продуктивності. Розуміння наведено нижче:

Тестування продуктивності це дисципліна, яка займається тестування та звітність поточна продуктивність програми за різними параметрами.

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

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

Висновок

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

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