Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

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

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

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

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

 

Table of Contents

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

чек-лист uat, інструменти тестування веб-додатків, автоматизація та багато іншого

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

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

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

По суті, нефункціональне тестування означає перевірку “як” працюють функції програмного забезпечення, а не перевірку “чи” вони працюють.

 

1. Коли потрібне нефункціональне тестування?

 

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

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

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

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

 

2. Коли вам не потрібне нефункціональне тестування

 

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

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

 

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

усунення плутанини в автоматизації тестування програмного забезпечення

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

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

 

1. Контроль якості

 

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

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

 

2. Управління ризиками

 

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

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

 

3. Оптимізація

 

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

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

 

4. Збір даних

 

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

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

 

5. Поглиблення знань

 

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

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

 

Хто займається нефункціональним тестуванням?

хто займається тестуванням програмного забезпечення

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

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

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

 

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

тестування користувацького сприйняття (UAT)

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

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

 

1. Підвищення продуктивності програмного забезпечення

 

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

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

 

2. Захистіть програмне забезпечення

 

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

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

 

3. Підвищити зручність користування програмним забезпеченням

 

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

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

 

4. Переконайтеся, що програмне забезпечення відповідає потребам користувачів

 

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

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

 

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

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

 

1. Повторення

 

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

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

 

2. Вартість

 

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

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

 

Що ми перевіряємо при нефункціональному тестуванні?

 

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

 

1. Безпека

 

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

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

 

2. Надійність

 

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

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

 

3. Живучість

 

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

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

 

4. Доступність

 

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

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

 

5. Юзабіліті

 

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

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

 

6. Масштабованість

 

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

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

 

7. Інтероперабельність

 

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

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

 

8. Ефективність

 

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

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

 

9. Гнучкість

 

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

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

 

10. Портативність

 

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

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

 

11. Можливість багаторазового використання

 

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

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

 

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

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

 

1. Вимірювані

 

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

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

 

2. Специфічний

 

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

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

 

3. Невідомо.

 

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

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

 

Життєвий цикл нефункціональних тестів

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

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

 

1. Аналіз вимог до програмного забезпечення

 

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

 

2. Планування тестування

 

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

План тестування повинен містити всі необхідні деталі, які потрібні тестувальникам для створення та виконання тестових кейсів.

 

3. Створення тестового кейсу

 

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

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

 

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

 

Наступним етапом життєвого циклу нефункціонального тестування є налаштування тестового середовища перед початком тестування.

Середовище тестування – це місце, де відбувається все тестування, і де знаходяться ресурси та інструменти, які ви будете використовувати для виконання нефункціональних тестів.

Перед виконанням тесту команда тестувальників готує тестове середовище.

 

5. Виконання тесту

 

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

Команда тестувальників виконує кожен кейс окремо і звіряє результат кожного тесту з очікуваним результатом.

 

6. Повторення циклу

 

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

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

 

Проясняю деяку плутанину:

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

Порівняння UAT тестування з регресійним тестуванням та інше

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

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

 

1. У чому різниця між функціональним і нефункціональним тестуванням?

 

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

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

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

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

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

 

2. Висновок: нефункціональне тестування проти функціонального

 

Як функціональне, так і нефункціональне тестування є важливими видами тестування програмного забезпечення, які можуть допомогти тестувальникам і командам QA оцінити, чи відповідає додаток поточним вимогам.

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

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

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

 

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

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

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

Кожен з цих типів тестів перевіряє різні параметри, а деякі тести можуть перевіряти одні й ті ж параметри по-різному.

 

1. Тести продуктивності

 

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

 

2. Стрес-тести

 

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

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

 

3. Навантажувальні тести

 

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

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

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

 

4. Тести безпеки

 

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

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

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

 

5. Тести оновлення та встановлення

 

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

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

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

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

6. Об’ємні тести

 

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

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

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

 

7. Тести на відновлення

 

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

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

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

 

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

Що таке тестування навантаження?

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

 

1. План тестування

 

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

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

 

2. Тестові кейси

 

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

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

 

3. Функціональна перевірка

 

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

Наприклад, якщо ви хочете перевірити, скільки користувачів може одночасно увійти до програми, спочатку важливо переконатися, що окремі користувачі дійсно можуть увійти до програми.

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

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

 

