Ist es eine Testmethode oder Testtechnik?
Unit Testing ist mehr als nur eine Testtechnik. Es ist eine Testmethode zum Üben einzelner Einheiten des Quellcodes, die eine hervorragende Möglichkeit bietet, das korrekte Softwareverhalten zu demonstrieren.
Komponententests sind wichtig, weil sie Regressionen in der frühesten Phase der Softwareentwicklung identifizieren, wo sie am billigsten und am wenigsten belastend zu beheben sind. Unit-Tests sind klein und jeder Testfall testet einen kleinen Codebereich, wodurch das Problem einfach und schnell identifiziert werden kann, wenn der Test fehlschlägt.
Komponententests verwenden Mocking und Stubbing, um sich von externen Abhängigkeiten zu isolieren, was bedeutet, dass sie einfach und schnell auszuführen sind und dem Team schnell Feedback liefern. Darüber hinaus lässt sich die Ausführung von Einheitentests in einem CI-Build leicht vollständig automatisieren.
Es gibt auch weniger offensichtliche Vorteile einer Unit-Testing-Praxis. Entwickler, die während des Schreibens von Code proaktiv Unit-Tests durchführen, geben sich selbst die Perspektive, den von ihnen geschriebenen Code durch eine andere Linse zu betrachten. Im Wesentlichen kann der Akt des Komponententests wie eine zusätzliche Codeüberprüfung sein, um sicherzustellen, dass der Code beim ersten Mal korrekt und robust geschrieben wurde.
Lesen Sie das Whitepaper: Unit-Tests richtig durchführen: Top-Tipps für Java-Entwickler
Entwickler, die darüber nachdenken, wie die Schnittstelle zu ihrem Code von anderen Komponenten verwendet wird, und dann Unit-Tests für diese Szenarien schreiben, übersehen mit geringerer Wahrscheinlichkeit unglückliche Pfade, die in späteren Phasen des Softwaretestens oder schlimmer noch in der Produktion aufgedeckt werden könnten.
Eine bekannte Studie von Capers Jones über die Ökonomie der Softwarequalität zeigt, je früher ein Fehler im Entwicklungszyklus gefunden wird, desto billiger ist es, ihn zu beheben, was in scharfem Kontrast zu exponentiell steigenden Kosten steht, um Fehler später im Zyklus zu finden.
Infolgedessen gibt es einen ROI für die Investition in eine robuste Regressionssuite von Einheitentests. Der ROI von Unit-Tests zeigt sich auch in der reduzierten Nacharbeit, die durch die korrekte Implementierung von Anforderungen beim ersten Mal entsteht.