Das Verbergen wichtiger Geschäftslogik oder des Systemzustands in einer Blackbox erschwert die Überprüfung des korrekten Systemverhaltens. Es ist einfacher, das Verhalten einer einzelnen Komponente im System ausführlich zu testen als das gesamte System. Ich bevorzuge es, solche Dinge explizit durch einen Mechanismus aufzudecken, damit sie auf sinnvolle Weise auf Einheit / Regression / Integration / Qualitätssicherung getestet werden können.
Eine Option für einen Cache wäre, eine spezielle Seite bereitzustellen, die einige Details zum Cache enthält (Inhalt, Status usw.). Dies kann beim Debuggen in der Entwicklung und möglicherweise in der Produktion hilfreich sein. Auf dieser Seite kann die Qualitätssicherung auch Testfälle für den Cache erstellen, wenn ihnen Einzelheiten zum erwarteten Verhalten des Caches mitgeteilt werden. Die Verwendung von Leistungsindikatoren und / oder Protokolldateien zur expliziten Dokumentation des Cache-Verhaltens ist ein weiterer weniger sichtbarer, aber praktikabler Ansatz.
Beachten Sie, dass dieser Ansatz kein Ersatz für End-to-End-Leistungstests ist. Dies ist ein Mechanismus, um sicherzustellen, dass sich der Cache selbst korrekt verhält. Leistungstests sollten verwendet werden, um festzustellen, ob das Caching die beabsichtigte Auswirkung auf die Leistung hat.
Beachten Sie auch, dass das Austauschen von Systemkomponenten durch neue, die dieselbe Schnittstelle wie das Einführen eines Caches implementieren, eine destabilisierende und täuschend komplexe Änderung sein kann. Mit dem Cache-Beispiel führen Sie den Status in dem Zustand ein, der zuvor statuslos war, wodurch Fehler verursacht werden können, die schwerer zu finden oder zu reproduzieren sind. Eine solche Änderung sollte immer mit einem vollständigen Regressionstest einhergehen, um das erwartete Systemverhalten zu überprüfen.