© Liashko/Shutterstock.com
Entwickler Magazin
Enterprise-Softwarequalität im Umfeld dynamischer Sprachen

Cross-Plattform-Unit-Testing

Wenn Sie als Nutzer den Hinweis bekommen, dass für eine Software ein neues Update verfügbar ist, ist das meist ein Grund zur Freude. Neue Features, neues UI, alles wird besser. Allerdings zeigt die Erfahrung, dass neue Versionen auch meist neue Bugs bedeuten. Für Sie als Nutzer kann das in Frust enden. Im schlimmsten Fall suchen Sie sich einfach eine alternative Anwendung, die den gleichen Zweck erfüllt. Doch was können Sie - aus Sicht eines Softwareentwicklers - tun, damit bei Ihren Kunden bei Updates anstatt Unbehagen ein freudiges Gefühl ausgelöst wird?

Manuel Rauber


Wir Entwickler sind Feuer und Flamme, wenn es darum geht, eine neue Software zu entwickeln. Neu! Neue Konzepte, neue Technologien, neues User Interface und gar eine neue User Experience! Eine Welt aus Zucker, in der alles bunt ist und schön glänzt. Was in der Vergangenheit war, kann außer Acht gelassen werden. Vielmehr hat man nur noch die Zukunft im Blick. Es ist an der Zeit, alles besser zu machen. Aus alten Fehlern zu lernen – um neue Fehler zu machen. Schnell ist der erste Prototyp entstanden, sind die ersten Ideen umgesetzt. Täglich kommen neue Features hinzu. Die Software entwickelt sich rasend schnell weiter. Doch nach einiger Zeit ist der Punkt erreicht, an dem die Entwicklung schwieriger wird. Plötzlich treten Seiteneffekte auf, die Anwendung wird instabil, und die Fehlersuche beginnt. Siehe da, es wird ein Fehler in einer alten Komponente gefunden, die lange niemand mehr angefasst hat. Es fiel bisher niemandem auf, dass sich seit Beginn der Entwicklung an dieser Stelle ein Bug befindet. Kaum ist der Bug gefixt, tritt ein zweiter in Abhängigkeit davon auf. Der Frust wird größer. Willkommen in der Welt der nicht getesteten Software!

Wie können wir als Softwareentwickler dieser Situation aktiv entgegenwirken? Wir könnten zum Beispiel jedes Release vor der eigentlichen Veröffentlichung selbst testen. Das kostet aber Zeit und Ressourcen. Das manuelle Testen wird von Version zu Version länger dauern und ist auch nur dann sinnvoll, wenn man immer exakt gleich vorgeht. Es gibt allerdings jemanden, der gerne Dinge schnell und wiederkehrend erledigt: unser Computer.

Arten von Tests

Wenn wir unserem schnellen Rechenkollegen einmal beigebracht haben, wie unsere Software getestet werden soll, wird er liebend gerne dafür sorgen, dass die Tests ausgeführt werden. Um ihm das Testen beizubringen, sollten wir uns erst einmal darauf verständigen, welche Arten von Tests es gibt – denn Softwaretests haben viele Namen und existieren in vielen Ausprägungen. Generell kristallisieren sich drei Gruppen von Tests heraus:

Unit Test (oder auch: Modultest, Komponententest): Es handelt sich hier um das isolierte Testen einer einzelnen Komponente (was meist exakt einer Klasse entspricht). Abhängigkeiten (z. B. der Zugriff auf die Festplatte oder das Absetzen von HTTP-Anfragen) innerhalb dieser Komponente werden durch so genannte Mocks ersetzt. Bei Unit Tests kann man vergleichsweise einfach positive und negative Fälle betrachten und testen.Integrationstest: Ein Integrationstest...

Entwickler Magazin
Enterprise-Softwarequalität im Umfeld dynamischer Sprachen

Cross-Plattform-Unit-Testing

Wenn Sie als Nutzer den Hinweis bekommen, dass für eine Software ein neues Update verfügbar ist, ist das meist ein Grund zur Freude. Neue Features, neues UI, alles wird besser. Allerdings zeigt die Erfahrung, dass neue Versionen auch meist neue Bugs bedeuten. Für Sie als Nutzer kann das in Frust enden. Im schlimmsten Fall suchen Sie sich einfach eine alternative Anwendung, die den gleichen Zweck erfüllt. Doch was können Sie - aus Sicht eines Softwareentwicklers - tun, damit bei Ihren Kunden bei Updates anstatt Unbehagen ein freudiges Gefühl ausgelöst wird?

Manuel Rauber


Wir Entwickler sind Feuer und Flamme, wenn es darum geht, eine neue Software zu entwickeln. Neu! Neue Konzepte, neue Technologien, neues User Interface und gar eine neue User Experience! Eine Welt aus Zucker, in der alles bunt ist und schön glänzt. Was in der Vergangenheit war, kann außer Acht gelassen werden. Vielmehr hat man nur noch die Zukunft im Blick. Es ist an der Zeit, alles besser zu machen. Aus alten Fehlern zu lernen – um neue Fehler zu machen. Schnell ist der erste Prototyp entstanden, sind die ersten Ideen umgesetzt. Täglich kommen neue Features hinzu. Die Software entwickelt sich rasend schnell weiter. Doch nach einiger Zeit ist der Punkt erreicht, an dem die Entwicklung schwieriger wird. Plötzlich treten Seiteneffekte auf, die Anwendung wird instabil, und die Fehlersuche beginnt. Siehe da, es wird ein Fehler in einer alten Komponente gefunden, die lange niemand mehr angefasst hat. Es fiel bisher niemandem auf, dass sich seit Beginn der Entwicklung an dieser Stelle ein Bug befindet. Kaum ist der Bug gefixt, tritt ein zweiter in Abhängigkeit davon auf. Der Frust wird größer. Willkommen in der Welt der nicht getesteten Software!

Wie können wir als Softwareentwickler dieser Situation aktiv entgegenwirken? Wir könnten zum Beispiel jedes Release vor der eigentlichen Veröffentlichung selbst testen. Das kostet aber Zeit und Ressourcen. Das manuelle Testen wird von Version zu Version länger dauern und ist auch nur dann sinnvoll, wenn man immer exakt gleich vorgeht. Es gibt allerdings jemanden, der gerne Dinge schnell und wiederkehrend erledigt: unser Computer.

Arten von Tests

Wenn wir unserem schnellen Rechenkollegen einmal beigebracht haben, wie unsere Software getestet werden soll, wird er liebend gerne dafür sorgen, dass die Tests ausgeführt werden. Um ihm das Testen beizubringen, sollten wir uns erst einmal darauf verständigen, welche Arten von Tests es gibt – denn Softwaretests haben viele Namen und existieren in vielen Ausprägungen. Generell kristallisieren sich drei Gruppen von Tests heraus:

Unit Test (oder auch: Modultest, Komponententest): Es handelt sich hier um das isolierte Testen einer einzelnen Komponente (was meist exakt einer Klasse entspricht). Abhängigkeiten (z. B. der Zugriff auf die Festplatte oder das Absetzen von HTTP-Anfragen) innerhalb dieser Komponente werden durch so genannte Mocks ersetzt. Bei Unit Tests kann man vergleichsweise einfach positive und negative Fälle betrachten und testen.Integrationstest: Ein Integrationstest...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang