Ich arbeite an einem Legacy-System (damit meine ich, dass es ohne Tests geschrieben wurde). Wir haben versucht, einen Teil des Systems zu testen, indem wir Integrationstests geschrieben haben, die die Funktionalität von außen testen.
Dies gibt mir ein gewisses Vertrauen, Teile des Codes umzugestalten, ohne dass ich mir Sorgen machen muss, dass er kaputt geht. Das Problem ist jedoch, dass diese Integrationstests eine Bereitstellung (mehr als 2 Minuten) und viele Minuten benötigen, um ausgeführt zu werden. Sie sind auch ein Schmerz zu pflegen. Sie decken jeweils Tausende von Codezeilen ab, und wenn eine von ihnen unterbrochen wird, kann das Debuggen des Grunds Stunden dauern.
Ich habe viele Komponententests für diese Funktionsänderungen geschrieben, die ich in letzter Zeit vorgenommen habe, aber bevor ich mich dazu entscheide, führe ich immer eine neue Bereitstellung durch und führe alle Integrationstests aus, um sicherzustellen, dass ich nichts verpasst habe. Zu diesem Zeitpunkt kenne ich meine Komponententests und einige der Integrationstests überlappen sich mit dem, was sie testen.
Woher weiß ich, dass meine guten Komponententests einen schlechten Integrationstest ausreichend abdecken, damit ich diesen Integrationstest löschen kann?