Testgenerering har visat sig vara ett effektivt sätt att identifiera programfel. Tyvärr utmanas aktuella testgenerationstekniker av högre ordningsfunktioner på dynamiska språk, såsom JavaScript-funktioner som tar emot callbacks. I synnerhet har befintliga testgeneratorer inte tillgång till statiskt kända typsignaturer, tillhandahåller inte funktioner eller tillhandahåller endast triviala funktioner som ingångar och ignorerar återuppringningar som utlöses av den kod som provas. I detta dokument presenteras LambdaTester, en ny testgenerator som tar upp de specifika problem som högre ordningsfunktioner innebär på dynamiska språk. Tillvägagångssättet leder automatiskt till vilket argument position en metod under provning förväntar sig en callback, genererar och iterativt förbättrar callback-funktioner som ges som indata till denna metod, och använder nya test oracles som kontrollerar om och hur callback-funktioner åberopas. Vi använder LambdaTester för att testa 43 högre ordning funktioner tagna från 13 populära JavaScript-bibliotek. Tillvägagångssättet upptäcker oväntat beteende i 12 av de 13 biblioteken, varav många missas av en toppmodern testgenerator.
LambdaTester REF ] är en test case generator för högre ordning funktioner i JavaScript.
Test generation for higher-order functions in dynamic languages
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}