Case
Casestudy: testinfrastructuur voor foutpaden met Application Verifier
Technische case over het eerst opzetten van een testinfrastructuur voor foutscenario’s met Application Verifier, als aanzet om herhaling te voorkomen.
Overzicht van de case
In deze case lieten wij het niet bij een eenmalige bugfix, maar hebben wij met Application Verifier de testinfrastructuur voor foutscenario’s zelf opgezet. Het doel was niet alleen “de huidige storing vinden”, maar ook “eerst zorgen dat het ook bij de volgende storing eenvoudig te volgen is”.
Symptoom
- Met tests van het normale verloop alleen komen problemen in foutpaden moeilijk aan het licht
- Weinig resources en handle-fouten worden vaak pas zichtbaar onder omstandigheden die dicht bij productie liggen
- Bij elk onderzoek hangt de werkwijze al snel af van wie het uitvoert
Randvoorwaarden
- Resources op echte apparatuur werkelijk uitputten is kostbaar en riskant
- Fouten aan de grens met native code en rond Win32 moesten vroegtijdig zichtbaar worden
- De opzet moest ook bruikbaar zijn voor het volgende storingsonderzoek
Wat wij hebben waargenomen
- Verifier-instellingen zoals
Handles,HeapsenLow Resource Simulation - Sporen van foutpaden, onder meer via
!htraceen page heap - De samenhang tussen onze eigen lifecycle-log en de Verifier-stopinformatie
Hoe wij het probleem hebben geïsoleerd
Eerst hebben wij onderscheiden wat met gewone logs te volgen is en wat pas zichtbaar wordt als Verifier wordt toegepast. Daarna hebben wij Verifier toegepast op een uitvoeringspad in een testharnas en gekozen voor een aanpak waarmee moeilijk reproduceerbare fouten eerder zichtbaar worden.
Hoe wij het hebben verbeterd
- Wij hebben een testinfrastructuur opgezet die foutpaden bewust laat doorlopen
- Handle-fouten en heap-fouten zijn nu in kortere lussen te observeren
- Wij hebben de meetpunten zo geordend dat ze eenvoudig terugkomen in latere ontwerpreviews en maatregelen om herhaling te voorkomen
Diensten waar deze case bij aansluit
Deze case sluit rechtstreeks aan bij Foutanalyse en oorzaakonderzoek, waarmee wij storingen reproduceren en de oorzaak vaststellen. Daarnaast sluit zij aan bij Technisch advies en ontwerpreview, waarmee wij bepalen in hoeverre tests van foutscenario’s en meetpunten in het ontwerp worden opgenomen.
Vraag ons om advies
Heeft u een vraagstuk dat aansluit bij de inhoud van deze pagina? Bespreek het dan met ons en laat ons weten wat de huidige context is en welke ondersteuning u nodig hebt.