4. Інструменти тестування

 

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

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

 

5. Середовище тестування

 

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

Ідеальне середовище тестування дозволяє тестувати кожен необхідний елемент на правильних пристроях.

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

 

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

Що таке модульне тестування

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

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

 

1. Перевірка готовності до нефункціонального тестування

 

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

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

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

 

2. Створіть план тестування

 

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

Без чіткого плану тестування легко випустити з уваги обсяг і цілі тестів, які ви виконуєте.

 

3. Створюйте тестові кейси

 

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

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

 

4. Зберіть тестові дані

 

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

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

 

5. Підготуйте тестове середовище

 

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

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

 

6. Виконання нефункціональних тестів

 

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

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

 

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

 

Після виконання кожного тестового кейсу збирайте результати нефункціональних тестів в один звіт.

Цей звіт повинен чітко відображати результати кожного тесту і однозначно вказувати на те, пройдено чи не пройдено кожен тест.

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

 

8. Виправлення дефектів

 

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

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

 

9. Повторний цикл тестування

 

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

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

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

 

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

стаття про тестування

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

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

 

1. Що таке тестові кейси для нефункціонального тестування?

 

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

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

 

2. Як створювати нефункціональні тестові кейси?

 

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

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

 

1. Визначте територію, яку ви хочете охопити

 

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

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

 

2. Створіть унікальний ідентифікатор тестового кейсу

 

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

 

3. Назвіть та опишіть кожен тест

 

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

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

Опис повинен бути достатньо чітким, щоб тестувальники знали, що і як тестувати, а також будь-які особливі умови, яких необхідно дотримуватися під час тестування.

 

4. Вкажіть очікуваний результат

 

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

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

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

 

5. Порекомендуйте методи тестування

 

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

У нефункціональному тестуванні тестувальники можуть використовувати дуже різні підходи для різних типів тестування.

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

 

6. Отримайте рецензію на кожен тестовий кейс

 

Перш ніж ви підпишете кожен тестовий кейс, попросіть когось із колег, з ким ви працюєте, прорецензувати його. Це може бути інший тестувальник або QA-лід.

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

 

3. Приклади нефункціональних тестових кейсів

 

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

 

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

Ідентифікатор тестового кейсу: 6671
Назва тестового прикладу: Тест входу декількох користувачів
Опис: Емуляція одночасного входу в програму 20+ користувачів за допомогою інструментів автоматизації.
Очікувані результати: Програмне забезпечення повинно працювати у звичайному режимі для кожного користувача, дозволяючи кожному користувачеві успішно увійти в систему менш ніж за 5 секунд.

 

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

Ідентифікатор тестового кейсу: 5214
Назва тесту: Завантаження додатку в браузері Opera
Опис: Завантажте програму у веб-браузері Opera.
Очікувані результати: Додаток завантажується у звичайному режимі у веб-браузері Opera зі стандартною роздільною здатністю дисплея та макетом.

 

Ручні чи автоматизовані нефункціональні тести?

комп'ютерний зір для тестування програмного забезпечення

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

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

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

 

Ручне нефункціональне тестування: Переваги, виклики та процеси

 

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

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

Це займає чимало часу, але це також означає, що QA-тестери мають свободу визначати, що і як тестувати.

 

1. Деякі з переваг ручного тестування включають в себе наступні:

 

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

Ручне тестування дозволяє тестувальникам запропонувати людське розуміння та суб’єктивну оцінку того, як функціонує програмне забезпечення і чи функціонує воно задовільно.

Ручне тестування можна використовувати для проведення тестування системи в сценаріях, які неможливо автоматизувати.

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

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

 

Однак у ручного тестування є й недоліки.

 

2. Деякі з проблем ручного тестування включають в себе наступні:

 

Деякі види нефункціонального тестування, включаючи навантажувальне тестування та тестування продуктивності, непрактично проводити вручну

Ручне тестування займає значно більше часу, ніж автоматизоване нефункціональне тестування

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

 

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

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

 

1. Деякі з переваг автоматизації нефункціональних тестів такі:

 

1. Заощаджуйте час і ресурси, зменшуючи кількість часу, який ви витрачаєте на тривалі та трудомісткі завдання

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

