Co je to nefunkční testování?
sobes.tech AI
Odpověď od AI
Nefunkční testování je typ softwarového testování zaměřený na kontrolu nefunkčních požadavků. Hodnotí vlastnosti systému, které nejsou přímo spojeny s konkrétními funkcemi, ale spíše s tím, "jak" systém funguje.
Hlavní cíle nefunkčního testování:
- Zajistit, že systém splňuje očekávání uživatelů a podnikání v oblasti výkonu, spolehlivosti, použitelnosti a dalších aspektů.
- Identifikovat problémy, které mohou ovlivnit stabilitu, škálovatelnost a bezpečnost systému.
- Potvrdit shodu systému s stanovenými normami a požadavky.
Druhy nefunkčního testování:
| Typ testu | Krátký popis | Příklady kontrolovaných vlastností |
|---|---|---|
| Výkonové testování | Hodnocení rychlosti, odezvy, stability a škálovatelnosti systému při zátěži. | Doba odezvy, propustnost, využití CPU/paměti. |
| Zátěžové testování | Chování systému při očekávané špičkové zátěži. | Počet současných uživatelů, transakcí za sekundu. |
| Stresové testování | Chování systému při překročení očekávané špičkové zátěže nebo nedostatku zdrojů. | Bod selhání systému, chování při přetížení. |
| Stabilitní testování (Endurance Testing) | Schopnost systému vydržet dlouhodobou nepřetržitou práci při zátěži. | Úniky paměti, degradace výkonu v čase. |
| Bezpečnostní testování | Ochrana systému před vnějšími a vnitřními hrozbami, neoprávněným přístupem. | Ochrana před SQL injekcemi, XSS útoky, autentifikace, autorizace. |
| Testování použitelnosti (Usability Testing) | Určení, jak snadno a intuitivně mohou uživatelé systém používat. | Přehledné rozhraní, snadná navigace, dostupnost. |
| Kompatibilitní testování | Fungování systému v různých prostředích (prohlížeče, OS, zařízení). | Podpora různých verzí prohlížečů, OS. |
| Spolehlivostní testování (Reliability Testing) | Hodnocení schopnosti systému plnit své funkce bez chyb po stanovenou dobu. | Průměrná doba mezi poruchami (MTBF), pravděpodobnost selhání. |
| Dostupnostní testování (Accessibility Testing) | Kontrola použitelnosti systému pro osoby s omezenými schopnostmi. | Shoda s normami WCAG. |
| Lokalizační/internacionalizační testování | Přizpůsobení systému různým jazykům a regionálním nastavením. | Přeložené řetězce, formáty dat/číslic. |
Nefunkční testování se obvykle provádí v ranějších fázích životního cyklu vývoje softwaru než funkční testování, ale jeho plánování začíná tvorbou požadavků. Může být součástí automatizovaných procesů, zejména při testování výkonu a bezpečnosti.
Nástroje pro nefunkční testování:
- Výkon: JMeter, LoadRunner, Gatling, k6.
- Bezpečnost: OWASP ZAP, Burp Suite, Acunetix.
- Kompatibilita: BrowserStack, Sauce Labs.
- Použitelnost: UserTesting.com, nástroje pro sledování pohybu očí.
Příkladem automatizace části nefunkčního testování může být skript pro kontrolu doby načítání stránky:
import time
import requests
def measure_page_load_time(url):
"""
Měří dobu načítání zadané URL.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Vyvolá HTTPError pro špatné odpovědi (4xx nebo 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Doba načítání {url}: {load_time:.2f} sekund")
return load_time
except requests.exceptions.RequestException as e:
print(f"Chyba při načítání {url}: {e}")
return None
# Příklad použití
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
Výsledky nefunkčního testování jsou často prezentovány ve formě zpráv, grafů a metrik, které umožňují hodnotit vlastnosti systému a přijímat rozhodnutí o potřebných vylepšeních.