Ich hatte eine Diskussion mit einem Testmanager über die Rolle von Unit- und Integrationstests. Sie forderte die Entwickler auf, zu melden, welche Einheiten und Integrationen wie getestet wurden. Aus meiner Sicht sind Unit- und Integrationstests Teil des Entwicklungsprozesses und nicht des Testprozesses. Über die Semantik hinaus meine ich, dass Unit- und Integrationstests nicht in die Testberichte aufgenommen werden sollten und Systemtester sich nicht darum kümmern sollten. Meine Argumentation basiert auf zwei Dingen.
Unit- und Integrationstests werden immer anhand einer Schnittstelle und eines Vertrags geplant und durchgeführt. Unabhängig davon, ob Sie formalisierte Verträge verwenden, testen Sie immer noch, was z. B. eine Methode tun soll, dh einen Vertrag.
Beim Integrationstest testen Sie die Schnittstelle zwischen zwei verschiedenen Modulen. Die Schnittstelle und der Vertrag bestimmen, wann der Test bestanden wird. Sie testen jedoch immer einen begrenzten Teil des gesamten Systems. Systemtests werden dagegen anhand der Systemspezifikationen geplant und durchgeführt. Die Spezifikation bestimmt, wann der Test bestanden wird.
Ich sehe keinen Wert darin, dem (System-) Tester die Breite und Tiefe von Unit- und Integrationstests mitzuteilen. Angenommen, ich schreibe einen Bericht, in dem aufgeführt ist, welche Art von Komponententests für eine bestimmte Business-Layer-Klasse durchgeführt werden. Was soll er / sie davon nehmen?
Daraus zu schließen, was getestet werden sollte und was nicht, ist eine falsche Schlussfolgerung, da das System möglicherweise immer noch nicht so funktioniert, wie es die Spezifikationen erfordern, obwohl alle Einheiten- und Integrationstests bestanden wurden.
Dies mag wie eine nutzlose akademische Diskussion erscheinen, aber wenn Sie wie ich in einem streng formalen Umfeld arbeiten, ist es tatsächlich wichtig zu bestimmen, wie wir Dinge tun. Wie auch immer, irre ich mich total?