Sobes.tech
Junior

Mi az a nem funkcionális tesztelés?

sobes.tech MI

Válasz az MI-től

Nem funkcionális tesztelés egy olyan szoftvertesztelési típus, amely a nem funkcionális követelmények ellenőrzésére irányul. Értékeli a rendszer jellemzőit, amelyek nem kapcsolódnak közvetlenül konkrét funkciókhoz, hanem inkább a "hogyan" működik a rendszer.

A nem funkcionális tesztelés fő céljai:

  • Biztosítani, hogy a rendszer megfeleljen a felhasználók és az üzlet elvárásainak a teljesítmény, megbízhatóság, használhatóság és más szempontok tekintetében.
  • Problémák azonosítása, amelyek befolyásolhatják a rendszer stabilitását, skálázhatóságát és biztonságát.
  • Megerősíteni, hogy a rendszer megfelel a meghatározott szabványoknak és követelményeknek.

A nem funkcionális tesztelés típusai:

Típus Rövid leírás Ellenőrzött jellemzők példái
Teljesítmény tesztelés A rendszer sebességének, reakcióképességének, stabilitásának és skálázhatóságának értékelése terhelés alatt. Válaszidő, átviteli képesség, CPU/memória használat.
Terheléses tesztelés A rendszer viselkedése a várható csúcsterhelés alatt. Egyszerre felhasználók száma, tranzakciók másodpercenként.
Stressz tesztelés A rendszer viselkedése a vártnál magasabb terhelés vagy erőforrás hiány esetén. A rendszer hibapontja, túlterhelés esetén viselkedés.
Stabilitási teszt (Endurance Testing) A rendszer képessége hosszú távon terhelés alatt működni. Memóriaszivárgás, teljesítmény romlása idővel.
Biztonsági tesztelés A rendszer védelme külső és belső fenyegetésekkel szemben, jogosulatlan hozzáférés ellen. SQL-injekciók, XSS támadások, hitelesítés, jogosultság.
Használhatósági teszt (Usability Testing) Annak meghatározása, hogy mennyire könnyű és intuitív a rendszer használata a felhasználók számára. Átlátható felület, könnyű navigáció, hozzáférhetőség.
Kompatibilitási teszt A rendszer működése különböző környezetekben (böngészők, OS, eszközök). Támogatás különböző böngésző- és OS-verziókhoz.
Megbízhatósági teszt (Reliability Testing) A rendszer képessége hibák nélkül végrehajtani funkcióit egy adott időtartam alatt. Átlagos meghibásodási idő (MTBF), meghibásodási valószínűség.
Hozzáférhetőségi teszt (Accessibility Testing) A rendszer használhatósága fogyatékkal élő személyek számára. WCAG szabványoknak való megfelelés.
Lokalisítás/Internacionalizációs teszt A rendszer alkalmazkodása különböző nyelvekhez és regionális beállításokhoz. Fordított szövegek, dátum/szám formátumok.

A nem funkcionális tesztelést általában a szoftverfejlesztés korai szakaszaiban végzik, mint a funkcionális tesztelést, de a tervezés a követelmények meghatározásával kezdődik. Része lehet automatizált folyamatoknak, különösen a teljesítmény- és biztonsági tesztelés esetében.

A nem funkcionális teszteléshez eszközök:

  • Teljesítmény: JMeter, LoadRunner, Gatling, k6.
  • Biztonság: OWASP ZAP, Burp Suite, Acunetix.
  • Kompatibilitás: BrowserStack, Sauce Labs.
  • Használhatóság: UserTesting.com, szemmozgás-követő eszközök.

Egy példa a nem funkcionális tesztelés automatizálására egy oldal betöltési idejének ellenőrzésére szolgáló szkript:

import time
import requests

def measure_page_load_time(url):
    """
    A megadott URL betöltési idejének mérése.
    """
    start_time = time.time()
    try:
        response = requests.get(url)
        response.raise_for_status()  # HTTPError kiváltása rossz válaszok esetén (4xx vagy 5xx)
        end_time = time.time()
        load_time = end_time - start_time
        print(f"{url} betöltési ideje: {load_time:.2f} másodperc")
        return load_time
    except requests.exceptions.RequestException as e:
        print(f"Hiba a betöltés során {url}: {e}")
        return None

# Példa a használatra
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)

A nem funkcionális teszt eredményei gyakran jelentések, grafikonok és metrikák formájában jelennek meg, amelyek értékelik a rendszer jellemzőit és döntéseket hoznak a szükséges fejlesztésekről.