Agentenbasierte dynamische Testfallpriorisierung
Autoren
Mehr zum Buch
Die zunehmende Komplexität von Automatisierungssoftware erfordert einen immer größer werdenden Testaufwand dieser Softwaresysteme, um sicherzustellen, dass die automatisierten Systeme zuverlässig funktionieren. Auf der einen Seite verfügt der Testmanager für die Durchführung dieser Systemtests über eine große Menge an Testfällen. Auf der anderen Seite sind jedoch die Testzeit und die Anzahl der Testressourcen, die dem Testmanager zur Disposition stehen, begrenzt. Er ist gezwungen, mit hohem Aufwand sowohl von Testzyklus zu Testzyklus als auch gegebenenfalls während eines Testzyklus des Systemtests eine Priorisierung der zur Verfügung stehenden Testfälle durchzuführen, um trotz der begrenzten Testzeit und der begrenzten Testressourcen verlässliche Testresultate abzuliefern und sicherzustellen, dass die Softwaresysteme ausreichend geprüft werden. In der vorliegenden Arbeit wird ein Konzept vorgestellt, das mithilfe von Softwareagenten diesen manuellen Aufwand reduziert und den Fehlerentdeckungsgrad, die Effektivität und die Effizienz beim Systemtest erhöht. Softwareagenten werten die im Systemtest bereitstehenden Informationen aus der Systementwicklung, dem Systemtest und dem Systembetrieb dynamisch aus und schlagen aktiv und konstruktiv eine Testfallpriorisierung für die Testzyklen des Systemtests vor. Das Ziel der Softwareagenten ist dabei, eine Testfallpriorisierung zu erreichen, die es ermöglicht, in der zur Verfügung stehenden Testzeit möglichst viele und insbesondere schwerwiegende Fehler zu finden. Die Grundidee der agentenbasierten dynamischen Testfallpriorisierung ist, dass Softwareagenten Softwaremodule und Testfälle des zu testenden Softwaresystems vertreten und aus deren Perspektive in Zusammenarbeit die Testfallpriorisierung durchführen. Zur Testfallpriorisierung bestimmen die Softwareagenten Fehlerwahrscheinlichkeiten auf Basis von Informationen, die in bereits in der Industrie eingesetzten Entwicklungs- und Testwerkzeugen vorhanden sind, was die Anwendbarkeit im Systemtest sicherstellt. Je nach Bedarf bzw. Verfügbarkeit können die Informationen, die zur Auswertung eingesetzt werden, angepasst werden. Die Softwareagenten werten die Informationen mit Priorisierungsregeln aus, die anhand von Erfahrungswissen basierend auf Fuzzy-Regelwerken definiert wurden. Auch die Priorisierungsregeln können je nach Bedarf angeglichen werden. Die Softwareagenten arbeiten aktiv im Hintergrund. Sie registrieren die Veränderung von Informationen aufgrund dynamischer Ereignisse und reagieren auf diese mit der Anpassung der Testfallpriorisierung. Ein Testfallpriorisierungssystem basierend auf dem Konzept der agentenbasierten dynamischen Testfallpriorisierung wurde realisiert und evaluiert. Die Evaluierungsergebnisse zeigen eine deutliche Steigerung des Fehlerentdeckungsgrads, der Testeffektivität und der Testeffizienz sowie eine Reduzierung des zeitlichen Aufwands für die Testfallpriorisierung im Vergleich zu einer Testfallpriorisierung durch einen Menschen mithilfe von herkömmlichen Entwicklungs- und Testwerkzeugen.