Šta je nefukcionalno testiranje?
sobes.tech АИ
Одговор од АИ
Нефункционално тестирање је тип тестирања софтвера који се фокусира на проверу нефункционалних захтева. Оцјењује карактеристике система које нису директно повезане са конкретним функцијама, већ више са тим "како" систем ради.
Главни циљеви нефункционалног тестирања:
- Осигурати да систем одговара очекивањима корисника и пословања у погледу перформанси, поузданости, корисничког искуства и других аспеката.
- Идентификовати проблеме који могу утицати на стабилност, скалабилност и безбедност система.
- Потврдити да систем испуњава постављене стандарде и захтеве.
Врсте нефункционалног тестирања:
| Тип теста | Кратак опис | Примери проверљивих карактеристика |
|---|---|---|
| Тестирање перформанси | Оцена брзине, одзивности, стабилности и скалабилности система под оптерећењем. | Време одзива, пропусност, коришћење CPU/меморије. |
| Тестирање оптерећења | Понашање система при очекиваном врху оптерећења. | Број истовремених корисника, трансакције у секунди. |
| Стрес тестирање | Понашање система при преласку очекиваног врха оптерећења или недостатку ресурса. | Тачка отказа система, понашање при пренаглешености. |
| Тестирање стабилности (Endurance Testing) | Способност система да издржи дуготрајан непрекидни рад под оптерећењем. | Утеке меморије, деградација перформанси са временом. |
| Тестирање безбедности | Заштита система од спољашњих и унутрашњих претњи, неовлашћени приступ. | Заштита од SQL инекција, XSS напада, аутентификација, ауторизација. |
| Тестирање корисничког искуства (Usability Testing) | Одређивање колико је лако и интуитивно корисници користе систем. | Јасан интерфејс, лако навигација, приступачност. |
| Тестирање компатибилности | Рад система у различитим окружењима (прегледачи, ОС, уређаји). | Подршка различитих верзија прегледача, ОС. |
| Тестирање поузданости (Reliability Testing) | Оцена способности система да извршава своје функције без грешака током одређеног периода. | Просечно време између кварова (MTBF), вероватноћа кварова. |
| Тестирање приступачности (Accessibility Testing) | Провера погодности коришћења система за особе са ограниченим могућностима. | Усклађеност са стандардима WCAG. |
| Локализација/Интернационализација | Прилагођавање система различитим језицима и регионалним подешавањима. | Преведени низови, формати датума/бројева. |
Нефункционално тестирање се обично спроводи у ранијим фазама развојног циклуса софтвера од функционалног тестирања, али његово планирање почиње са формулисањем захтева. Може бити део аутоматизованих процеса, посебно при тестирању перформанси и безбедности.
Алатке за нефункционално тестирање:
- Перформансе: JMeter, LoadRunner, Gatling, k6.
- Безбедност: OWASP ZAP, Burp Suite, Acunetix.
- Компатибилност: BrowserStack, Sauce Labs.
- Удобност коришћења: UserTesting.com, алати за праћење погледа.
Пример аутоматизације дела нефункционалног тестирања може бити скрипта за проверу времена учитавања странице:
import time
import requests
def measure_page_load_time(url):
"""
Мери време учитавања задате URL.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Позива HTTPError за лоше одговоре (4xx или 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Време учитавања {url}: {load_time:.2f} секунди")
return load_time
except requests.exceptions.RequestException as e:
print(f"Грешка при учитавању {url}: {e}")
return None
# Пример коришћења
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
Резултати нефункционалног тестирања често се представљају у облику извештаја, графикона и метрика који омогућавају процену карактеристика система и доношење одлука о потребним унапређењима.