
Professioneller Softwaretest
Professioneller Test ist die nachvollziehbare, auf bewährte Praktiken gestützte Messung verschiedener funktionaler und nichtfunktionaler Qualitätsaspekte (siehe z.B. Standard ISO 25010 und andere). Dabei ist es zweckmäßig, je nach Projektfortschritt unterschiedliche Teststufen anzuwenden und möglichst viel automatisiert zu testen. In der Praxis gibt es hierbei eine Reihe teilweise auch unerwarteter Details zu berücksichtigen, um gültige Qualitätsaussagen zu erzeugen: Von der Festlegung des Testobjekts über die Testanalyse bis hin zu den Stufen bei der Einführung einer Testautomatisierung. Selbst wenn die Tests schließlich jede Nacht laufen, gibt es weitere potenzielle Hürden: Effiziente Debug- und Bugfixingprozesse, ggf. verknüpft mit agilen Vorgehensweisen sowie die angemessene Beurteilung statistischer ("sporadischer") Fehler. Gerade dieser Fehlertypus kann andernfalls zu erheblichen Projektverzögerungen führen.
Wir haben jahrzehntelange Erfahrung im professionellen Softwaretest, ob agil oder nicht. So können wir Sie bei den folgenden Themen gerne beraten und unterstützen:
Vorbereitung des Testprozesses:
- Bedarfsanalyse für Testerschulungen sowie Klärung der Test-Terminologie. Je klarer die Begrifflichkeiten im Vorfeld festgelegt werden, umso weniger Diskussionsbedarf gibt es erfahrungsgemäß im Nachhinein.
- Analyse und Review bestehender Prozesse
- Optimierung bestehender Prozesse
- Überführung bisheriger Prozesse in agile Vorgehensweisen
- Einführung von ISO/IEC/IEEE 29119 "Software testing": Auf diesen Standard gestützte Testprozesse sind mit weniger Aufwand zu implementieren, da nicht jede Entscheidung zum Design des Testprozesses selbst getroffen werden muss und schaffen überdies Vertrauen bei Ihren Kunden.
- Design der Teststufen: Bewährte Praxis ist die Unterteilung des Testprozesses in statische sowie dynamische Testverfahren; letztere umfassen mehrere Stufen, etwa Unit-, Komponenten- und Gesamtsystemtest. Parallel dazu werden die Testobjekte sachgemäß angelegt.
- Schulungen für Moderatoren bei statischen Tests, z.B. Reviews: Gut moderierte Reviews können nachweislich gerade die Fehler zu vermeiden helfen, die trotz fehlerloser Unittests bei den ersten Integrations- und Systemtests auftreten, wenn getrennt entwickelte Komponenten zusammenspielen.
Implementierung des Testprozesses:
- Beratung bei der Suche nach geeigneten Tools für den Test sowie das automatisierte Framework. Jedes Tool hat seine Stärken und Schwächen. Wir unterstützen bei der Abwägung.
- Design und Implementierung einer Testautomatisierung vom Testframework, den Testschnittstellen über die Testfunktionen hin zu Templates für Testfälle. Auch automatische Testfallgenerierung aus beschreibenden Meta-Sprachen ist denkbar. Nicht zu vergessen, aber oft vernachlässigt: Erzeugung aussagekräftiger Logs, die auch bei sporadischen Fehlern mit Auftrittswahrscheinlichkeit von unter 5 % den Debugger nicht im Stich lassen.
- Testbarkeit des Testobjekts: Nicht jede Software ist gleich gut testbar. Nicht selten ist ein explizites Design für die Testbarkeit notwendig, verbunden mit einer behutsamen Anpassung des Mindsets in der Entwicklung. Darin haben wir Erfahrung.
- Test Driven Development oder nicht? Wir sprechen gerne darüber.
- Detailanalyse der Requirements (Lastenheft, PBIs, Features ...) zur Erstellung der Testfälle.
- Implementierung und Anwendung eines Frameworks für Hardware-in-the-Loop (HIL) bzw. Software-in-the-Loop (SIL). Diesbezüglich können wir unser eigenes, hochflexibles HIL-Framework anbieten, das bereits bei Kunden erfolgreich im Einsatz ist.
- Test und Evaluierung des Testframeworks: Auch dieses Stück Software muss sich das Vertrauen erst erarbeiten. Wir kennen die Kinderkrankheiten und was dagegen zu tun ist.
- Einrichten eines Debug- und Fehlerbehebungsprozesses inklusive Fehlerdatenbank und Strategie für Regressionstests.
Durchführung und Auswertung der Tests:
- Einrichtung von Testplänen
- Auswertung der Testlogs und Ergebnisse, ggf. automatisch
- Ablage der Testergebnisse
- Umgang mit statistisch auftretenden Fehlern: Gerade bei gereiften Produkten und Testprozessen werden systematische Fehler schnell in den unteren Teststufen (z.B. Unittests) abgefangen. Im Gesamtsystemtest treten hingegen vermehrt sporadische Fehler auf, die mit indeterministischem Verhalten (Timings) zu tun haben und Auftrittswahrscheinlichkeiten von manchmal < 5 % haben. Wie damit umgehen? Wie sind Bugfixes dieser Fehlerart zu testen? Bei Fragen dieser Art beraten wir Sie gerne.
Gibt es etwas, das hier nicht aufgeführt ist? Kontaktieren Sie uns gerne: Test und Quality sind unsere Leidenschaft. Gemeinsam finden wir Antworten auf Ihre Fragen.
Stellenangebote Test & Quality
- professioneller Test
- Qualität
- ISO 25010
- Teststufe
- Testobjekt
- Testanalyse
- Testautomatisierung
- Debugging
- Bugfixing
- agil
- statistische Fehler
- statistischer Test
- dynamischer Test
- Testprozess
- Testerschulung
- Test-Terminologie
- ISO/IEC/IEEE 29119 "Software testing"
- Testprozess
- Unittest
- Komponententest
- Gesamtzsystemtest
- Testobjekt
- Review
- Integrationstest
- Testtools
- Testframework
- Testschnittstellen
- Testfunktionen
- Testfälle
- automatische Testfallgenerierung
- Testbarkeit
- Test Driven Development
- Hardware-in-the-Loop (HIL)
- Software-in-the-Loop (SIL)
- HIL-Framework HILF
- Fehlerdatenbank
- Regressionstests
- Testplan
- Testlogs
- Testergebnisse