Нефункціональне тестування

⚡ Розумний підсумок

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

  • 🎯 Фокус якості: Нефункціональне тестування вимірює, як система працює, а не що вона робить.
  • 📏 Вимірювані критерії: Кожна вимога вимірюється кількісно, ​​що виключає суб'єктивні формулювання, такі як «добре», «краще» або «найкраще».
  • 🔐 Критичні параметри: Безпека, надійність, масштабованість, зручність використання та портативність домінують у нефункціональній верифікації.
  • 🧪 Різноманітні типи тестів: Тестування продуктивності, навантаження, стресу, відновлення та сумісності стосується конкретних ризиків якості.
  • 📊 Вплив на бізнес: Надійне нефункціональне тестування зменшує виробничі витрати, час простою та невдоволення клієнтів у різних релізах.

Нефункціональне тестування

Що таке нефункціональне тестування?

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

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

Що таке оглядова діаграма нефункціонального тестування

Цілі нефункціонального тестування

Нефункціональне тестування проводиться для покращення загальної якості та довговічності продукту. Ключові цілі включають:

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

Характеристики нефункціонального тестування

Наступні риси визначають, як слід планувати та виконувати нефункціональне тестування:

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

Параметри нефункціонального тестування

Одинадцять параметрів зазвичай використовуються для визначення обсягу нефункціонального тестування:

  1. Безпека: Вимірює, як система захищена від навмисних та випадкових атак з внутрішніх або зовнішніх джерел. Перевіряється за допомогою тестування безпеки.
  2. Надійність: Ступінь, до якої система безперервно виконує свої задані функції без збоїв. Перевіряється шляхом тестування надійності.
  3. Живучість: Підтверджує, що система продовжує функціонувати та відновлюється після збою. Перевірено за допомогою тестування відновлення.
  4. наявність: Визначає ступінь, до якої користувач може покладатися на систему під час роботи. Перевірено за допомогою тестування стабільності.
  5. Usability: Легкість, з якою користувачі можуть навчатися, працювати, готувати вхідні дані та споживати вихідні дані системи. Перевірено за допомогою тестування зручності використання.
  6. Масштаб Ступінь, до якого програмний застосунок може розширити свої обчислювальні потужності для задоволення зростаючого попиту. Перевірено за допомогою тестування масштабованості.
  7. Сумісність: Перевіряє, як програмна система взаємодіє з іншими програмними системами. Перевіряється за допомогою тестування сумісності.
  8. Ефективність: Ступінь, до якої система обробляє ємність, кількість та час відгуку під навантаженням.
  9. Гнучкість: Легкість, з якою програма може працювати з різними конфігураціями обладнання та програмного забезпечення, такими як різні характеристики оперативної пам'яті або процесора.
  10. Портативність: Гнучкість програмного забезпечення для переходу з поточного апаратного або програмного середовища до іншого.
  11. Багаторазовість: Відноситься до частини програмної системи, яку можна адаптувати для використання в іншій програмі.

Діаграма параметрів нефункціонального тестування

Тип тестування програмного забезпечення

Тестування програмного забезпечення загалом класифікується на три категорії:

  • Функціональне тестування
  • Нефункціональне тестування
  • Тестування технічного обслуговування

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

Перелік типів тестування не є вичерпним — існує понад 100 різних типів тестування, і нові продовжують з'являтися. Не кожен тип застосовується до кожного проекту; сфера застосування залежить від характеру, профілю ризику та складності тестованої програми.

Види нефункціонального тестування

Найпоширеніші типи нефункціонального тестування, що виконуються командами контролю якості, включають:

  • Тестування продуктивності
  • Тестування навантаження
  • Тестування відмов
  • Тестування сумісності
  • Тестування на зручність
  • Стрес-тестування
  • Тестування ремонтопридатності
  • Тестування масштабованості
  • Тестування обсягу
  • Тестування безпеки
  • Тестування аварійного відновлення
  • Перевірка відповідності
  • Тестування портативності
  • Тестування ефективності
  • Тестування надійності
  • Базове тестування
  • Випробування на витривалість
  • Тестування документації
  • Тестування відновлення
  • Тестування інтернаціоналізації

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

Наведені нижче приклади ілюструють, як нефункціональні тестові випадки пишуться в реальних проектах:

Тестовий приклад № Тестовий випадок сфера
1 Час завантаження програми не повинен перевищувати 5 секунд, коли до неї одночасно звертаються до 1000 користувачів. Тестування продуктивності
2 Програмне забезпечення має бути встановлюваним на всі підтримувані версії Windows та macOS. Тестування сумісності
3 Усі веб-зображення повинні містити описові теги alt. Тестування доступності

Поширені запитання

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

Популярні інструменти включають JMeter та LoadRunner для підвищення продуктивності, Selenium для автоматизації зручності використання, Burp Suite і OWASP ZAP для безпеки, і BrowserStack для сумісності. Кожен інструмент орієнтований на певну нефункціональну область, яку команди контролю якості хочуть виміряти.

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

Кожен параметр вимірюється за кількісно визначеними пороговими значеннями. Продуктивність вимірюється часом відгуку та пропускною здатністю, безпекою – кількістю вразливостей, зручністю використання – коефіцієнтами виконання завдань, а надійністю – середнім часом між збоями. Numbers замінити суб'єктивні думки.

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

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

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

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