Was macht ein Software Quality Assurance (QA) Manager/ Softwaretester?

Ein Softwaretester führt hauptsächlich Tests an Firmeneigener oder -fremder Software durch. Der eigentliche Job begrenzt sich jedoch nicht nur auf eine stumpfe Suche nach Fehler in einem Programm oder einer Software.

Ein Softwaretester erstellt unter anderem auch geeignete Konzepte für den optimalen Ablauf des Softwaretests. Dafür benötigt man umfangreiches Wissen zu den vorhandenen Testtools, der zu testenden Software und den möglichen Testabläufen.

Der Fokus liegt im Bereich der Software Quality Assurance auf der Einführung von technischen Neuheiten, der Erstellung von Testkonzepten und dem Starten des Testprozesses. Das Ziel ist dabei die natürliche Identifizierung und Entfernung von Fehler, damit die Software am Ende der Testphase so fehlerfrei wie möglich ist.

Der Kunde ist logischerweise zufriedener mit dem Testing, desto Fehlerfreier die Software beim Endnutzer läuft. Und der Erfolg eines Unternehmens ist letztendlich von der Zufriedenheit der Kunden abhängig.

Ein Softwaretester muss jedoch nicht nur Fehler entdecken. Ein großer Teil seiner Arbeit bezieht sich auf die Dokumentation dieser Fehler und das sie entfernt wurden. Dadurch kann das Testkonzept langfristig verbessert werden. Die jeweilige Arbeitszeit im Bereich der Software Quality Assurance hängt in der Regel von vorgegebenen Abgabefristen ab.

Was ist Software Quality Assurance (SQA)?

Das Ziel der Software Qualität Assurance ist, dass alle Methoden, Prozesse, Aktivitäten und Werkzeuge innerhalb der Software so effektiv und fehlerfrei wie möglich miteinander arbeiten. Dieses Ziel ist erreicht, wenn die Software gewissen Standards entspricht. Diese Standards sind in der Regel eine Auswahl oder eine Kombination aus ISO 9000, CMMI, TMMI und ISO15504.

Software Quality Assurance begleitet alle Entwicklungsbereiche des Software Developments. SQA startet also schon bei den Voraussetzungen einer Software und wird erst nach der Veröffentlichung beendet. Die höchste Priorität ist hierbei kontinuierliche Qualitätssicherung.

Software-Qualitätssicherungsplan

Der Software-Qualitätssicherungsplan (bzw. SQSP) enthält alle Methoden, Techniken und Werkzeuge, die bei der Testung einer Software angewendet werden. Alle Inhalte des SQSPs müssen den Vorgaben der SRS (software requirement specification) entsprechen.

Zusätzlich enthält der die SQA Ziele bzw. Vorgaben für den Softwaretester und verdeutlicht somit die Abschnitte einer Software, bei denen noch Tests durchgeführt werden müssen.

In der Regel enthält ein SQSP die folgenden Abschnitte:

    • Ziele
    • Referenzen
    • Software Konfigurationsmanagement
    • Probleme und Lösungen
    • Werkzeuge, Techniken und Methoden
    • Quellcode Kontrolle
    • Daten zu vergangenen Testdurchläufen
    • Anwendung des Tests

 

