Sobes.tech
Junior

Kas ir nefunkcionālais tests?

sobes.tech AI

Atbilde no AI

Nefunkcionālais testēšana ir programmatūras testēšanas veids, kas ir vērsts uz tās nefunkcionālo prasību pārbaudi. Tas novērtē sistēmas īpašības, kas nav tieši saistītas ar konkrētām funkcijām, bet drīzāk ar to, "kā" sistēma darbojas.

Galvenie nefunkcionālas testēšanas mērķi:

  • Nodrošināt, ka sistēma atbilst lietotāja un biznesa gaidām veiktspējas, uzticamības, lietošanas ērtības un citu aspektu ziņā.
  • Atklāt problēmas, kas var ietekmēt sistēmas stabilitāti, mērogojamību un drošību.
  • Apstiprināt sistēmas atbilstību noteiktajiem standartiem un prasībām.

Nefunkcionālas testēšanas veidi:

Veids Īss apraksts Pārbaudāmo īpašību piemēri
Veiktspējas testēšana Sistēmas ātruma, reakcijas laika, stabilitātes un mērogojamības novērtējums slodzes laikā. Atbildes laiks, caurlaidspēja, CPU/memoria slodze.
Slodzes testēšana Sistēmas uzvedības pārbaude gaidītās maksimālās slodzes laikā. Vienlaicīgi lietotāju skaits, transakcijas sekundē.
Stresa testēšana Sistēmas uzvedības pārbaude pārsniedzot gaidīto maksimālo slodzi vai resursu trūkuma gadījumā. Sistēmas atteices punkts, uzvedība pārslodzes laikā.
Noturības testēšana (Endurance Testing) Sistēmas spējas izturēt ilgstošu nepārtrauktu darbu slodzes laikā pārbaude. Atmiņas noplūdes, veiktspējas pasliktināšanās laika gaitā.
Drošības testēšana Sistēmas aizsardzības pārbaude pret ārējiem un iekšējiem draudiem, neautorizētu piekļuvi. Aizsardzība pret SQL injekcijām, XSS uzbrukumiem, autentifikācija, autorizācija.
Lietojamības testēšana Noteikt, cik viegli un intuitīvi lietotāji var izmantot sistēmu. Saprotams interfeiss, viegla navigācija, pieejamība.
Saderības testēšana Sistēmas darbība dažādās vidēs (pārlūkprogrammās, OS, ierīcēs). Atbalsts dažādām pārlūkprogrammu versijām, OS.
Uzticamības testēšana Sistēmas spēja veikt savas funkcijas bez kļūdām noteiktā laika posmā. Vidējais darbības laiks līdz kļūdai (MTBF), kļūdas varbūtība.
Pieejamības testēšana Sistēmas lietošanas ērtības pārbaude cilvēkiem ar ierobežotām spējām. Atbilstība WCAG standartiem.
Lokalizācijas/Starptautizācijas testēšana Sistēmas pielāgošana dažādām valodām un reģionālajām iestatījumiem. Tulkotās rindas, datumu/skaitļu formāti.

Nefunkcionālais testēšana parasti tiek veikta agrīnākajos programmatūras izstrādes dzīves cikla posmos nekā funkcionālā, bet tās plānošana sākas ar prasību izstrādi. Tā var būt automatizētu procesu daļa, īpaši veiktspējas un drošības testēšanā.

Instrumenti nefunkcionālās testēšanas veikšanai:

  • Veiktspēja: JMeter, LoadRunner, Gatling, k6.
  • Drošība: OWASP ZAP, Burp Suite, Acunetix.
  • Saderība: BrowserStack, Sauce Labs.
  • Lietojamības uzlabojumi: UserTesting.com, acu kustības novērošanas rīki.

Nefunkcionālās testēšanas automatizācijas piemērs varētu būt skripts, kas pārbauda lapas ielādes laiku:

import time
import requests

def measure_page_load_time(url):
    """
    Izmēra norādītā URL ielādes laiku.
    """
    start_time = time.time()
    try:
        response = requests.get(url)
        response.raise_for_status()  # Izsauks HTTPError, ja atbilde ir slikta (4xx vai 5xx)
        end_time = time.time()
        load_time = end_time - start_time
        print(f"{url} ielādes laiks: {load_time:.2f} sekundes")
        return load_time
    except requests.exceptions.RequestException as e:
        print(f"Kļūda, ielādējot {url}: {e}")
        return None

# Piemērs lietošanai
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)

Nefunkcionālo testu rezultāti bieži tiek attēloti kā pārskati, grafiki un metriki, kas ļauj novērtēt sistēmas īpašības un pieņemt lēmumus par nepieciešamajiem uzlabojumiem.