brainbits Blog

Wie wir unsere Projekte testen

Andrea Lülf21.06.2016Anwendungsentwicklung • Teamwork
Die verschiedenen Stufen von Software-Testing bei brainbits

Ein harter Auswahlprozess, systematisierte Fortbildung und herausfordernde Projekte stellen sicher, dass unsere Entwicklerinnen und Entwickler zu den Besten ihres Fachs gehören. Und dennoch schleichen sich hier und da immer wieder mal ein paar Fehler ein. Wie wir den Fehlern auf die Schliche kommen, zeigen wir hier.

Testen findet in mehreren Phasen des Entwicklungszyklus statt. Während der gesamten Projektdauer gilt es, die Entwicklungsergebnisse zu validieren (Überprüfen auf Fehlerfreiheit, Usability) und zu verifizieren (Umsetzung der definierten Anforderungen). Ein frühes Auffinden kritischer Stellen verhindert unerwünschte Seiteneffekte und negative Auswirkungen auf die folgenden Entwicklungsphasen.

Die wichtigste Voraussetzung für erfolgreiches Testen ist: Teamwork! Bei uns findet ein reger Austausch zwischen allen Beteiligten aus Entwicklung, Integration, PM, und QS statt. In kurzen täglichen Team-Meetings werden alle Kollegen über den Fortschritt auf dem Laufenden gehalten, Absprachen und Wissensaustausch finden so auf offene und kompetente Weise statt.

Wie und wann wird getestet?

Es gibt unterschiedliche Techniken und Entwicklungszeitpunkte, um Software zu testen:

Unit-Tests:

Zuständig: Entwickler – Wann: während der Entwicklung – Wie: automatisierte Tests – Was: Testen des Codes

Browser-Tests in der Entwicklungsphase:

Zuständig: Integration – Wann: während der Entwicklung – Wie: Manuelle und automatisierte Tests – Was: Test der Browseroptimierung auf verschiedenen Browsern

Responsive-Tests in der Entwicklungsphase

Zuständig: Integration – Wann: während der Entwicklung – Wie: Manuelle Tests  Was: Test der mobilen Anwendung auf verschiedenen mobilen Endgeräten (Tablet und Handy)

Funktionstests in der Abnahmephase:

Zuständig: QS-Abteilung – Wann: nach Abschluss der Entwicklung – Wie: Manuelle und automatisierte Tests – Was: Testen der Umsetzung von Anforderungen

Browser-Tests in der Abnahmephase:

Zuständig: QS-Abteilung  Wann: nach Abschluss der Entwicklung  Wie: Manuelle und automatisierte Tests – Was: Test der Browseroptimierung auf verschiedenen Browsern

Responsive-Tests in der Abnahmephase:

Zuständig: QS-Abteilung – Wann: nach Abschluss der Entwicklung – Wie: Manuelle Tests – Was: Test der mobilen Anwendung auf verschiedenen mobilen Endgeräten (Tablet und Handy)

Woher wissen wir, was getestet werden soll?

Die Anforderungen des Kunden sind in Form von Userstories, Designdokumenten und Prozessabläufen dokumentiert. All diese Dokumente bilden die Grundlage zur Erstellung von Testfällen.

Wie entstehen Testfälle?

Zu jeder Anforderung werden Testfälle geschrieben, die jederzeit wiederverwendbar sind. Hierzu nutzen wir das Atlassian-Tool Xray. Dabei werden manuelle und automatisierte Tests erfasst. Es entsteht eine umfassende Testfall-Datenbank.

Wie werden Testfälle ausgeführt?

Sobald eine Entwicklung abgeschlossen ist, wird diese auf einem Testsystem an die QS-Abteilung übergeben. Alle erforderlichen Tests werden aus der Testfall-Datenbank zu einer Test Execution zusammengestellt. Diese wird auf der Testumgebung von der QS-Abteilung ausgeführt. Dies geschieht manuell und/oder automatisiert.

Manuelle Tests:

Die Testfälle werden manuell ausgeführt, das heißt jeder einzelne Testschritt wird per Hand auf dem Testsystem ausgeführt. Der Ausführungsstatus (PASS / FAIL) wird für jeden Testfall gesetzt

Automatisierte Tests:

Die im Vorfeld programmierten Tests werden automatisch durch ein System (Behat) ausgeführt. Die Ergebnisse werden ebenfalls automatisiert im Testfall dokumentiert, der Ausführungsstatus (PASS / FAIL) automatisiert gesetzt.

Was passiert, wenn Fehler aufgetreten sind?

Aufgespürte Fehler werden jeweils als Ticket im Atlassian-Tool JIRA erfasst, dokumentiert und an die Entwicklung zur Behebung gegeben. Hierbei ist es wichtig, einen Fehler genau zu dokumentieren und ihn für jeden nachvollziehbar zu beschreiben. Screenshots der Fehler unterstützen dabei. Nachdem die Entwicklung den Fehler behoben hat, erfolgt ein weiterer Test Durchlauf durch die QS-Abteilung. Der Test auf dem Test System ist abgeschlossen, sobald alle Anforderungen korrekt umgesetzt und alle Fehler erfolgreich behoben wurden.

Wann ist die Qualitätssicherung abgeschlossen?

Wurde die Entwicklung auf dem Test System erfolgreich getestet, alle Fehler behoben und eine Freigabe durch den Kunden erteilt, ist die Neu-Entwicklung startklar für das sogenannte Live-Deployment. An einem festgelegten Tag X wird die Neu-Entwicklung in das Livesystem eingespielt. Hier ist noch einmal Teamwork gefragt: Entwicklung, Integration, PM und QS arbeiten eng zusammen. Nach erfolgtem Einspielen der Entwicklung in das Livesystem wird hier nochmal getestet, ob das System reibungslos funktioniert. Endgültig grünes Licht gibt der Kunde, der ebenfalls sein neues System prüft.

Wie geht es nach dem Livegang weiter?

Auch nach erfolgreichem Livegang werden die Systeme überwacht. Zur Sicherung der Stabilität und Zuverlässigkeit der Systeme setzen wir unter anderem das Tool Zabbix ein. Hier wird 24/7 automatisiert geprüft, ob Seiten und Prozesse verfügbar sind. Kommt es zu einem Ausfall, wird per Alarmfunktion darüber informiert, damit wir umgehend handeln können.

Zurück zur Übersicht