Нефункціональне тестування (Non-Functional testing)

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

Нефункціональні вимоги можуть бути відображені як :

  • Користувальницькі / Технічні історії (User /Technical Stories): запис нефункціональних вимог у вигляді історії користувача такий самий, як і запис будь-яких інших вимог. Єдина різниця між користувачем і технічною історією полягає в тому, що історія користувача вимагає обговорення і має видимість (? visibility);

  • У разі приймання (Acceptance criteria): це точка, що визначається прийняття товару замовником. Нефункціональна вимога повинна бути включена до критерію приймання, але іноді неможливо перевірити нефункціональні вимоги з кожною історією, тобто з кожною ітерацією. Отже, вимоги слід додавати чи тестувати лише з відповідною ітерацією;

  • В артефактах (Artifact): для нефункціональних вимог слід підготувати окремий артефакт, це, своєю чергою, допоможе краще зрозуміти, що потрібно тестувати і як це можна робити в ітераціях;

Документ підходу до тестування (Approach Document) :

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

  • Об'єм випробувань (Test Scope);

  • Метрики тестування;

  • Інструменти тестування;

  • Основні дати та результати;

Види нефункціонального тестування (список не повний) :

  • Тестування продуктивності (Performance Testing)

  • Навантажувальне тестування (Load Testing)

  • Стресове тестування (Stress Testing)

  • Об'ємне тестування (Volume Testing)

  • Тестування відновлення (Recovery Testing)

  • Тестування відмовостійкості (Failover Testing)

  • Тестування ефективності (Efficiency Testing)

  • Тестування аварійного відновлення (Disaster Recovery Testing)

  • Тестування установки (Installation Testing)

  • Тестування документації (Documentation Testing)

  • Тестування на зручність використання (Usability Testing)

  • Тестування графічного інтерфейсу користувача (User Interface Testing)

  • Тестування сумісності (Compatibility Testing)

  • Тестування обслуговування (Maintainability Testing)

  • Тестування безпеки (Security Testing)

  • Тестування масштабованості (Scalability Testing)

  • Тестування витривалості (Endurance Testing)

  • Тестування надійності (Reliability Testing)

  • Тестування відповідності (Compliance Testing)

  • Тестування локалізації (Localization Testing)

  • Тестування інтернаціоналізації (Internationalization Testing)

  • Тестування переносимості (Portability Testing)

  • Тестування на основі базового рівня (Baseline Testing)

Приклади чек-листів :

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

  • Час відгуку (The response time) програми, тобто скільки часу потрібно для завантаження програми, за який час будь-яке введення, надане програмі, забезпечує висновок, час оновлення браузера і т. д.;

  • Пропускну здатність (Throughput) слід перевіряти за кількістю транзакцій, завершених під час тесту навантаження;

  • Налаштування середовища (Environment) має бути таким самим, як і в реальному середовищі, інакше результати не будуть такими ж;

  • Час процесу (Process time) - такі дії, як імпорт та експорт Excel, будь-які обчислення у додатку мають бути протестовані;

  • Сумісність (Interoperability) має бути перевірена, тобто. програмне забезпечення повинно мати можливість взаємодіяти з іншим програмним забезпеченням чи системами;

  • Необхідно перевірити час ETL, тобто час, витрачений на вилучення, перетворення та завантаження даних з однієї бази даних до іншої;

  • Необхідно перевірити зростаюче навантаження (Load) на додаток;

Тестування безпеки:

  • Аутентифікація (Authentication): лише достовірний користувач може увійти до системи;

  • Авторизація (Authorized): користувач повинен мати можливість входити в ті модулі, для яких він авторизований або до яких користувач надав доступ;

  • Пароль: Вимога пароля має бути підтверджено, тобто. пароль повинен відповідати тому, як ця вимога визначається, тобто довжині, спеціальним символам, числам тощо;

  • Тайм-аут: якщо програма неактивна, вона повинна закінчитися по таймууту у вказаний час;

  • Резервне копіювання даних: резервне копіювання даних має бути виконане у вказаний час та дані мають бути скопійовані у безпечне місце;

  • Внутрішні посилання на веб-застосунок не повинні бути доступні, якщо розміщені безпосередньо в браузері;

  • Вся комунікація має бути зашифрована;

Тестування документації:

  • Користувальницька та системна документація;

  • Документи для навчальних цілей;

Last updated