Die Rolle des QS-Teams in Software-Projekten

Die Rolle des QS-Teams in Software-Projekten

Software-Entwicklung geht weit über die Realisierung von Lösungen mit definierten Funktionen hinaus. Für Unternehmen bieten neue Software-Produkte die Möglichkeit, operative Verbesserungen herbeizuführen oder Prozesse zu optimieren, um somit bessere Ergebnisse zu erzielen. Unabdingbar ist hierbei das Entwickeln von qualitativ hochwertigem Code und die Bereitstellung einer Lösung, die zuverlässig, reibungslos und fehlerfrei läuft.

Die Qualitätssicherung (QS, englisch: Quality Assurance/QA) umfasst in diesem Kontext weitaus mehr als das Identifizieren möglichst vieler Fehler. Vielmehr besteht die Aufgabe des QS-Teams darin, Web-Entwickler dabei zu unterstützen, Produkte innerhalb des avisierten Zeitrahmens auszuliefern und sämtliche Probleme zu erkennen, die den erfolgreichen Betrieb der Software oder gar die Benutzerfreundlichkeit beeinträchtigen könnten.

QS-Prozess und Schritte der Software-Entwicklung

Grundsätzlich verfolgt die QS das Ziel, den Entwicklungsprozess so zu gestalten und zu steuern, dass ernsthafte Risiken im Rahmen des Projekts minimiert werden. Um dies zu erreichen, arbeiten QS-Ingenieure über den gesamten Entwicklungszyklus eng mit den weiteren Teammitgliedern (Product Owner, Projektmanager, Business Analyst, Entwicklungsleiter und idealerweise mit einem Agile Test Coach) zusammen. Die Anzahl und Reihenfolge der QS-Aktivitäten kann von Projekt zu Projekt variieren. Dies ist abhängig vom Umfang und den Projektzielen.

Prozess der Software-Entwicklung

  • Anforderungsanalyse
  • Design
  • Implementierung
  • Validierung oder Tests
  • Wartung

QS-Prozess

  • Prüfung der Anforderungen
  • Testplanung / Erstellen von Test Cases
  • Komponententests
  • Integrationstests
  • Systemtests
  • Performance-Tests
  • Sicherheitstests
  • Browserübergreifende Tests / plattformübergreifende Tests
  • Test Cases aktualisieren
  • Regressionstests

Connecting Dev and QA processes

Im Folgenden betrachten wir die QS-Prozesse näher und klären die Frage, inwiefern sie im Zusammenhang mit den einzelnen Schritten der Software-Entwicklung stehen.

Schritt 1: Prüfung der Anforderungen und der Dokumentation

QS-Ingenieure nehmen ihre Arbeit im Projekt parallel zur Erstellung der Dokumentation auf. Sie prüfen die Anforderungen und die Dokumentation unter folgenden Gesichtspunkten:

  • Vollständigkeiten
  • Redundanzen
  • Verständlichkeit
  • Konsistenz
  • Machbarkeit
  • Überprüfbarkeit

Ziel ist es, die Systemarchitektur und Technologien auf Unstimmigkeiten zu analysieren.

Wesentliche Vorteile für den Entwicklungsprozess:

  • Geringere Fehlerkosten durch frühzeitige Erkennung
  • Optimierte Dokumentation ermöglicht höhere Projektqualität, geringeren Arbeitsaufwand und präzisere Aussagen

In diesem Schritt empfiehlt es sich, spezielle Software für die Überprüfung der Dokumentation, wie z. B. Confluence, zu nutzen. Auf diese Weise ist es möglich, alle relevanten Dokumentationen im Projektverlauf zu bündeln und über eine interne Wissensdatenbank zu verwalten. Jedes Teammitglied erhält eine Information, sobald Anforderungen oder Dokumente geändert, hinzugefügt, aktualisiert oder gelöscht werden.

Schritt 2: Test Cases planen und vorbereiten

Stehen die Anforderungen fest, so folgt die Planung der Test Cases. Es werden also diejenigen Maßnahmen beschrieben, die von QS-Mitarbeitern durchgeführt werden müssen, um die geplante Funktionalität der Software sicherzustellen. Bei einem besonders hohen Testumfang können spezielle Tools wie TestRail oder Zephyr zum Generieren der Testfälle genutzt werden. Beide Programme ermöglichen die Erstellung und Änderung von Tests sowie das Tracking der Ergebnisse anhand von Metriken.

Schritt 3: Test Cases ausgestalten

Ist die Entwicklungsphase abgeschlossen, beginnt das QS-Team mit der Durchführung der Tests. Das übergeordnete Ziel dieser Phase ist es, zu verifizieren, ob die Lösung aus technischer Sicht korrekt entwickelt wurde und den ursprünglichen Anforderungen des Product Owners entspricht.

