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

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

  • 11 лютого, 2020
  • читати 6 хв
Сергій Семенов
Сергій Семенов Manual/Automation Software Test Engineer у PrivatBank, Викладач Комп'ютерної школи Hillel.

Пропонуємо спочатку прочитати першу частину статті в блозі.

Рекомендуємо публікацію по темі

Що значить швидко?

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

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

  • до 0.1 секунд - миттєво;
  • до 1 секунди - швидко;
  • до 2 секунд - досить швидко;
  • 2 - 4 секунди - прийнятно;
  • 4 - 15 секунд - повільно;
  • більше 15 секунд - дуже довго.

Що тестувати?

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

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

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

Рекомендуємо курс по темі

Класифікація проблем

Якого типу проблема може бути виявлена ​​під час проведення тестування продуктивності:

  • Повільна підсистема / функція

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

  • Вузьке місце (bottleneck)

Досягнення межі будь-якої з частин системи, наприклад, межа пропускної спроможності мережевого з'єднання.

  • Точка насичення

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

  • Функціональний дефект

Як такі функціональні дефекти не типові для тестування продуктивності і частіше виявляються при проведенні функціонального тестування, де дії виконуються послідовно. Але для тестування продуктивності типово паралельне виконання операцій у великій кількості, де при конфлікті функциональностей, можна виявити функціональні дефекти.

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

Цілі тестування

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

  • Менеджера або розробника може цікавити, чи стала нова версія додатка працювати швидше. Але замовника не цікавить швидкість відгуку або споживання ресурсів, його цікавить демонстрація оцінки продуктивності на популярному мові, а не технічними термінами. І інтерпретація результатів — це буде завдання або аналітика, або тестувальника.
  • Що саме уповільнює роботу: софт або залізо? Ця інформація необхідна для того, щоб вирішити: чи купувати нове серверне обладнання або ж оптимізувати програму. Завдяки оцінці можливості до розпаралелювання, оцінці запасу потужності і часу відгуку, ми можемо зробити висновок, на який зі сторін існує недолік.
  • Чому користувачі не завершують замовлення? Може, користувачі не завершують замовлення тому, що не можуть дочекатися завершення операції? Або існує переповнення черги обробки замовлень і система віддає помилки.
    Чи витримає сервер прийдешні розпродажі? Наприклад, після запуску реклами або в популярні дні розпродажів по всьому світу, ми повинні бути впевнені, що наша система зможе забезпечити коректне функціонування.
  • Нерідко замовники можуть поставити запитання: як поводиться система в цілому, чи все гаразд? Це питання типовий не тільки для тестування продуктивності, але і для інших видів тестування. Чи немає яких-небудь проблем? У тому числі і з продуктивністю. І на це питання так само необхідно вміти відповідати, переводячи на технічні терміни, де ми зможемо оцінити стан програми та на популярній мові сказати про стан програми.

Виходячи з перерахованих вище можливих питань від замовників, можна сформулювати список цілей для проведення тестування продуктивності:

  • Порівняти дві версії додатка
  • Знайти причину проблеми з продуктивністю
  • Оцінити потенційні можливості
  • Отримати підтвердження, що з системою все добре

Знаючи про потреби та цілі тестування продуктивності, ми можемо вибудувати план проектування тестів.

Рекомендуємо курс по темі

Рекомендуємо публікацію по темі

Придбати подарунковий сертифікат

Придбати подарунковий сертифікат

Gift certificate background image Gift certificate background image