Grey box-testning är en typ av professionell testning som ofta används för datorprogram, som kombinerar vissa aspekter av black box-testning och white box-testning. Den allmänna idén är att kombinera dessa två andra typer för att utnyttja styrkorna hos var och en, samtidigt som deras begränsningar eller svagheter minimeras. Grey box-testning består i grunden av professionella tester där testarna förstår några av de sätt som mjukvaran fungerar på, men de förstår inte allt om det.
När man utvecklar och testar datorprogramvara finns det två vanliga testmodeller som ofta används. Dessa är black box-testning och white box-testning, och grå box-testning är i grunden en kombination av båda. Black box-testning består av testning där testarna inte förstår eller har tillgång till koden som kör programvaran. Till exempel kan någon använda black box-testning för att tillåta ett externt företag att utveckla programvara för att köras med ett datoroperativsystem (OS) utan att ge företaget källkoden för operativsystemet.
Denna typ av testning används ofta av många olika mjukvaruföretag och kan användas för både intern och extern testning. En av de största svagheterna med denna typ av testning är dock att testarnas begränsade kunskap potentiellt kan hämma deras testning. Detta kräver ofta att resultaten analyseras av en tredje part som förstår både testerna som körs och koden bakom programvaran som testas. Gray box-testning försöker lindra några av dessa problem genom att kombinera denna typ av testning med vissa delar av white box-testning.
White box-testning består av mjukvarutestning utförd av personer som till fullo förstår programvaran som testas och har tillgång till källkoden för programvaran. Detta görs ofta internt hos en mjukvaruutvecklare för att säkerställa att programmet körs korrekt och för att testarna ska kunna interagera direkt med koden bakom programmet. Det finns dock potentiella säkerhetsproblem med denna typ av testning, och därför används grå box-testning ofta för att kombinera båda typerna på sätt som är både produktiva och säkra.
Vid testning av grå box förstår testarna vissa aspekter av programvaran som används och kan kanske se vissa delar av källkoden men inte hela den. Detta gör att testarna kan interagera mer fullständigt med och förstå programmet de testar än vad black box-testning tillåter, men utan den fulla åtkomst- och säkerhetsproblem som kan uppstå från white box-testning. Någon som utför grå box-testning på programvara för ett nytt operativsystem, till exempel, kanske kan se kod för aspekter av operativsystemet som är relevanta för hans eller hennes testning av programmet, men inte hela källkoden.