Ett antal verktyg kan statiskt kontrollera programkod för att identifiera vanliga felmönster. Samtidigt är program allt mer beroende av externa API:er för att utföra huvuddelen av sitt arbete: den bugg-prone programlogiken håller på att putsas ut, och många fel innebär knepiga subrutinsamtal till den ständigt växande uppsättningen externa bibliotek. Att utvidga de statiska analysverktygen till att omfatta tillgängliga API:er är ett tillvägagångssätt som replikerar knappa mänskliga ansträngningar över olika verktyg och inte skala. Istället föreslår vi att flytta den statiska API-anropsverifieringskoden till API-implementeringen, och att distribuera verifieringskoden tillsammans med biblioteket korrekt. Vi har utformat ett ramverk för att tillhandahålla statisk verifieringskod tillsammans med Java klasser, och har utökat FindBugs statiska analysverktyg för att kontrollera motsvarande metod anrop. För att validera vårt tillvägagångssätt skrev vi verifieringstester för 100 olika metoder, och körde FindBugs på 6,9 miljoner metodanrop på vad som uppgår till ca 13 miljoner linjer av produktionskvalitet kod. I den uppsättning av 55 tusen metod anrop som potentiellt kunde vara statiskt verifieras vårt tillvägagångssätt identifierade 800 sannolika fel.
Den statiska analysen av REF baseras på statslösa samtal till ett bibliotek som återspeglar det aktuella API:et.
A Framework for the Static Verification of API Calls
{'venue': None, 'journal': None, 'mag_field_of_study': ['Computer Science']}