Sind Unit-Tests genug für eine funktionierende Anwendung?
Obwohl gute Unit-Tests viele Vorteile bringen und die Qualität von Softwareprojekten verbessern, sind sie kein Allheilmittel. Die Frage, ob man bei guten Unit-Tests überhaupt noch funktionelle Tests über die Benutzeroberfläche (UI) benötigt, ist zwar verständlich angesichts der Begeisterung für Unit-Tests, aber falsch.
Das KI-gestützte Vertriebs CRM
Leads suchen. Daten anreichern. KI den Vertrieb überlassen.
Boosten Sie Ihren Vertrieb mit KI. Sparen Sie Zeit und schließen Sie mehr Deals.
Kostenlos testen
Wer bewacht die Wächter?
Entwickler schreiben in der Regel ihre eigenen Unit-Tests, um den von ihnen geschriebenen Code zu testen. Dies ist zwar eine gute Regel für das Schreiben und Refactoring von Code, aber keine Garantie für gründliches Testen. Es ist zu leicht, Tests mit der gleichen Denkweise zu schreiben wie den Code selbst und dadurch dieselben Probleme zu übersehen. Gründliches Testen erfordert einen zweiten Blickwinkel, um den Code vollständig zu testen, ohne die gleichen Vorurteile und Annahmen des Entwicklers zu haben.
Unit-Tests testen keine Benutzeroberfläche
Die meisten Benutzer interagieren mit einer Anwendung über die Benutzeroberfläche (UI). Unit-Tests sind Backend-Tests, sie können überprüfen, ob eine Berechnung korrekt ist, aber nicht, ob das Ergebnis für den Benutzer korrekt angezeigt wird. Was passiert zum Beispiel mit unleserlichen Farbkombinationen, falschen Icons oder fehlenden oder falsch beschrifteten Feldern? Hierfür benötigt man UI-Tests.
Unit-Tests mögen keine Black-Box-Anwendungen
Viele Unternehmen verwenden wichtige Anwendungen, die auf einer fertigen Komponente oder Anwendung ohne Quellcode basieren. Unit-Tests benötigen Quellcode, um effektiv zu sein. Auch hier sind UI-Tests mit simulierten Benutzeraktionen erforderlich, um diese Black-Box-Anwendungen zu testen.
Unit-Tests sind für Methoden, nicht für Systeme
Schließlich sollen Unit-Tests kleine, schnelle und kapsulierte Tools sein, um Klassen und Methoden isoliert zu testen. Sie testen nicht, was mit einer Anwendung unter realen Bedingungen passiert. Wie verhält sich die App unter Windows 98, 2000, NT oder XP Service Pack 1, 2 oder 3? Was passiert mit dem Server, wenn 30 oder 300 Benutzer gleichzeitig darauf zugreifen? Und wie sieht es mit demselben Test aus, wenn 5 Jahre Daten auf 40.000 Konten vorhanden sind?
Fazit
Die Antwort ist klar: Funktionale Tests über die Benutzeroberfläche sind in der Regel die schnellste und effektivste Möglichkeit, den Umfang und die Tiefe des Tests zu erweitern, um realistische Szenarien einzubeziehen, die alle Komponenten des Anwendungssystems integrieren.