3. Доцільніше проводити автоматизовані тести частіше, оскільки вони займають менше часу

4. Автоматизоване тестування ідеально підходить для таких трудомістких завдань, як навантажувальне тестування, об’ємне тестування та стрес-тестування, які дуже складно проводити вручну

5. Менша ймовірність виникнення помилок при виконанні автоматизованого тестування

 

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

 

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

 

1. Автоматизоване тестування коштує дорожче, ніж ручне

2. Налаштування автоматизації тестування може зайняти час і технічні ресурси

3. Автоматизація тестування не залишає місця для дослідницького тестування

4. Автоматизація тестів все ще вимагає часу на створення тестових кейсів

 

Висновок: Ручний або автоматизований

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

Переваги від створення Центру передового тестування. Чи відрізняється тестування продуктивності від функціонального?

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

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

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

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

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

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

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

Що таке тестування програмного забезпечення?

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

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

 

1. Використовуйте інструменти автоматизації

 

У нефункціональному тестуванні більше, ніж в інших видах тестування, важливо використовувати інструменти автоматизації для автоматизації певних видів тестування, зокрема об’ємного тестування, стрес-тестування та тестування навантаження.

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

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

 

2. Проведіть експертну оцінку всієї документації

 

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

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

 

3. Визначте вимірювані вимоги

 

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

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

Що вважається “швидким” або “ефективним”? Використовуйте цифри та кількісні значення, щоб визначити, що ви шукаєте.

 

4. Ретельно продумайте метрики тестування

 

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

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

 

Типи результатів нефункціонального тесту

як працює автоматизоване тестування в таких галузях, як банківська справа

Коли ви проводите нефункціональне тестування, ви отримаєте різні типи результатів від проведених тестів.

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

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

 

1. Абсолютні цифри

 

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

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

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

 

2. Повідомлення про помилки

 

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

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

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

 

3. Аварії

 

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

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

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

 

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

Наскрізне тестування - що таке E2E тестування, інструменти, типи та інше

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

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

 

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

 

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

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

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

 

2. Тестування на сумісність

 

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

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

 

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

 

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

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

 

Типи виявлених помилок та багів

через нефункціональне тестування

zaptest-runtime-error.png

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

 

1. Дефекти продуктивності

 

Дефекти продуктивності виникають, коли система функціонує, але не так швидко або ефективно, як ви очікуєте.

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

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

 

2. Дефекти безпеки

 

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

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

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

 

3. Функціональні дефекти

 

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

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

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

 

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

переваги створення центру передового тестування (TCoE)

Показники нефункціонального тестування описують ті показники, за допомогою яких вимірюється продуктивність та ефективність системи.

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

 

1. Час

 

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

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

Різні типи тестів вимірюють результати в секундах або у вигляді представлення кількості операцій за секунду.

 

2. Простір

 

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

Деякі приклади метрик простору включають кеш-пам’ять, основну та допоміжну пам’ять.

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

 

3. Юзабіліті

 

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

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

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

 

4. Надійність

 

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

Деякі приклади метрик, які використовуються для вимірювання надійності, включають середній час напрацювання на відмову, частоту відмов, доступність та ймовірність простою.

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

 

5. Надійність

 

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

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

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

 

6. Портативність

 

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

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

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

 

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

Що таке модульне тестування?

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

Розробка стратегії може допомогти вам оптимізувати нефункціональні тести з самого початку.

 

1. Розподіліть ролі та обов’язки

 

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

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

 

2. Зберіть відповідні інструменти для тестування

 

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

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

 

3. Розставити пріоритети в тестуванні

 

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

Ви можете визначити пріоритетність нефункціонального тестування на основі рівня ризику, пов’язаного з кожним аспектом системи, яку ви тестуєте.

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

 

7 найкращих інструментів нефункціонального тестування

найкраще тестування безкоштовного та корпоративного ПЗ + інструменти автоматизації RPA

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

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

 

1. ZAPTEST безкоштовна версія

 

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

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

 

2. Аппій.

 

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

 

3. Лоадіум

 

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

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

Ви можете спробувати Loadium безкоштовно або заплатити, щоб завантажити повну версію програми.

 

4. Обкіо

 