SQA-Aktivitäten

 

  1. 1. Erstellung eines SQA Management Plans:

    Der erste Arbeitsschritt für die Software Quality Assurance ist die Erstellung eines strukturierten Plans. Anhand dieses Plans wird das Projekt ausgeführt. Der Plan sollte unter anderem das SQA-Konzept sowie die Engineering Aktivitäten und den Talentmix innerhalb des Teams enthalten.

    2. SQA Ziele definieren:

    Die SQA Ziele bzw. Checkpoints werden definiert, damit man an vorgegebenen Zeitpunkten eine umfassende Evaluierung zum Zustand der Software machen kann. Diese Checkpoints garantieren also reguläre Qualitätsinspektionen und einen verzugsfreien Arbeitsablauf.

    3. Anwendung von Software Engineering Techniken:

    Durch die Anwendung von Software Engineering Techniken gelingt es Software Designern qualitativ hochwertige Spezifikationen zu erstellen. Zur Sammlung von Informationen benutzen Software Designer oftmals Techniken wie das FAST (Functional Analysis System Technique).

    Mit den gesammelten Informationen erstellt der Software Designer dann eine Einschätzung des Projektes. Dazu werden Techniken wie WBS (work breakdown structure), SLOC (source line of codes) und FP(functional point) genutzt.

    4. Durchführung einer formellen technischen Analyse:

    Eine formelle technische Analyse dient zur Evaluierung der Qualität und des Designs eines Prototypen. Dabei handelt es sich um ein Meeting mit den technischen Mitarbeitern, in dem die

    Qualitätsansprüche und die Designqualität diskutiert werden. So können schon zu einem frühen Zeitpunkt Fehler in der Vorgehensweise identifiziert und vermieden werden.

    5. Multi-Test Strategie:

    Unter einer Multi-Test Strategie versteht man die Anwendung von mehreren Testkonzepten, die unterschiedliche Ausgangspunkte für den Test der Software nutzen. Jedes Testkonzept hat seine Schwächen, sodass ein einziges Konzept in Regel einige Fehler übersieht.

    6. Einhaltung der Testkonzept-Vorgaben:

    Die Einhaltung der Vorgaben des Testkonzeptes ist entscheidend für den Verlauf der Software Entwicklung. Hierbei wird die Einhaltung der Vorgaben des Konzeptes gesichert. Die Aktivität wird in die Produkt Evaluation und das Prozess Monitoring unterteilt.

    7. Bearbeitungskontrolle:

    Hierbei werden manuelle und automatisierte Techniken angewendet, um die Veränderungen am Quellcode zu kontrollieren. Dazu werden die Art der Veränderung und die Auswirkung bewertet, sodass tatsächlich nur sinnvolle Veränderungen erhält.

    8. Analyse der Performance nach der Bearbeitung:

    Nach der Behebung eines Fehlers ist es die Aufgabe des Softwaretesters, die Auswirkungen dieser Veränderung auf die Software zu evaluieren.

    Zunächst muss geprüft werden, ob die Veränderung tatsächlich den Fehler behoben hat. Danach wird die Kompatibilität dieser Veränderung mit dem restlichen System getestet.

    Die Auswirkungen einer Veränderung können anhand von gewissen Qualitätsmerkmalen gemessen und miteinander verglichen werden.

    9. SQA Prüfung:

    Bei einer SQA Prüfung wird der gesamte SQSP-Prozess getestet und mit bereits vergangenen Testabläufen verglichen. Zudem kann man nach der Prüfung beurteilen, ob die dokumentierten Testdaten valide sind oder nicht. Somit lassen sich Verstöße gegen das vorgegebene Testkonzept identifizieren.

    10. Dokumentation des Testverlaufs:

    Es ist sehr wichtig die Fortschritte und Erkenntnisse der Software Quality Assurance kontinuierlich zu dokumentieren. Dadurch können die Testkonzepte und Techniken verbessert werden, damit im Endeffekt eine bessere Software entsteht. Außerdem fördert die Dokumentation die Transparenz gegenüber den Investoren.

    11. Kommunikation mit dem Entwicklerteam:

    Der Software Tester sollte in regelmäßigem Kontakt mit dem Entwicklerteam stehen. In manchen Fällen kommt es bei unregelmäßigen Kontakt zu Spannungsverhältnissen, die so gut wie möglich vermieden werden sollten, da sonst die Qualität der Software möglicherweise sinkt.

Standards zur Qualitätssicherung von Software

In der Regel wird die Qualitätssicherung anhand von gewissen Standards durchgeführt. Nun folgen einige der populärsten Standards.

ISO 9000: Dieser Standard basiert auf sieben Prinzipien des Quality Managements, mit denen die Organisation überprüfen kann, ob die Software den Ansprüchen des Kunden gerecht wird.

CMMI Level: CMMI steht für Capability maturity model Integration. Dieser Standard ist im Bereich des Software Engineering entstanden. Mittels CMMI kann der Fokus und die entsprechende Arbeitsleistung innerhalb eines Projektes, Departments oder einer ganzen Organisation dirigiert werden. Es gibt fünf Maturity Levels. Das jeweilige Level hängt vom Fortschritt des Softwaretests ab. Das Projekt oder die Organisation wird anhand einer Bewertung einem Maturity Level zugewiesen.

Test Maturity Model Integration (TMMI): TMMI basiert auf den Prinzipien von CMMI. Bei diesem Standard liegt der Fokus auf den sogenannten Maturity Levels, die beim Software Quality Management und Testing generell vorhanden sind. Das TMMI hat genau wie das CMMI fünf Maturity Levels, welche vom Testfortschritt abhängig sind.

Je höher das Maturity Level innerhalb einer Test-Organisation ist, desto höher ist die Wahrscheinlichkeit, dass die Software nach den Tests keine Fehler mehr hat und den jeweiligen Ansprüchen des Kunden entspricht.

Software Quality Assurance für Software Development bei Critical QA

Florian Hemmann gründete im März 2019 das Unternehmen Critical QA. Die Firma ist spezialisiert auf Dienstleistungen im Bereich der Software Qualitätssicherung. Dazu zählt auch eine individuell konfigurierte Testing Lösungen. Je nach Wunsch können alle möglichen Arbeitsabläufe in Ihren Software-Entwicklungsprozess integriert werden.