Filsystemkontroller (som e2fsck) är kritiska, komplexa och svåra att utveckla, och utvecklare idag förlitar sig på handskrivna tester för att utöva denna invecklade kod. Testsviter för filsystemkontroller kräver stora ansträngningar för att utveckla och kräver noggranna resonemang för att täcka en tillräckligt omfattande uppsättning ingångar och återhämtningsmekanismer. Vi presenterar ett verktyg och en metod för att testa filsystemkontroller som minskar behovet av en specifikation av återhämtningsprocessen och utvecklingen av en testsvit. Vår metodik delar upp kontrollens korrekthet i två mål: konsekvens och fullständig återvinning. För varje mål, vi utnyttja antingen filsystemet kontrollera koden själv eller en jämförelse mellan resultaten av flera kontroller för att extrahera en implicit specifikation av korrekt beteende. Vår metodik är förkroppsligad i ett testverktyg som kallas SWIFT, som använder en blandning av symboliskt och konkret utförande; den introducerar två nya tekniker: en specifik konkretiseringsstrategi och en korruptionsmodell som utnyttjar testsviter av filsystemkontroller. Vi använde SWIFT för att testa filsystemkontrollerna i ext2, ext3, ext4, ReiserFS och Minix; vi hittade fel i alla kontroller, inklusive fall som ledde till dataförlust. Dessutom har vi automatiskt genererat testsviter som uppnår kodtäckning på samma sätt som manuellt konstruerade testsviter som levereras med kontrollanterna.
Nya framsteg i filsystem-kontrolltestning utnyttja egenskaperna i kontrollerna för att automatiskt generera implicita specifikationer REF.
Scalable testing of file system checkers
{'venue': "EuroSys '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}