Dies sind die wesentlichen QS-Aufgaben und deren Ziele:

  • Smoke Testing als erste Aktivität. Die QS-Mitarbeiter überprüfen grob, ob die Software oder das entsprechende Modul funktionsfähig ist. Danach folgen weitergehende Kontrollen.
  • Integrationstests: Stellen sicher, dass das Zusammenspiel einzelner Komponenten im System funktioniert.
  • Performance-Tests inklusive:
  • Belastungstest (Load Testing) – Überprüfen des Systemverhaltens bei normaler und erwarteter Spitzenlast
  • Stresstest – Ermittlung der kritischen Auslastung, bei der das System ausfällt
  • Sicherheitstests – Zur Gewährleistung eines ausreichenden Schutzlevels
  • Browserübergreifende Tests / plattformübergreifende Tests – Überprüfung, ob die Software auf verschiedenen Browsern (Chrome, Mozilla, Safari) oder Plattformen (Android, iOS, Windows Phone) einwandfrei läuft. Dies ist insbesondere bei Web- und Hybridanwendungen bedeutsam.
  • Regressionstests – Fehler im zuvor getesteten Code erkennen. Wird normalerweise benötigt, wenn neue Funktionen hinzugefügt werden sollen oder ein Systemupdate erfolgt.

Auch in diesem Schritt sind Automatisierungen möglich (z. B. in den Komponenten- und Regressionstests). Grundsätzlich gilt: Je länger ein Projekt dauert, desto mehr sind automatisierte Tests erforderlich.

Schritt 4: Reports und Analysen

Identifizieren QS-Ingenieure einen Fehler, so erfassen sie ihn in einem Bug-Tracking-System, welches gleichermaßen ein Projektmanagement-System darstellt. Empfehlenswert sind beispielsweise die Lösungen Jira und Redmine. Beide sind in hohem Maße konfigurierbar. Entsprechende Software ermöglicht die Nachverfolgung von Problemen jeder Art – vom fehlerhaften Login-Formular bis hin zu Sicherheitslücken. Zudem werden sämtliche Teammitglieder in Echtzeit über Änderungen in den Aufgaben informiert. Dies vereinfacht die Kommunikation innerhalb des Teams und gestaltet den Verbesserungsprozess transparent.

Jeder Fehler erhält eine Priorisierung im Bereich von „hoch“ bis „niedrig“. Auf dieser Basis erfolgt dann die Abarbeitung durch das Entwickler-Team.

Schritt 5: Fehlerbehebungen verifizieren

Wurde ein Fehler durch den Entwickler behoben, so bittet er den verantwortlichen QS-Mitarbeiter um eine Überprüfung. Das Ticket im Bug-Tracking-System wird geschlossen, sofern kein Problem mehr erkannt wird. Es gilt folgende Faustregel: Kein Fehler darf als behoben markiert werden, solange keine Verifizierung erfolgt ist.

Lässt sich der QS-Prozess beschleunigen?

Sämtliche der oben genannten Testschritte gelten in der Regel für das Wasserfallmodell. Schritte wie die Anforderungsanalyse oder die Planung/Erstellung von Testfällen werden meist in komplexen, langfristigen Projekten und/oder in sensiblen Branchen wie dem Gesundheitswesen oder der Logistik durchlaufen. Hier sind die Kosten für Fehler höher als der Aufwand für die Erstellung der Dokumentation. Sehr häufig ist jedoch auch die Projektlaufzeit entscheidend (z. B. bei Start-ups). Bei zeitlich und finanziell begrenzten Projekten ist es sinnvoller, Kapazitäten in die Stabilisierung und das Finetuning des Produkts zu investieren, anstatt eine komplexe Dokumentation und eine zu detaillierte Testplanung vorzunehmen.

Bei einem agilen Ansatz (wie dies bei uns die Regel ist) können die Schritte „Anforderungsanalyse“ und „Testplanung“ bei kurzfristigen Webentwicklungsprojekten übersprungen werden. Hier steht die termingerechte Realisierung gewinnbringender Lösungen im Vordergrund – nicht jedoch eine perfekte Dokumentation. Folglich beginnen QS-Ingenieure in diesem Fall direkt ab Schritt 3 mit den Tests und nutzen hierbei sehr einfache Tools wie Google Tabellen.

Zudem können einige Aktivitäten des Entwicklungs- und QS-Prozesses gleichzeitig durchgeführt werden, um Zeit einzusparen. Zu nennen sind beispielsweise die Schritte „Analyse und Prüfung der Anforderungen“, „Implementierung“ und „Testplanung“ oder gar die Durchführung verschiedener Tests während der Entwicklung. In diesen Parallelphasen ermöglichen es die Tests, den Erfolg der entsprechenden Entwicklungsaktivität direkt zu messen.

When using an Agile approach (like in most of our cases), for the short-term web development projects you can skip steps Review of requirements and Test planning; as on-time delivery of valuable solutions is more important than perfect documentation. Consequently, QA engineers can start testing immediately from step three using very simple tools like Google spreadsheet.

Also, some stages of the Development and QA processes can be performed simultaneously to save time, for example: Analysis and Review of requirements, Implementation & Test planning, or even Running different types of tests during development. In these parallel stages the testing activities help measure the success of the corresponding development tasks.

Kommentar hinzufügen

E-Mail-Adresse ist schon registriert. Bitte benutze Das Login-Formular oder nenne eine andere.

Du hast einen falschen Nutzernamen oder Passwort eingegeben

Sorry that something went wrong, repeat again!
Kontaktieren Sie uns