Čo je to nefukcionalne testovanie?
sobes.tech AI
Odpoveď od AI
Nefunkčné testovanie je typ testovania softvéru zameraný na overenie jeho nefunkčných požiadaviek. Hodnotí vlastnosti systému, ktoré nie sú priamo spojené s konkrétnymi funkciami, ale skôr s tým, "ako" systém funguje.
Hlavné ciele nefunkčného testovania:
- Zabezpečiť, aby systém spĺňal očakávania používateľa a biznisu v oblasti výkonu, spoľahlivosti, používateľskej prívetivosti a ďalších aspektov.
- Odhaliť problémy, ktoré môžu ovplyvniť stabilitu, škálovateľnosť a bezpečnosť systému.
- Potvrdiť súlad systému s stanovenými štandardmi a požiadavkami.
Druhy nefunkčného testovania:
| Typ testovania | Krátky popis | Príklady overovaných vlastností |
|---|---|---|
| Testovanie výkonu | Hodnotenie rýchlosti, odozvy, stability a škálovateľnosti systému pod záťažou. | Čas odozvy, priepustnosť, záťaž CPU/pamäte. |
| Záťažové testovanie | Kontrola správania systému pri očakávanej vrcholovej záťaži. | Počet súčasných používateľov, transakcie za sekundu. |
| Stresové testovanie | Kontrola správania systému pri prekročení očakávanej vrcholovej záťaže alebo nedostatku zdrojov. | Bod zlyhania systému, správanie pri preťažení. |
| Testovanie stability (Endurance Testing) | Overenie schopnosti systému vydržať dlhodobú nepretržitú prevádzku pod záťažou. | Úniky pamäte, degradácia výkonu časom. |
| Testovanie bezpečnosti | Kontrola ochrany systému pred vonkajšími a vnútornými hrozbami, neoprávneným prístupom. | Ochrana pred SQL-injekciami, XSS útokmi, autentifikácia, autorizácia. |
| Testovanie použiteľnosti (Usability Testing) | Určenie, ako ľahko a intuitívne môžu používatelia systém používať. | Zrozumiteľné rozhranie, jednoduchá navigácia, dostupnosť. |
| Testovanie kompatibility | Kontrola fungovania systému v rôznych prostrediach (prehliadače, OS, zariadenia). | Podpora rôznych verzií prehliadačov, OS. |
| Testovanie spoľahlivosti (Reliability Testing) | Hodnotenie schopnosti systému vykonávať svoje funkcie bez chýb počas stanoveného obdobia. | Priemerná doba medzi poruchami (MTBF), pravdepodobnosť zlyhania. |
| Testovanie dostupnosti (Accessibility Testing) | Kontrola použiteľnosti systému pre ľudí s obmedzenými schopnosťami. | Súlad so štandardmi WCAG. |
| Testovanie lokalizácie/internacionalizácie | Kontrola prispôsobenia systému pre rôzne jazyky a regionálne nastavenia. | Preložené reťazce, formáty dát/čísiel. |
Nefunkčné testovanie sa zvyčajne vykonáva na skorších etapách životného cyklu vývoja softvéru než funkčné, ale jeho plánovanie začína tvorbou požiadaviek. Môže byť súčasťou automatizovaných procesov, najmä pri testovaní výkonu a bezpečnosti.
Nástroje pre nefunkčné testovanie:
- Výkon: JMeter, LoadRunner, Gatling, k6.
- Bezpečnosť: OWASP ZAP, Burp Suite, Acunetix.
- Kompatibilita: BrowserStack, Sauce Labs.
- Používateľská prívetivosť: UserTesting.com, nástroje na sledovanie pohľadu.
Príklad automatizácie časti nefunkčného testovania môže byť skript na kontrolu času načítania stránky:
import time
import requests
def measure_page_load_time(url):
"""
Meria čas načítania zadaného URL.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Vyvolá HTTPError pre zlé odpovede (4xx alebo 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Čas načítania {url}: {load_time:.2f} sekúnd")
return load_time
except requests.exceptions.RequestException as e:
print(f"Chyba pri načítaní {url}: {e}")
return None
# Príklad použitia
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
Výsledky nefunkčného testovania sú často prezentované vo forme správ, grafov a metrík, ktoré umožňujú hodnotiť vlastnosti systému a prijímať rozhodnutia o potrebných zlepšeniach.