Testing bei der IWF Web Solutions

Bug

Software wird heute in fast allen Gebieten eingesetzt. Und die Entwicklung von Software ist komplex. Dabei werden zwangsläufig Fehler gemacht, wie in jedem anderen Bereich auch. Statistiken zeigen, dass pro 1000 Zeilen Code zwischen 5 und 15 Fehler auftreten. Diese können natürlich unterschiedlich gravierend sein, wobei von kleinen Schönheitsfehlern zu kritischen Systemabstürzen alles vertreten ist. Aber so kommt man schon bei kleineren Projekten auf eine beachtliche Anzahl Fehler.

Diese Fehlerquote lässt sich jedoch deutlich senken, wenn systematisches Testing in den gesamten Entwicklungsprozess integriert ist. In der modernen Softwareentwicklung bildet daher die Qualitätssicherung und das Testing einer der grundlegenden Bestandteile für ein erfolgreiches Projekt.

Das Testing legt den Fokus auf die Korrektheit, die Vollständigkeit und die Benutzbarkeit der Software. Ziel des Testings ist es, möglichst viele Fehler in der Software zu erkennen, und zwar so früh wie möglich. Denn je später ein Fehler gefunden wird, desto aufwändiger und schwieriger ist es, ihn zu beheben.

Auch wir streben danach, unsere Produktqualität hoch zu halten und stetig zu verbessern. Eine unserer Qualitätssicherungsmassnahmen ist kontinuierliches Testing und ein dediziertes Testmanagement. Das Testmanagement plant und steuert die einzelnen Testaktivitäten in den Projekten, treibt die Qualitätssicherung voran und behält den Überblick, was wann wie getestet werden muss.

Das Testing selbst ist bei uns ein stetiger Prozess, der parallel zur Entwicklung läuft und fest in den Entwicklungsprozess integriert ist. Dabei setzen wir Testing auf mehreren Stufen ein. Der Übergang zur nächsten Teststufe wird über einen klar strukturierten Freigabeprozess gesteuert.

Auf der untersten Stufe arbeiten wir mit automatisierten Unit- und Integrationstests. Dabei wird der Code und die verschiedenen Komponenten vertieft getestet. Ebenso wird der Code statisch überprüft. Auf einer weiteren Stufe führen wir danach vertiefte Funktions- und Systemtests auf der Benutzeroberfläche einer Testumgebung durch. Auf der nächsten Stufe werden funktionale und nicht-funktionale Anforderungen des Kunden in einer produktionsnahen Umgebung verifiziert und das System als Ganzes getestet. Mit regelmässigen Regressionstests stellen wir die Kernfunktionalität der Anwendung sicher. Je nach Projekt führen wir zusätzlich auch Tests für Usability, Security oder Performance durch. Zuletzt folgt ein Abnahmetest durch den Kunden. Erst danach wird unsere Software produktiv eingesetzt.

Mit unserem internen Testing allein ist es also noch nicht getan. Es braucht die Mitwirkung des Kunden auf allen Ebenen und in allen Projektphasen - so auch beim Testing und bei der Verifizierung der gebauten Anforderungen. Denn ein erfolgreiches IT-Projekt ist ein komplexes Zusammenspiel zwischen Projektleitern, Entwicklern, Testern und Kunden. Und nur zusammen sind wir in der Lage, gute und brauchbare Software mit Mehrwert zu entwickeln.