Softwareentwicklung ist mehr als nur die Erstellung von Lösungen, die benötigte Funktionen ausführen. Für Unternehmen ist ein neues Softwareprodukt eine Möglichkeit, den betrieblichen Status quo zu ändern oder einen Sprung in der Prozessoptimierung zu machen, um bessere Geschäftsergebnisse zu gewährleisten. Dies erfordert das Schreiben von qualitativ hochwertigem Code und die Bereitstellung einer zuverlässigen Lösung, die reibungslos funktioniert und keine Fehler aufweist.
Qualitätssicherung und Softwaretests sind mehr als nur das Auffinden von Fehlern. Die Aufgabe des QS- und Testteams besteht darin, die Webentwickler dabei zu unterstützen, das bestmögliche Produkt innerhalb des veranschlagten Zeitrahmens zu liefern und alle Probleme zu erkennen, die den erfolgreichen Betrieb der Software behindern oder sogar die Benutzererfahrung beeinträchtigen könnten.
QS-Prozess und Entwicklungsschritte
Zunächst hilft die Qualitätssicherung dabei, den Softwareentwicklungsprozess so zu gestalten und zu kontrollieren, dass ernsthafte Probleme während des Projekts vermieden werden. Zu diesem Zweck arbeiten die QS-Ingenieure während des gesamten Softwareentwicklungszyklus als integraler Bestandteil des Softwareentwicklungsteams zusammen mit anderen Fachleuten wie dem Product Owner, dem Projektmanager, dem Business Analysten und den Entwicklern an dem Projekt. Die Anzahl und die Reihenfolge der QS-Aktivitäten können von Projekt zu Projekt variieren und hängen stark vom Umfang der Arbeit und den Zielen des Projekts ab.
Entwicklungsprozess
- Analyse der Anforderungen
- Design
- Implementierung
- Verifizierung oder Test
- Wartung
QS-Prozess
- Überprüfung der Anforderungen
- Testplanung/Erstellung von Testfällen
- Unit-Tests
- Integrationstests
- Systemtests
- Performance-Tests
- Sicherheitstests
- Cross-Browser-Tests/ Cross-Platform-Tests
- Aktualisierung von Testfällen
- Regressionstests
Werfen wir einen genaueren Blick auf die QS-Prozesse und wie sie mit den Entwicklungsschritten verbunden sind.
Erster Schritt: Überprüfung der Anforderungen und der Dokumentation
Die QS-Ingenieure beginnen ihre Arbeit am Projekt parallel zur Erstellung der Dokumentation. Sie überprüfen die Anforderungen und die Dokumentation auf:
- Vollständigkeit
- Redundanzen
- Klarheit
- Konsistenz
- Ausführbarkeit
- Überprüfbarkeit
Ziel ist es, die Systemarchitektur und die Technologien auf Unstimmigkeiten zu analysieren.
Die wichtigsten Vorteile für den Entwicklungsprozess:
- Fehler kosten weniger, wenn sie in einem frühen Stadium entdeckt werden
- Eine verbesserte Dokumentation bedeutet eine höhere Qualität des Projekts bei geringerem Arbeitsaufwand und genaueren Schätzungen.
Für diesen Schritt sollten Sie den Einsatz einer speziellen Software für die Dokumentationsprüfung in Erwägung ziehen, z. B. Confluence. Damit können Sie die gesamte Dokumentation sammeln, die während des gesamten Projekts verwendet wird, und eine interne Wissensdatenbank pflegen. Jedes Teammitglied kann alle Änderungen sehen, sobald Anforderungen oder Dokumente geändert, hinzugefügt, aktualisiert oder gelöscht werden.
Schritt zwei: Planung und Vorbereitung von Testfällen
Wenn die Anforderungen festgelegt sind, ist es an der Zeit, mit der Planung von Testfällen zu beginnen, d. h. die Aktionen zu beschreiben, die QS-Ingenieure durchführen, um sicherzustellen, dass die Software wie geplant funktioniert. Falls das Volumen solcher Fälle sehr groß ist, können Sie auch spezielle Tools wie TestRail oder Zephyr zum Schreiben von Testfällen verwenden. Beide Programme ermöglichen die Erstellung und Änderung von Tests und die Verfolgung der Ergebnisse anhand von Metriken.
Schritt drei: Entwurf von Testfällen
Wenn die Entwicklungsphase abgeschlossen ist, beginnt das QA-Team mit der Durchführung der Testfälle. Das Hauptziel dieser Phase besteht darin, zu überprüfen, ob die Lösung aus technischer Sicht ordnungsgemäß entwickelt wurde und die Anforderungen des ursprünglichen Produktinhabers erfüllt.
Im Folgenden werden die wichtigsten QS-Aktivitäten und ihre Ziele beschrieben:
Smoke-Tests
QS-Ingenieure prüfen leichtfertig, ob die Software oder ihr Modul wie geplant funktioniert. Wenn dies der Fall ist, beginnt die weitere Untersuchung.
Integrationsprüfung
Überprüfung, ob verschiedene Komponenten als ein einziges System funktionieren.
Leistungstests
Load testing – Überprüfung des Systemverhaltens bei normaler und erwarteter Spitzenlast
Stress testing – Ermittlung der kritischen Last, ab der das System zusammenbricht
Sicherheitstests
Sicherstellen, dass die Lösung ein ausreichendes Schutzniveau aufweist.
Cross-Browser-Tests/Cross-Platform-Tests
Überprüfung, ob eine Anwendung auf verschiedenen Browsern (Chrome, Mozilla, Safari) oder Plattformen (Android, iOS, Windows Phone) reibungslos funktioniert. Dies ist besonders wichtig für Web- und Hybridanwendungen.
Regressionstests
Aufspüren von Fehlern in dem zuvor getesteten Code. In der Regel erforderlich, wenn neue Funktionen hinzugefügt oder ein bestehendes System aktualisiert wird. Auch hier können Sie sich für eine Automatisierung der Tests entscheiden (z. B. Unit-Tests, Regressionstests). Generell gilt: Je länger ein Projekt dauert, desto wichtiger ist das automatisierte Testen.
Schritt vier: berichten und messen
Wenn ein QS-Ingenieur einen Fehler entdeckt, zeichnet er ihn in einem Fehlerverfolgungssystem auf, das gleichzeitig ein Projektmanagementsystem ist. Zu diesem Zweck können Sie Jira oder Redmine verwenden, beides hochgradig konfigurierbare Software. Sie ermöglichen die einfache Verfolgung von Problemen jeder Art, von einem fehlerhaften Anmeldeformular bis hin zu Sicherheitsproblemen, und alle Teammitglieder können Aufgabenaktualisierungen in Echtzeit sehen. Dies vereinfacht die Kommunikation innerhalb des Teams und hilft, einen klaren Überblick über den Verbesserungsprozess zu behalten.
Jedes Problem erhält eine Prioritätsstufe von dringend bis niedrig, die das Entwicklungsteam dann nach Maßgabe der verfügbaren Zeit und Mitarbeiter löst.
Schritt fünf: Überprüfung der Korrekturen (fixes)
Wenn ein Entwickler ein Problem behebt, informiert er/sie die zuständigen QS-Ingenieure, die das Problem überprüfen. Das Ticket im Bug-Tracking-System wird geschlossen, wenn kein Problem mehr festgestellt wird. Es gilt die Regel: Ein Fehler kann erst dann als behoben markiert werden, wenn er verifiziert wurde.
Hinweise und Tipps zur Verbesserung Ihres QS-Prozesses
Alle oben erwähnten Testschritte gelten für eine Wasserfall-Entwicklungsmethodik. QS-Schritte wie die Überprüfung der Anforderungen oder die Testplanung bzw. das Schreiben von Testfällen werden meist in komplexen, langfristigen Projekten und/oder in sensiblen Branchen wie dem Gesundheitswesen oder der Logistik eingesetzt, wo Bugs oder Fehler den Aufwand für die Erstellung einer gründlichen Dokumentation rechtfertigen.
Bei Projekten mit begrenztem Zeit- und Budgetrahmen ist es besser, Zeit für die Stabilisierung und den Feinschliff eines Softwareprodukts aufzuwenden, als eine umfangreiche Dokumentation und eine sorgfältige Testplanung zu erstellen.
Wenn Sie bei der Anwendungsentwicklung einen agilen Ansatz verfolgen (was in den meisten Fällen der Fall ist), können Sie bei kurzfristigen Webentwicklungsprojekten die Schritte der Überprüfung der Anforderungen und der Testplanung überspringen, da die Markteinführung wichtiger ist als eine perfekte Dokumentation. Folglich können QS-Ingenieure sofort ab Schritt drei mit dem Testen beginnen und dabei sehr einfache Tools wie Google Docs verwenden.
Außerdem können einige Phasen des Entwicklungs- und QS-Prozesses gleichzeitig durchgeführt werden. Zum Beispiel die Analyse und Überprüfung der Anforderungen, die Implementierung und Testplanung oder sogar die Durchführung verschiedener Testtypen während der Entwicklung. In diesen parallelen Phasen helfen die Testaktivitäten, den Erfolg der entsprechenden Entwicklungsaufgaben zu messen.
Wenn Sie gerade dabei sind, QA-Prozesse einzuführen und ein Team einzustellen, könnte Sie auch unsere Analyse der internationalen Gehaltsspannen für QA-Ingenieure interessieren.