Obkio – це інструмент для тестування програмного забезпечення, який допомагає QA-лідерам та менеджерам тестування визначати пріоритети та класифікувати проблеми на основі їхньої серйозності. Obkio може виявляти проблеми ще до того, як це зробить користувач, пропонує йому розумні сповіщення і допомагає визначити, де саме виникла проблема.

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

 

5. SonarQube

 

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

 

6. Цун.

 

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

Tsung – це інструмент з відкритим вихідним кодом, який дозволяє користувачам проводити об’ємне навантажувальне тестування на різних протоколах і серверах, включаючи HTTP і SOAP.

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

 

7. Сікулі

 

Sikuli – ще одна програма, яка використовує роботизовану автоматизацію процесів для автоматизації процесу тестування. Додаток може автоматизувати все, що можна побачити на екрані. Ви можете використовувати Sikuli для тестування не веб-додатків і швидкого відтворення помилок.

 

Контрольний список для нефункціонального тестування, поради та підказки

Перелік перевірок програмного забезпечення

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

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

 

1. Робота за розкладом

 

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

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

 

2. Визначте свою команду тестувальників

 

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

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

 

3. Виберіть інструменти та технології перед тестуванням

 

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

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

 

4. Завжди отримуйте офіційне затвердження тестів і документації

 

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

Впровадити прості протоколи, які вимагають від тестувальників просити QA-лідерів та менеджерів переглянути та підписати плани тестування та звіти про тестування перед тим, як переходити до наступного етапу.

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

 

7 помилок та підводних каменів, яких слід уникати при впровадженні нефункціональних тестів

Порівняння UAT тестування з регресійним тестуванням та інше

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

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

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

 

1. Не планую

 

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

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

 

2. Тестування безгосподарності

 

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

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

 

3. Погана комунікація

 

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

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

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

 

4. Ігнорування розробників

 

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

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

 

5. Мета тестування

 

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

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

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

 

6. Помилки ручної роботи та автоматизації

 

Важливо витратити час на роздуми про те, що краще – ручне чи автоматизоване тестування для кожного типу тестування, яке ви проводите.

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

 

7. Використання неправильних інструментів тестування

 

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

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

 

Висновок

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

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

 

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

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

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

 

1. Найкращі курси з нефункціонального тестування

 

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

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

 

Деякі з найкращих курсів з нефункціонального тестування включають:

 

  • TSG: 2-денний тренінг з нефункціонального навчання

 

  • Udemy: Повний тренінговий табір з тестування програмного забезпечення 2023

 

  • Edx: Професійний сертифікат з тестування програмного забезпечення

 

  • Освітньо: Автоматизація тестування продуктивності 101

 

2. Які 5 найкращих запитань на співбесіді з нефункціонального тестування?

 

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

Чим підходи та методи, які ви використовуєте у нефункціональному тестуванні, можуть відрізнятися від підходів, які ви використовуєте у функціональному тестуванні?

Чим нефункціональне тестування відрізняється від функціонального?

Які існують різні види нефункціонального тестування?

Як ви визначаєте пріоритетність функціональних тестів та тестових кейсів?

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

 

3. Найкращі навчальні відео на YouTube про нефункціональне тестування

 

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

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

Що таке нефункціональне тестування програмного забезпечення? Підручник з тестування програмного забезпечення
Довідка з тестування програмного забезпечення: Нефункціональне тестування
Нефункціональне тестування в тестуванні програмного забезпечення
Відвідайте W3Schools
Функціональне та нефункціональне тестування

 

4. Як підтримувати нефункціональні тести

 

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

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

 

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

 

Чітко комунікувати в команді тестувальників при створенні тестових кейсів та написанні документації

Завжди дотримуйтесь найкращих практик розробки тестів

● Повторно оцінювати протоколи тестування на різних етапах процесу тестування

Оновлюйте зміни в тесті по ходу роботи

Враховуйте майбутні проекти при внесенні змін до поточних тестів

 

5. Нефункціональне тестування – це тестування “чорного ящика” чи “білого ящика”?

 

Нефункціональне тестування є різновидом тестування “чорного ящика”, тобто тестувальників не цікавить внутрішня робота системи, а лише її зовнішні результати.

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

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

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post