Sobes.tech
Junior

Č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.