Home

foutlokalisatie

Foutlokalisatie is het proces binnen softwareontwerp en -testen waarbij men de exacte locatie van een fout (bug) in een softwaresysteem probeert te bepalen. Het doel is om snel en gerichte identificatie te leveren van de code-eenheid die verantwoordelijk is voor een waargenomen fout, zodat deze efficiënt kan worden gecorrigeerd zonder onnodig veel code te inspecteren.

Een veelgebruikte benadering is spectrum-based fault localization (SBFL). SBFL gebruikt de resultaten van een verzameling tests

Naast SBFL bestaan er andere benaderingen, zoals dynamische programmaslicing om relevante code te isoleren na een

Het proces omvat meestal het reproduceren van de fout, het verzamelen van uitvoeringstracés en testresultaten, het

Uitdagingen zijn onder meer afhankelijkheid van de kwaliteit en volledigheid van tests, flaky tests, multi-fout situaties

(waarbij
tests
als
geslaagd
of
mislukt
worden
gemarkeerd)
en
de
dekking
van
code-eenheden
door
die
tests
om
een
suspiciousness-score
toe
te
kennen
aan
elk
element,
zoals
een
statement
of
functie.
Vervolgens
wordt
een
rangorde
opgesteld
zodat
ontwikkelaars
zich
kunnen
richten
op
de
topkandidaten.
Populaire
algoritmen
in
SBFL
zijn
Tarantula,
Ochiai
en
D*,
elk
met
verschillende
definities
van
wat
telt
als
betrouwbare
signalen
van
betrokkenheid
bij
de
fout.
fout,
delta
debugging
om
invoer
of
omstandigheden
te
verkleinen
die
de
fout
veroorzaken,
en
mutation-based
fault
localization
waarbij
mutaties
aan
de
code
worden
toegepast
om
te
observeren
of
de
fout
verdwijnt
of
verandert.
Statistische
en
diagnostische
methoden,
zoals
Bayesian
fault
localization
en
statistische
debugging,
combineren
data
uit
meerdere
foutgevallen
voor
betrouwbaardere
lokalisatie.
berekenen
van
suspiciousness-scores
en
het
beoordelen
van
de
topkandidaten,
het
implementeren
van
een
fix
en
het
opnieuw
uitvoeren
van
regressietests
om
de
foutstatus
te
verifiëren.
en
schaalbaarheidsproblemen
bij
grote
systemen.
Foutlokalisatie
is
een
nuttig
hulpmiddel
voor
debugging
en
testgebaseerde
ontwikkelingspraktijken,
maar
levert
vaak
indicatieve
aanwijzingen
die
bevestigd
moeten
worden
met
inspectie
en
validatie.