Нефункционално тестване
⚡ Умно обобщение
Нефункционалното тестване валидира как се представя софтуерното приложение по отношение на надеждност, използваемост, сигурност, мащабируемост и други атрибути за качество. Това ръководство обяснява целите, параметрите, характеристиките, често срещаните видове тестване и практическите примерни тестови случаи, използвани от екипите за осигуряване на качеството.

Какво е нефункционално тестване?
Нефункционално тестване е категория софтуерно тестване, която валидира нефункционалните аспекти на приложението - производителност, използваемост, надеждност и подобни атрибути за качество. То оценява готовността на системата спрямо критерии, които функционалното тестване никога не разглежда, като гарантира, че приложението отговаря на очакванията на предприятието в реални условия.
Класически пример за нефункционално тестване е измерването на броя едновременни потребители, които могат да влязат в приложение, без да се влоши производителността. Нефункционалното тестване е също толкова важно, колкото и функционалното тестване, защото пряко влияе върху удовлетвореността на клиентите и цялостното възприятие на продукта.
Цели на нефункционалното тестване
Нефункционалното тестване се извършва, за да се подобри цялостното качество и дълготрайността на даден продукт. Основните цели включват:
- Увеличете използваемостта, ефективността, поддръжката и преносимостта на продукта.
- Намалете производствения риск и разходите, свързани с нефункционални дефекти.
- Оптимизирайте начина, по който продуктът се инсталира, настройва, изпълнява, управлява и наблюдава.
- Събирайте измервания и показатели за вътрешни изследвания и разработки.
- Подобрете разбирането за поведението на продукта и използваните технологии.
Характеристики на нефункционалното тестване
Следните характеристики определят как трябва да се планира и изпълнява нефункционалното тестване:
- Трябва да е измеримо, без да се оставя място за субективни описания като „добро“, „по-добро“ или „най-добро“.
- Точните числа обикновено са неизвестни в началото на процеса на изискванията.
- Изискванията трябва да бъдат приоритизирани, така че първо да се обърне внимание на областите с най-висок риск.
- Атрибутите за качество се идентифицират точно по време на фазата на софтуерно инженерство.
Параметри за нефункционално тестване
Единадесет параметъра обикновено се използват за определяне на обхвата на нефункционалното тестване:
- Сигурност: Измерва как системата е защитена срещу умишлени и случайни атаки от вътрешни или външни източници. Проверява се чрез тестване за сигурност.
- Надеждност: Степента, до която системата непрекъснато изпълнява определените си функции без повреди. Проверява се чрез тестове за надеждност.
- Оцеляване: Потвърждава, че системата продължава да функционира и се възстановява след повреда. Проверено чрез тестване за възстановяване.
- Достъпност: Определя степента, до която потребителят може да разчита на системата по време на работа. Проверено чрез тестване за стабилност.
- ползваемост: Лекотата, с която потребителите могат да учат, работят, подготвят входни данни и консумират изходни данни от системата. Проверено чрез тестване за използваемост.
- скалируемост: Степента, до която софтуерното приложение може да разшири капацитета си за обработка, за да отговори на нарастващото търсене. Проверено чрез тестване за мащабируемост.
- Оперативна съвместимост: Проверява как дадена софтуерна система взаимодейства с други софтуерни системи. Потвърждава се чрез тестване за оперативна съвместимост.
- Ефективност: Степента, до която системата се справя с капацитета, количеството и времето за реакция при натоварване.
- гъвкавост: Лекотата, с която приложението може да работи в различни хардуерни и софтуерни конфигурации, като например различни спецификации на RAM или процесор.
- Преносимост: Гъвкавостта на софтуера да се премества от текущата си хардуерна или софтуерна среда към друга.
- Повторна употреба: Отнася се до частта от софтуерна система, която може да бъде адаптирана за използване в друго приложение.
Тип софтуерно тестване
Тестването на софтуер се класифицира най-общо в три категории:
- Функционално тестване
- Нефункционално тестване
- Тестване за поддръжка
Всяка категория съдържа множество нива на тестване, които екипите често наричат видове тестване. Различните книги и справочни материали могат да ги класифицират малко по-различно, така че очаквайте малки вариации.
Списъкът с видовете тестове не е изчерпателен — съществуват над 100 различни вида тестове и продължават да се появяват нови. Не всеки вид е приложим за всеки проект; обхватът зависи от естеството, рисковия профил и сложността на тестваното приложение.
Видове нефункционални тестове
Най-често срещаните видове нефункционално тестване, извършвано от екипите за осигуряване на качеството, включват:
- Тестване на производителността
- Тестване на товара
- Тестване при отказ
- Тест за съвместимост
- Тестване за ползваемост
- Стресиране
- Тестване за поддръжка
- Тестване на скалируемост
- Тестване на обема
- Тестване на сигурността
- Тестване за възстановяване след бедствие
- Тестване за съответствие
- Тестване на преносимостта
- Тестване на ефективността
- Тестване на надеждността
- Базово тестване
- Тест за издръжливост
- Тестване на документация
- Тестване за възстановяване
- Тестване за интернационализация
Примерни тестови случаи за нефункционално тестване
Следните примери илюстрират как се пишат нефункционални тестови случаи в реални проекти:
| Тестов случай # | Тестов случай | домейн |
|---|---|---|
| 1 | Времето за зареждане на приложението не трябва да надвишава 5 секунди, когато до 1000 потребители имат достъп до него едновременно. | Тестване на производителността |
| 2 | Софтуерът трябва да може да се инсталира на всички поддържани версии на Windows намлява macOS. | Тест за съвместимост |
| 3 | Всички уеб изображения трябва да включват описателни alt тагове. | Тестване на достъпността |


