Il test esplorativo è un approccio alla valutazione del software che integra l'apprendimento del programma in fase di sviluppo con i piani per i test futuri. Il test esplorativo viene talvolta definito test ad hoc.
Una volta completata la codifica, i test esplorativi aiutano gli sviluppatori a saperne di più sulle funzionalità di un programma e scoprire se i requisiti sono stati ignorati o fraintesi. I requisiti mancati possono trasformarsi in nuove storie utente o possono essere bug che devono essere risolti immediatamente.
I tester gestiscono l'ambito dei test esplorativi utilizzando un concetto chiamato charter. Le carte sono dichiarazioni di quali aspetti del sistema devono essere testati. A differenza degli script, le carte dei test esplorativi lasciano i passaggi effettivi del test al tester esperto e disciplinato. Ad esempio, mentre uno script potrebbe dire "Digita John Smith nel campo Utente e 1234 nel campo Password", una carta potrebbe semplicemente dire "prova la funzionalità di accesso".
La progettazione di carte per i test esplorativi è uno degli aspetti più difficili dei test esplorativi. È difficile sapere quanti test sono sufficienti, quali aspetti del sistema necessitano di maggiore copertura o quanto tempo un tester dovrebbe impiegare per esaminare un aspetto particolare del sistema.