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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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
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.
technologie_logo_amazonews
Amazon Webservice - AWS
technologie_logo_azure
Azure
cloudera_logo_darkorange
Cloudera
technologie_logo_mariadb
Maria DB
technologie_logo_mysql
MySQL
technologie_logo_postges
PostGreSQL
technologie_logo_hadoop
Hadoop
technologie_logo_python
Python
technologie_logo_microsoft
Microsoft
technologie_logo_javascript
Javascript

Kontakt

Whatsapp Chat

Anfrage per Call