Sobes.tech
Junior

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.