Harmaiden laatikoiden testaus on eräänlainen ammattimainen testaus, jota käytetään usein tietokoneohjelmistoissa ja jossa yhdistyvät tietyt mustan laatikon testauksen ja valkoisen laatikon testauksen näkökohdat. Yleisenä ajatuksena on yhdistää nämä kaksi muuta tyyppiä hyödyntämään kummankin vahvuuksia ja minimoida niiden rajoitukset tai heikkoudet. Harmaan laatikon testaus koostuu pohjimmiltaan ammattimaisesta testauksesta, jossa testaajat ymmärtävät joitain ohjelmiston toimintatapoja, mutta he eivät ymmärrä kaikkea siitä.
Tietokoneohjelmistoja kehitettäessä ja testattaessa käytetään usein kahta yleistä testausmallia. Nämä ovat mustan laatikon testausta ja valkoisen laatikon testausta, ja harmaiden laatikoiden testaus on pohjimmiltaan molempien yhdistelmä. Mustan laatikon testaus koostuu testauksesta, jossa testaajat eivät ymmärrä ohjelmistoa käyttävää koodia tai pääse siihen käsiksi. Esimerkiksi joku voi käyttää mustan laatikon testausta, jotta ulkopuolinen yritys voi kehittää ohjelmiston, jota voidaan käyttää tietokoneen käyttöjärjestelmän kanssa, antamatta yritykselle käyttöjärjestelmän lähdekoodia.
Tämän tyyppistä testausta käyttävät usein monet eri ohjelmistoyritykset, ja sitä voidaan käyttää sekä sisäisessä että ulkoisessa testauksessa. Yksi tämän tyyppisen testauksen suurimmista heikkouksista on kuitenkin se, että testaajien rajallinen tietämys voi mahdollisesti haitata heidän testaamistaan. Tämä edellyttää usein, että tulokset analysoi kolmas osapuoli, joka ymmärtää sekä suoritettavat testit että testattavan ohjelmiston takana olevan koodin. Harmaan laatikon testauksella pyritään lievittämään joitain näistä ongelmista yhdistämällä tämäntyyppinen testaus tiettyihin valkoisen laatikon testauksen osiin.
Valkoisen laatikon testaus koostuu ohjelmistotestauksesta, jonka tekevät ihmiset, jotka ymmärtävät testattavan ohjelmiston täysin ja joilla on pääsy ohjelmiston lähdekoodiin. Tämä tehdään usein sisäisesti ohjelmistokehittäjän toimesta sen varmistamiseksi, että ohjelma toimii oikein ja jotta testaajat voivat olla suoraan vuorovaikutuksessa ohjelman takana olevan koodin kanssa. Tämäntyyppisissä testeissä on kuitenkin mahdollisia turvallisuusongelmia, joten harmaan laatikon testausta käytetään usein molempien tyyppien yhdistämiseen tuottavalla ja turvallisella tavalla.
Harmaan laatikon testauksessa testaajat ymmärtävät käytettävän ohjelmiston tietyt näkökohdat ja saattavat nähdä osan lähdekoodista, mutta eivät kaikkia. Tämä mahdollistaa sen, että testaajat voivat olla vuorovaikutuksessa ja ymmärtää paremmin testattavaa ohjelmaa kuin mustan laatikon testaus sallii, mutta ilman valkoisen laatikon testauksesta mahdollisesti aiheutuvia käyttö- ja suojausongelmia. Joku, joka suorittaa harmaata laatikkoa testattaessa esimerkiksi uuden käyttöjärjestelmän ohjelmistolla, saattaa nähdä ohjelmakokeeseen liittyvien käyttöjärjestelmän osien koodin, mutta ei kaikkia lähdekoodeja.