Testiranje sive škatle je vrsta profesionalnega testiranja, ki se pogosto uporablja za računalniško programsko opremo, ki združuje nekatere vidike testiranja črne škatle in testiranja bele škatle. Splošna ideja je združiti ti dve drugi vrsti, da bi izkoristili prednosti vsakega, hkrati pa zmanjšali njihove omejitve ali slabosti. Testiranje sive škatle je v bistvu sestavljeno iz profesionalnega testiranja, pri katerem preizkuševalci razumejo nekatere načine delovanja programske opreme, vendar ne razumejo vsega o njej.
Pri razvoju in testiranju računalniške programske opreme se pogosto uporabljata dva običajna modela testiranja. To sta testiranje črne škatle in testiranje bele škatle, testiranje sive škatle pa je v bistvu kombinacija obojega. Testiranje črne skrinjice je sestavljeno iz testiranja, pri katerem preizkuševalci ne razumejo ali imajo dostopa do kode, ki poganja programsko opremo. Nekdo lahko na primer uporabi črno skrinjico, da bi zunanjemu podjetju omogočil razvoj programske opreme za delovanje z računalniškim operacijskim sistemom (OS), ne da bi podjetju dal izvorno kodo za OS.
To vrsto testiranja pogosto uporabljajo številna različna podjetja za programsko opremo in se lahko uporablja tako za notranje kot zunanje testiranje. Ena največjih slabosti te vrste testiranja pa je, da lahko omejeno znanje preizkuševalcev ovira njihovo testiranje. To bo pogosto zahtevalo, da rezultate analizira tretja oseba, ki razume tako izvajane teste kot kodo za programsko opremo, ki se testira. Preizkušanje sive škatle poskuša ublažiti nekatere od teh težav s kombinacijo te vrste testiranja z nekaterimi elementi testiranja bele škatle.
Testiranje v beli škatli je sestavljeno iz testiranja programske opreme, ki ga opravijo ljudje, ki popolnoma razumejo programsko opremo, ki se testira, in imajo dostop do izvorne kode za programsko opremo. To se pogosto izvaja v podjetju pri razvijalcu programske opreme, da se zagotovi pravilno delovanje programa in da se preizkuševalcem omogoči neposredna interakcija s kodo, ki stoji za programom. Vendar pa obstajajo možne varnostne težave s to vrsto testiranja, zato se testiranje sive škatle pogosto uporablja za kombiniranje obeh vrst na načine, ki so hkrati produktivni in varni.
Pri testiranju sive škatle preizkuševalci razumejo določene vidike uporabljene programske opreme in lahko vidijo nekatere dele izvorne kode, vendar ne vse. To preizkuševalcem omogoča bolj popolno interakcijo s programom, ki ga preizkušajo, in razumevanje tega programa, kot to omogoča testiranje črne škatle, vendar brez popolnega dostopa in varnostnih težav, ki lahko nastanejo pri testiranju bele škatle. Nekdo, ki na primer izvaja testiranje programske opreme v sivem polju za nov OS, bo morda lahko videl kodo za vidike operacijskega sistema, ki so pomembni za njegovo ali njeno testiranje programa, ne pa celotne izvorne kode.