Il Context Driven Testing è una metodologia agile che si propone di fornire un nuovo tipo di approccio al testing dei prodotti software. Ideata ed esposta inizialmente da Brian Marick (fondatore della Testing Foundations), è poi stata abbracciata da molti altri specialisti del settore.
Questo perché l'approccio tradizionale non si adatta alle metodologie agili, particolarmente nel momento in cui si considera il testing semplicemente un momento di verifica sulla soddisfazione delle specifiche fissati a priori. Il testing invece viene visto ora come parte integrante del processo progettuale (e naturalmente di quello produttivo).
Il maggior sforzo di formalizzazione in questo ambito si deve a Cem Kaner che ne ha descritto motivazioni, pratiche e strumenti.
In tempi recenti ci si è resi conto che un'eccessiva integrazione del testing nelle metodologie leggere ne snaturava il principio base. In pratica, ci si è accorti che effettuare troppi test produceva l'effetto opposto a quello desiderato. Oltre una certa soglia, l'aumentare dei test produce infatti un aumento ingiustificato nella documentazione e una spesa in termini di tempi non controbilanciata da una maggiore stabilità del software prodotto.
Per questo James Bach ha proposto un nuovo approccio al testing, detto Rapid Testing, di aiuto nel discernere fra test da effettuare e test da evitare. Il punto di forza del metodo consiste nell'avere una serie rapidissima di test mirati, da effettuare ciclicamente durante tutte le fasi di sviluppo del progetto.
Otto i concetti fondamentali da seguire per scegliere al meglio questa serie di test: