Software Test

Test catalog to test case relationship Während in vielen Bereichen bereits ein mehrstufiger (Software-) Test als unentbehrlicher Bestandteil des Produkt-Entwicklungsprozesses betrachtet wird, findet in anderen Bereichen der Begriff “Test” noch kaum Verwendung. Tatsache ist eine Tendenz zu immer komplexer werdender Software und somit auch steigender Fehlerhäufigkeit. Letztlich stellt sich also nur die Frage, wie lange man ohne Softwaretest auskommt, bevor einen die Realität einholt. Desto später gestartet wird, umso schwieriger ist es hier Schritt zu halten und die Altlasten auf den Stand der Technik zu bringen.

Test als mehrstufiger Bestandteil des Entwicklungsprozesses

Modultest, Integrationstest, Softwaretest und Systemtest sind Bestandteile eines mehrstufigen Verifikationsprozesses, welcher bereits in vielen Bereichen der Industrie Anwendung findet. Die Art der Absicherungsmaßnahme ist jedoch abhängig von dem Produkt und dessen Anwendung, also in welchem Umfeld das Produkt verwendet wird, und welche Auswirkungen ein Fehler haben kann. Die Auswirkungen eines Fehlers können im Idealfall unbemerkt bleiben, aber im Gegensatz dazu auch zu sicherheitsrelevanten (z.B. lebens- oder umweltbedrohlichen) Umständen führen. Umweltschäden und Personenschäden erfordern natürlich deutlich höhere Absicherungsmaßnahmen des Produkts als beispielsweise ein Anzeigefehler der Scheibenwischanlage. Jedoch können auch unbedenklich erscheinende Fehler letztlich als absolut inakzeptabel angesehen werden, wenn zum Beispiel die Kundenzufriedenheit dadurch leidet. Ebenso wäre ein Fehler absolut inakzeptabel, wenn aufgrund dessen komplette Ernteausfälle oder andere weitreichende Schäden in der Landwirtschaft entstünden. Genauso kann eine Falschmeldung eines angeblich inaktiven Airbags entsprechende Aufmerksamkeit erregen.
Aus gutem Grund ist eine Fehler-Auswirkungsanalyse, auch bekannt unter Failure Mode and Effects Analysis – kurz FMEA, bei sicherheitsrelevanten Projekten erforderlich, auf Basis dessen Ergebnis auch notwendige Verifikationsumfänge erkennbar werden. Die Kunst eines mehrstufigen Testkonzeptes ist es Redundanzen weitestgehend zu vermeiden und dabei Testlücken so klein als möglich zu halten.

Testen – alles andere als einfach

Tja auch Tester haben es nicht einfach, denn nicht zu selten dominieren Meinungen wie

  • Testen wäre einfach und kann jeder,
  • die Produktqualität werde kaum gesteigert – Testen sei aber zeitaufwendig und kostet viel,
  • getestet werde nur um die Erwartungshaltung des Kunden oder der Test-Norm zu erfüllen oder
  • Testen wäre langweilig und stupide.

Falls Sie hier auch Meinungen aus Ihrem Unternehmen wiederfinden, dann wäre es an der Zeit etwas zu ändern. “Bilderbuch”-Testen erfordert hohe Einsatzbereitschaft, ein sehr gutes Gesamt-Verständnis des Produkts sowie dessen interne Abläufe, eine gezielte Anwendung von teilweise komplexen Toolings und natürlich Kenntnisse der zu erfüllenden Test-Normen. Es gilt die Testumgebung weitestgehend auf Automatisierung auszurichten um Regressionstestschleifen als auch die Testerstellung zu beschleunigen. Die Automatisierung schließt somit auch Entwicklungsaufgaben innerhalb der Verifikation ein. Fehler als solche zu erkennen, selbst wenn die Spezifikation Lücken aufweist, und mit der Definition oder Entwicklung über mögliche Verbesserungen zu sprechen, erfordert viel Erfahrung und eine proaktive und gute Zusammenarbeit mit anderen Abteilungen.

Qualität statt Quantität

Eine ebenso oft geglaubte Annahme: Testen bestätigt eine fehlerfreie Software. Leider ist das nicht möglich, denn mit der Komplexität des Produkts und den vielen Einsatzmöglichkeiten und Schnittstellen steigt die Fehlerrate progressiv und somit auch die Wahrscheinlichkeit von unentdeckten Fehlern. Sporadisch auftretende Fehler während der Verwendung oder im Test werden oft nicht als solche erkannt oder nicht weiter verfolgt. Selbst bei 100% Code- und Requirementabdeckung kann man eine völlige Abwesenheit von Fehlern nicht garantieren, sondern hat die Anzahl der Fehler lediglich minimiert. Test bestätigt die größtmögliche Sicherheit, dass ein Produkt in den geplanten Rahmenbedingungen funktioniert.
Somit stellt sich automatisch die Frage wann man zu testen aufhört, wenn man ohnehin nicht alle Fehler findet. Hierbei kommen wir zur Wahl der richtigen Testmethoden und Teststrategie. Grundsätzlich gilt es einen gewissen Abteilungsstandard von allgemein anzuwendender Testmethoden und Herleitungsmethoden zu definieren. Die Teststrategie hingegen konzentriert sich dann auf das “WAS”, “WANN” und “WO” basierend auf der Fehlerauswirkung, der Eigen-Komplexität, der Anzahl der Anwendungskombinationen, dem Fertigstellungszeitpunkt, der Produktverwendung zur jeweiligen Entwicklungsphase und anderen Kriterien. Eine gut gewartete Fehlerdatenbank aus immer wieder auftretenden Fehlerarten kann die Teststrategie in ihrer Effizienz verbessern. Auch die Wahl des Test-Startzeitpunkts sollte gut überlegt sein, denn nicht nur zu spät gefundene Fehler sondern auch ein zu früh gewählter Startzeitpunkt laufen Gefahr zusätzliche Kosten zu verursachen.

Test Tooling – “Take a Sledgehammer to crack a nut”

Wie auch in anderen Industriebereichen ist ebenso für die Verifikation das richtige Tooling wesentlich für einen schlanken und zugleich hochwirksamen Prozess. Tooling umfasst nicht nur Programme zur Testdurchführung und der Erstellung sondern ebenso für die Verwaltung von Fehlern, Tests, Requirements und Ähnlichem. Beim Entscheid sollte man sich Zeit nehmen und soweit möglich auf zu komplexe und zu teure Tools verzichtet werden. Anstatt mit “Kanonen auf Spatzen zu schießen” sollte auf Vervielfältigung, Einfachheit, Kombinier- und Skalierbarkeit Wert gelegt werden, denn wie bereits erwähnt ist Testen selbst komplex genug und sollte nicht durch Tools weiter verkompliziert werden. Voraussetzung ist natürlich, dass die Aufgabe damit effizient erledigt werden kann! “Lästige” und stupide Tätigkeiten, die einfach nur Zeit verbrauchen, sollten automatisiert werden können. Oft bewirken auch kleine “Helferchen” große Ersparnis und steigern ebenso die Qualität. Halten Sie also an einer ständigen Optimierung des Tests-Toolings fest!
Second hand tool store

Für Tipps/Ratschläge oder Unterstützung kontaktieren Sie uns einfach! jetzt kontaktieren…

Wir bieten Unterstützung bei:

  • Modultest/Unit Test
  • Modulintegrationstest
  • Hardware In the Loop Test (HiL)
  • Software Integrations Test
  • Software Test
  • Testmanagement
  • Teststrategie
  • Test Setup und Tooling
  • Testautomatisierung
  • Test Driven Development
  • Inhouse-Trainings
  • Einführung von Verifikationsprozessen
  • der Anpassung des Verifikationsprozesses an Normen wie z.B. ISO26262
ISO26262 Webinar
ISO 26262 is the Functional Safety standard for road vehicles. It defines the requirements for building safe automotive equipment and is being adopted by automotive manufacturers and suppliers worldwide. A key piece of ISO 26262 is thorough software testing. Do you understand how this new standard will affect your company’s development and test process? How are other companies in your industry managing their adoption of the ISO 26262 testing requirements? ...

! Register Now ...