SOFTWARE LÖSUNGEN
Software Testing
Testautomatisierungen werden immer wieder gefordert, wenn die Masse an Regressionstestfällen unüberschaubar geworden ist.
Besonders schlimm dabei sind die sporadischen Fehler, die nicht kontinuierlich auftreten. Auch zu allgemein behandelte Programmfehler können identifiziert und somit als eigenständigen Exception Blöcke berücksichtigt werden, um aussagekräftige Log Einträge zu generieren. Das Exception Event Bubbling wird mit einer Testfallspezifikation für kritische Prozessbereiche verbessert. Testgetriebene Entwicklungen geben rechtzeitig Hinweise auf die Notwendigkeit, Fehler nach Regeln zu eskalieren, bzw. auch automatisiert zu vermeiden.
Testverfahren in der Softwareentwicklung:
Testverfahren in der Softwareentwicklung:
- Unit-Tests
Unit-Tests sind sehr einfach und erfolgen nah an der Quelle der Anwendung. Sie dienen zum Testen einzelner Methoden und Funktionen der von der Software verwendeten Klassen, Komponenten oder Module. In der Regel lassen sich Unit-Tests kostengünstig automatisieren und können von einem Continuous-Integration-Server sehr schnell durchgeführt werden. - Integrationstests
Mit Integrationstests wird sichergestellt, dass verschiedene von deiner Anwendung genutzte Module oder Services problemlos ineinandergreifen. So kann beispielsweise die Interaktion mit der Datenbank oder das Zusammenspiel von Mikroservices getestet werden. Tests dieser Art sind kostspieliger, weil dafür mehrere Teile der Anwendung funktionsfähig sein müssen. - Funktionstests
Funktionstests konzentrieren sich auf die Geschäftsanforderungen einer Anwendung. Sie verifizieren nur die Ausgabe einer Aktion und überprüfen bei der Durchführung dieser Aktion nicht die Zwischenzustände des Systems. Integrationstests und Funktionstests sind nicht ganz leicht auseinanderzuhalten, da bei beiden mehrere Komponenten miteinander interagieren müssen. Der Unterschied besteht darin, dass mit einem Integrationstest vielleicht nur überprüft wird, ob Datenbankabfragen generell möglich sind, während bei einem Funktionstest ein bestimmter, von den Produktanforderungen vorgegebener Wert aus der Datenbank abgerufen wird. - End-to-End-Tests
Bei End-to-End-Tests wird der Umgang des Benutzers mit der Software in einer vollständigen Anwendungsumgebung repliziert. Auf diese Weise wird das ordnungsgemäße Funktionieren von Benutzerabläufen überprüft. Die Szenarien können ganz einfach sein (z. B. Laden einer Website, Anmeldevorgang) oder auch sehr komplex (z. B. E-Mail-Benachrichtigungen, Onlinezahlungen). End-to-End-Tests sind sehr nützlich, aber auch kostspielig und in automatisierter Form unter Umständen schwer zu verwalten. Es empfiehlt sich, nur wenige End-to-End-Tests zu implementieren und stattdessen eher auf weniger aufwendige Testarten (Unit- und Integrationstests) zu setzen, um riskante Änderungen schnell erkennen zu können. - Akzeptanztests
Akzeptanztests sind formelle Tests, mit denen überprüft wird, ob ein System die entsprechenden geschäftlichen Anforderungen erfüllt. Während der Tests muss die gesamte Anwendung ausgeführt werden. Der Schwerpunkt liegt auf dem replizierten Benutzerverhalten. Darüber hinaus können die Tests eingesetzt werden, um die Systemleistung zu messen und Änderungen abzulehnen, wenn bestimmte Ziele nicht erfüllt werden. - Leistungstests
Mit Leistungstests wird überprüft, wie sich ein System bei bestimmten Auslastungen verhält. Diese Tests sind geeignet, um die Zuverlässigkeit, Geschwindigkeit, Skalierbarkeit und Reaktionsfähigkeit einer Anwendung zu messen. Bei einem Leistungstest können zum Beispiel die Antwortzeiten bei der Ausführung einer hohen Anzahl von Anfragen überprüft werden. Oft wird auch untersucht, wie sich das System bei großen Datenmengen verhält. So kann festgestellt werden, ob eine Anwendung die Leistungsanforderungen erfüllt, wo es zu Engpässen kommt, wie es um die Stabilität bei Belastungsspitzen bestellt ist und vieles mehr. - Smoke-Tests
Smoke-Tests sind einfache Tests zum Überprüfen der grundlegenden Funktionalität einer Anwendung. Sie sollen schnell auszuführen sein und dir zeigen, ob die wichtigsten Features deines Systems wie erwartet funktionieren. Smoke-Tests können unmittelbar nach der Erstellung eines neuen Builds nützlich sein, um zu entscheiden, ob du teurere Tests durchführen kannst oder nicht, oder um direkt nach einem Deployment sicherzustellen, dass die Anwendung in der neu bereitgestellten Umgebung ordnungsgemäß ausgeführt wird.
Softwaretests sind ein Teil der Softwareentwicklungszyklen und werden als Unit Test parallel zu den Features und Funktionen mitentwickelt. Ein standardisiertes Regelwerk zur Qualitätssicherung und Bestimmung der Testabdeckungen kann den Softwareentwicklungszyklus nachhaltig beschleunigen, gerade dann, wenn Komponenten zusammenwirken und im Integrationstest zu vakanten Fehler führen.
Vorteile
- Eine gute Testabdeckung identifiziert rechtzeitig Fehler und vermeidet dabei Folgekosten und Nacharbeitungszeit
- Testautomatisierungen werden zyklisch wiederholt und stellen die Qualitätsstandards sicher
- Erwartungshaltungen von Funktions- und Feature Verhalten können im Integrationstest bewiesen werden
- Softwaretestspezialisten wissen, welche Mindestvoraussetzung für eine gute Testabdeckung notwendig ist
- Lasttests im Hochleistungsbetrieb decken Funktionsfehler der Softwareparadigmen rechtzeitig auf
Konsequenz
Test getriebene Softwareentwicklung vermeidet besser unerwartete Fehler und führt nachhaltig zu qualitativ besserem Class Code, da sich an Qualitätsstandards orientiert wird und Konventionen beachtet werden.
Software Architektur Beratung
Bevor jemals eine Zeile Code geschrieben werden kann, muss der/die Softwarearchitekt:in das Zielbild des Features definieren. Bei komplexen oder gewachsenen Software Entwicklungsprojekten entsteht eventuell bei Fehlplanungen und Nichteinhaltung von modularen Prinzipien, schnell eine sehr schwere wartbare Softwarelösung…
Software Entwicklung
Die Softwareentwicklung ist immer stark von den eingesetzten Frameworks und Programmiersprachen abhängig. Dennoch haben sich diverse Frameworks für genaue Aufgabenstellungen etabliert. Welche Software entwickelt wird, hängt ganz davon ab, was der Kunde benötigt…
Previous
Next