Vi presenterar en automatiserad teknik för att hitta defekter i kompilatorer för grafikskuggningsspråk. En viktig utmaning i kompileringstestning är bristen på ett orakel som klassificerar en utmatning som korrekt eller inkorrekt; detta är särskilt relevant i grafikskuggarkompilatorer där utmatningen är en utgiven bild som vanligtvis är underspecificerad. Vår metod bygger på den senaste tidens framgångsrika tekniker för kompilatorvalidering baserad på metamorfisk testning, och utnyttjar befintliga högkvalitativa grafikskuggare för att skapa uppsättningar av transformerade shadlers som ska vara semantiskt likvärdiga. Rendering missmatchningar är sedan indikativ för shander sammanställning buggar. Avvikande skuggare minimeras automatiskt för att identifiera, i varje fall, en minimal förändring till en ursprunglig högvärdig skuggare som inducerar en Shander kompilator bugg. Vi har implementerat strategin som ett verktyg, GLFuzz, mål OpenGL skuggspråk, GLSL. Våra experiment över en uppsättning av 17 GPU och förare konfigurationer, som spänner över de viktigaste 7 GPU designers, har lett till oss att hitta och rapportera mer än 60 distinkta buggar, som täcker alla testade konfigurationer. Förutom defekt rendering, dessa frågor identifiera säkerhetskritiska sårbarheter som påverkar WebGL, inklusive en betydande distansinformation läcka säkerhet bugg där en skadlig webbsida kan fånga innehållet i andra webbläsarflikar, och en bugg där besöka en skadlig webbsida kan leda till en łblue skärm av dödž under Windows 10. Våra fynd visar att shadlerkompilatordefekter är vanliga, och att metamorf testning ger ett effektivt sätt att upptäcka dem automatiskt.
Som ett annat exempel, metamorfisk testning har framgångsrikt tillämpats för att testa grafiska shadler kompilatorer REF.
Automated testing of graphics shader compilers
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}