Seppellire la logica aziendale o lo stato del sistema in profondità in una scatola nera, è difficile verificare il corretto comportamento del sistema. È più facile testare in modo esauriente il comportamento di un singolo componente nel sistema rispetto all'intero sistema. Io preferisco esporre queste cose esplicitamente attraverso qualche meccanismo, in modo che possa essere unitariamente testato / regression / integration / QA.
Un'opzione con una cache sarebbe quella di esporre una pagina speciale che fornisce alcuni dettagli sulla cache (contenuto, stato, ecc.). Questo può aiutare nel debugging nello sviluppo e potenzialmente nella produzione. Il QA può anche utilizzare questa pagina per creare casi di test per la cache se vengono forniti dettagli su quale sia il comportamento previsto della cache. L'utilizzo di contatori delle prestazioni e / o file di registro per documentare esplicitamente il comportamento della cache è un altro approccio meno visibile ma praticabile.
Si noti che questo approccio non sostituisce il test delle prestazioni end-to-end. Questo è un meccanismo per garantire che la cache stessa si comporti correttamente. Il test delle prestazioni dovrebbe essere usato per determinare se il caching ha l'effetto desiderato sulle prestazioni.
Si noti inoltre che lo scambio di componenti del sistema con nuovi che implementano la stessa interfaccia come l'introduzione di una cache può essere un cambiamento destabilizzante e ingannevolmente complesso. Con l'esempio della cache, state introducendo lo stato in ciò che era precedentemente stateless, che può creare bug più difficili da trovare o riprodurre. Tale modifica dovrebbe sempre essere accompagnata da test di regressione completi per verificare il comportamento del sistema previsto.