Wat is niet-functioneel testen?
sobes.tech AI
Antwoord van AI
Niet-functioneel testen is een type softwaretest dat gericht is op het controleren van de niet-functionele vereisten. Het beoordeelt de kenmerken van het systeem die niet direct gerelateerd zijn aan specifieke functies, maar eerder aan de "hoe" van de werking van het systeem.
De belangrijkste doelen van niet-functioneel testen:
- Garanderen dat het systeem voldoet aan de verwachtingen van gebruikers en het bedrijf op het gebied van prestaties, betrouwbaarheid, gebruiksgemak en andere aspecten.
- Problemen identificeren die de stabiliteit, schaalbaarheid en veiligheid van het systeem kunnen beïnvloeden.
- Bevestigen dat het systeem voldoet aan de vastgestelde normen en eisen.
Soorten niet-functioneel testen:
| Testtype | Korte beschrijving | Voorbeelden van te controleren kenmerken |
|---|---|---|
| Prestatietesten | Beoordeling van snelheid, responsiviteit, stabiliteit en schaalbaarheid onder belasting. | Reactietijd, doorvoer, CPU/geheugengebruik. |
| Belastingstest | Gedrag van het systeem onder verwachte piekbelasting. | Aantal gelijktijdige gebruikers, transacties per seconde. |
| Stress-test | Gedrag van het systeem bij overschrijding van de verwachte piekbelasting of resource-tekort. | Faalpunt van het systeem, gedrag bij overbelasting. |
| Stabiliteitstest (Endurance Testing) | Het vermogen van het systeem om langdurig onder belasting te blijven werken. | Geheugenlekken, prestatieafname in de loop van de tijd. |
| Beveiligingstest | Beveiliging van het systeem tegen externe en interne bedreigingen, ongeautoriseerde toegang. | Bescherming tegen SQL-injecties, XSS-aanvallen, authenticatie, autorisatie. |
| Gebruiksvriendelijkheidstest (Usability Testing) | Hoe gemakkelijk en intuïtief het voor gebruikers is om het systeem te gebruiken. | Begrijpelijke interface, eenvoudige navigatie, toegankelijkheid. |
| Compatibiliteitstest | Werking van het systeem in verschillende omgevingen (browsers, OS, apparaten). | Ondersteuning voor verschillende browser- en OS-versies. |
| Betrouwbaarheidstest (Reliability Testing) | Het vermogen van het systeem om zijn functies uit te voeren zonder storingen gedurende een bepaalde periode. | Gemiddelde tijd tussen storingen (MTBF), kans op storing. |
| Toegankelijkheidstest (Accessibility Testing) | Hoe gebruiksvriendelijk het systeem is voor mensen met beperkte mogelijkheden. | Voldoet aan WCAG-standaarden. |
| Lokalisatie/Internationale Test | Aanpassing van het systeem aan verschillende talen en regionale instellingen. | Vertaalde teksten, datumnotaties/getalformaten. |
Niet-functioneel testen wordt meestal uitgevoerd in de vroege fasen van de softwareontwikkelingslevenscyclus dan functioneel testen, maar de planning begint met het opstellen van eisen. Het kan onderdeel zijn van geautomatiseerde processen, vooral bij prestatietesten en beveiliging.
Tools voor niet-functioneel testen:
- Prestaties: JMeter, LoadRunner, Gatling, k6.
- Beveiliging: OWASP ZAP, Burp Suite, Acunetix.
- Compatibiliteit: BrowserStack, Sauce Labs.
- Gebruiksvriendelijkheid: UserTesting.com, eye-tracking tools.
Een voorbeeld van automatisering van een deel van niet-functioneel testen is een script om de laadtijd van een pagina te controleren:
import time
import requests
def measure_page_load_time(url):
"""
Meet de laadtijd van de opgegeven URL.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Roept HTTPError op voor slechte antwoorden (4xx of 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Laadtijd voor {url}: {load_time:.2f} seconden")
return load_time
except requests.exceptions.RequestException as e:
print(f"Fout bij laden van {url}: {e}")
return None
# Voorbeeldgebruik
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
De resultaten van niet-functioneel testen worden vaak gepresenteerd in rapporten, grafieken en statistieken die de kenmerken van het systeem evalueren en beslissingen over noodzakelijke verbeteringen mogelijk maken.