Wenn man sie pflegen muss hat man zu viele Assertions, wenn ein Fehler durchschlüpft zu wenige. Behavioral Diff (auch Characterization Test, Golden Master oder Approval-Test) ist ein innovativer Testansatz um dieses Problem zu lösen. Die Idee besteht darin, das gesamte beobachtbare Verhalten der Anwendung bei Testablauf aufzuzeichnen. Bei einer Änderung werden alle Unterschiede im aufgezeichneten Verhalten der Anwendung erkannt und dargestellt. Sind diese Unterschiede gewünscht, so wird (ähnlich einem Commit bei einem VCS) das neue Verhalten zur neuen "Wahrheit" und zukünftig Unterschiede zu diesem Verhalten aufgezeigt. Statt bei Tests einzelne Prüfregeln erstellen und pflegen zu müssen, und dabei doch nie alle Details erfassen zu können, erhält man durch ein Behavioral Diff quasi 100% Assertions bei minimalem Pflegeaufwand.
In den Beispielen wird eine GUI mit Hilfe des Open Source Projektes ReTest getestet. Der Clou dabei: mittels Monkey-Testing kann man dafür die Tests sogar generieren. Monkey-Testing findet vollautomatisch und kostengünstig Fehler bzw. zeichnet das Programmverhalten auf. Durch die Kombination mit "Behavioral Diff" und wenn man diesen Affen etwas trainiert, kann man seinen Testaufwand locker halbieren und dabei noch die Qualität verbessern!