Sobes.tech
Junior

Kas yra nefunkcinis testavimas?

sobes.tech AI

Atsakymas iš AI

Nefunkcinis testavimas — tai programinės įrangos testavimo tipas, skirtas patikrinti jos nefunkcinius reikalavimus. Jis vertina sistemos savybes, kurios nėra tiesiogiai susijusios su konkrečiomis funkcijomis, o labiau su tuo, "kaip" sistema veikia.

Pagrindiniai nefunkcinio testavimo tikslai:

  • Užtikrinti, kad sistema atitiktų naudotojo ir verslo lūkesčius veikimo, patikimumo, naudotojui patogumo ir kitų aspektų srityje.
  • Atskleisti problemas, kurios gali paveikti sistemos stabilumą, mastelį ir saugumą.
  • Patvirtinti sistemos atitiktį nustatytiems standartams ir reikalavimams.

Nefunkcinio testavimo tipai:

Tipas Trumpas aprašymas Tikrinamų savybių pavyzdžiai
Našumo testavimas Sistemos greičio, reakcijos laiko, stabilumo ir mastelio įvertinimas apkrovos metu. Atsako laikas, pralaidumas, CPU/atminties apkrova.
Aukšto apkrovos testavimas Sistemos elgesio patikrinimas tikėtinoje pikų apkrovos metu. Vienu metu naudojančių vartotojų skaičius, transakcijos per sekundę.
Streso testavimas Sistemos elgesio patikrinimas viršijus tikėtiną piką arba trūkstant išteklių. Sistemos gedimo taškas, elgesys perkrovos metu.
Stabilumo testavimas (Endurance Testing) Sistemos gebėjimo išlaikyti ilgalaikį nuolatinį darbą apkrovos metu patikrinimas. Atminties nutekėjimai, našumo blogėjimas laikui bėgant.
Saugumo testavimas Sistemos apsaugos nuo išorinių ir vidinių grėsmių, neleistino prieigos patikrinimas. Apsauga nuo SQL injekcijų, XSS atakų, autentifikacija, autorizacija.
Naudojimo patogumo testavimas (Usability Testing) Nustatyti, kaip lengva ir intuityvu naudotojams naudotis sistema. Aiškus sąsajos dizainas, lengva navigacija, prieinamumas.
Suderinamumo testavimas Sistemos veikimas įvairiose aplinkose (naršyklės, OS, įrenginiai). Parama įvairioms naršyklių versijoms, OS.
Patikimumo testavimas (Reliability Testing) Sistemos gebėjimo atlikti savo funkcijas be klaidų nustatytu laikotarpiu įvertinimas. Vidutinis veikimo laikas iki gedimo (MTBF), gedimo tikimybė.
Prieinamumo testavimas (Accessibility Testing) Patikrinti sistemos patogumą naudotis žmonėms su ribotomis galimybėmis. Atitiktis WCAG standartams.
Lokalizacijos/Internacionalizacijos testavimas Sistemos pritaikymas įvairioms kalboms ir regioninėms nustatymams. Išverstos eilutės, datos/skaičių formatų nustatymai.

Nefunkcinis testavimas dažniausiai atliekamas anksčiau programinės įrangos kūrimo ciklo etapų nei funkcionalinis, tačiau jo planavimas prasideda nuo reikalavimų formavimo. Jis gali būti automatizuotų procesų dalis, ypač atliekant našumo ir saugumo testus.

Nefunkcinio testavimo įrankiai:

  • Našumas: JMeter, LoadRunner, Gatling, k6.
  • Saugumas: OWASP ZAP, Burp Suite, Acunetix.
  • Suderinamumas: BrowserStack, Sauce Labs.
  • Patogumas naudoti: UserTesting.com, akių sekimo įrankiai.

Pavyzdys automatizacijos dalies — skriptas, tikrinantis įkėlimo laiko matavimą:

import time
import requests

def measure_page_load_time(url):
    """
    Išmatuoja nurodyto URL įkėlimo laiką.
    """
    start_time = time.time()
    try:
        response = requests.get(url)
        response.raise_for_status()  # Sukels HTTPError, jei atsakymas blogas (4xx ar 5xx)
        end_time = time.time()
        load_time = end_time - start_time
        print(f"{url} įkėlimo laikas: {load_time:.2f} sekundžių")
        return load_time
    except requests.exceptions.RequestException as e:
        print(f"Klaida įkeliant {url}: {e}")
        return None

# Pavyzdys naudoti
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)

Nefunkcinio testavimo rezultatai dažnai pateikiami kaip ataskaitos, grafikai ir metrikos, leidžiančios įvertinti sistemos savybes ir priimti sprendimus dėl būtinų patobulinimų.