Mis on mittefunktsionaalne testimine?
sobes.tech AI
Vastus AI-lt
Nefunktsionaalne testimine on tarkvaratesti tüüp, mis keskendub selle mittefunktsionaalsete nõuete kontrollimisele. See hindab süsteemi omadusi, mis ei ole otseselt seotud konkreetsete funktsioonidega, vaid pigem selle "kuidas" süsteem töötab.
Nefunktsionaalsete testimise peamised eesmärgid:
- Tagada, et süsteem vastab kasutaja ja äri ootustele jõudluse, usaldusväärsuse, kasutusmugavuse ja teiste aspektide osas.
- Tuvastada probleemid, mis võivad mõjutada süsteemi stabiilsust, skaleeritavust ja turvalisust.
- Kinnitada süsteemi vastavus kehtestatud standarditele ja nõuetele.
Nefunktsionaalsete testide tüübid:
| Tüüp | Lühike kirjeldus | Kontrollitavate omaduste näited |
|---|---|---|
| Jõudluse testimine | Süsteemi kiiruse, reageerimisaja, stabiilsuse ja skaleeritavuse hindamine koormuse all. | Reageerimisaeg, läbilaskevõime, CPU/mälu koormus. |
| Koormustestimine | Süsteemi käitumise kontroll oodatud tippkoormuse ajal. | Samal ajal kasutavate kasutajate arv, tehingud sekundis. |
| Stresstestimine | Süsteemi käitumise kontroll ülekoormuse või ressursside puudumise korral. | Süsteemi tõrkepunkt, ülekoormuse käitumine. |
| Püsivustestimine (Endurance Testing) | Süsteemi võimekatse kestvalt töötada koormuse all. | Mälulekked, jõudluse halvenemine aja jooksul. |
| Turvatestimine | Süsteemi kaitse väliste ja sisemiste ohtude eest, volitamata juurdepääsu kontroll. | SQL-injektsioonide, XSS-rünnakute kaitse, autentimine, autoriseerimine. |
| Kasutusmugavuse testimine (Usability Testing) | Kui lihtne ja intuitiivne on kasutajatel süsteemi kasutada. | Arusaadav liides, lihtne navigeerimine, kättesaadavus. |
| Ühilduvustestimine | Süsteemi töö erinevates keskkondades (brauserid, OS, seadmed). | Toetab erinevaid brauseri versioone, OS-e. |
| Usaldusväärsuse testimine (Reliability Testing) | Süsteemi võime täita oma funktsioone ilma tõrgeteta määratud aja jooksul. | Keskmine tööaeg enne riket (MTBF), rikete tõenäosus. |
| Juurdepääsetavuse testimine (Accessibility Testing) | Süsteemi kasutamise mugavuse kontroll piiratud võimete inimestele. | WCAG standarditega vastavus. |
| Lokaliseerimise/internacionaliseerimise testimine | Süsteemi kohandamine erinevatele keeltele ja piirkondlikele seadistustele. | Tõlgitud read, kuupäeva/numberi formaadid. |
Nefunktsionaalne testimine toimub tavaliselt varasematel tarkvaraarenduse elutsükli etappidel kui funktsionaalne, kuid selle planeerimine algab nõuete koostamisega. See võib olla osa automatiseeritud protsessidest, eriti jõudluse ja turvalisuse testimisel.
Nefunktsionaalsete testide tööriistad:
- Jõudlus: JMeter, LoadRunner, Gatling, k6.
- Turvalisus: OWASP ZAP, Burp Suite, Acunetix.
- Ühilduvus: BrowserStack, Sauce Labs.
- Kasutamismugavus: UserTesting.com, silma jälgimise tööriistad.
Näide automatiseeritud osast — skript, mis kontrollib lehe laadimisaega:
import time
import requests
def measure_page_load_time(url):
"""
Mõõdab antud URL-i laadimisaega.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Tõstab HTTPErrori, kui vastus on halb (4xx või 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"{url} laadimisaeg: {load_time:.2f} sekundit")
return load_time
except requests.exceptions.RequestException as e:
print(f"Viga {url} laadimisel: {e}")
return None
# Kasutamise näide
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
Nefunktsionaalsete testide tulemused esitatakse sageli aruannete, diagrammide ja mõõdikute kujul, mis võimaldavad hinnata süsteemi omadusi ja teha otsuseid vajalike paranduste kohta.