Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-11491
Autor(en): Schulz, Henning
Titel: Automated generation of tailored load tests for continuous software engineering
Erscheinungsdatum: 2021
Dokumentart: Dissertation
Seiten: XVIII, 560
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-115082
http://elib.uni-stuttgart.de/handle/11682/11508
http://dx.doi.org/10.18419/opus-11491
Zusammenfassung: Continuous software engineering (CSE) aims to produce high-quality software through frequent and automated releases of concurrently developed services. By replaying workloads that are representative of the production environment, load testing can identify quality degradation under realistic conditions. The literature proposes several approaches that extract representative workload models from recorded data. However, these approaches contradict CSE's high pace and automation in three aspects: they require manual parameterization, generate resource-intensive system-level load tests, and lack the means to select appropriate periods from the temporally varying production workload to justify time-consuming testing. This dissertation addresses the automated generation of tailored load tests to reduce the time and resources required for CSE-integrated testing. The tailoring needs to consider the services of interest and select the most relevant workload periods based on their context, such as the presence of a special sale when testing a webshop. Also, we intend to support experts and non-experts with a high degree of automation and abstraction. We develop and evaluate description languages, algorithms, and an automated load test generation approach that integrates workload model extraction, clustering, and forecasting. The evaluation comprises laboratory experiments, industrial case studies, an expert survey, and formal proofs. Our results show that representative context-tailored load tests can be generated by learning a workload model incrementally, enriching it with contextual information, and predicting the expected workload using time series forecasting. For further tailoring the load tests to services, we propose extracting call hierarchies from recorded invocation traces. Dedicated models of evolving manual parameterizations automate the generation process and restore the representativeness of the load tests. Furthermore, the integration of our approach with an automated execution framework enables load testing for non-experts. Following open-science practices, we provide supplementary material online. The proposed approach is a suitable solution for the described problem. Future work should refine specific building blocks the approach leverages. These blocks are the clustering and forecasting techniques from existing work, which we have assessed to be limited for predicting sharply fluctuating workloads, such as load spikes.
Die kontinuierliche Softwareentwicklung hat zum Ziel, qualitativ hochwertige Software durch häufige und automatisierte Releases parallel entwickelter Dienste zu produzieren. Indem sie für die Produktivumgebung repräsentatives Lastverhalten wiedergeben, können Lasttests Qualitätsminderungen unter realistischen Bedingungen erkennen. In der Literatur werden verschiedene Ansätze vorgeschlagen, die repräsentative Lastmodelle aus aufgezeichneten Daten extrahieren. Diese Ansätze stehen jedoch in drei Aspekten im Widerspruch zu dem Tempo und der Automatisierung der kontinuierlichen Softwareentwicklung: Sie erfordern eine manuelle Parametrisierung, erzeugen ressourcenintensive Lasttests auf Systemebene und verfügen nicht über die Mittel, aus der zeitlich variierenden Produktivlast geeignete Zeiträume auszuwählen, die langlaufendes Testen rechtfertigen. Diese Dissertation befasst sich mit der automatisierten Generierung maßgeschneiderter Lasttests, um die erforderliche Zeit und Ressourcen für das in die kontinuierliche Softwareentwicklung integrierte Testen zu reduzieren. Bei dem Maßschneidern sind die Dienste von Interesse zu berücksichtigen und die relevantesten Lastzeiträume auf der Grundlage ihres Kontexts auszuwählen, wie z. B. der Sonderverkaufsaktion eines Webshops. Außerdem sollen Nutzer verschiedener Fachkenntnisse mit einem hohen Automatisierungs- und Abstraktionsgrad unterstützt werden. Entwickelt und evaluiert werden Beschreibungssprachen, Algorithmen und ein automatisierter Ansatz zur Generierung von Lasttests, der die Extraktion von Lastmodellen, Clustering und Prognosen integriert. Die Evaluierung umfasst Laborexperimente, Industriefallstudien, eine Expertenbefragung und formale Beweise. Unsere Ergebnisse zeigen, dass repräsentative, auf den Kontext zugeschnittene Lasttests generiert werden können, indem ein Lastmodell inkrementell erlernt, mit Kontextinformationen angereichert und das erwartete Lastverhalten mit Hilfe von Zeitreihenvorhersage berechnet wird. Für die weitere Anpassung der Lasttests an Dienste schlagen wir vor, Aufrufhierarchien aus aufgezeichneten Aufrufbäumen zu extrahieren. Dedizierte Modelle der sich verändernden manuellen Parametrisierungen automatisieren den Generierungsprozess und stellen die Repräsentativität der Lasttests her. Darüber hinaus ermöglicht die Integration des Ansatzes mit einer automatisierten Ausführungsumgebung Lasttesten für Nutzer mit geringen Fachkenntnissen. In Anlehnung an Open-Science-Praktiken wird ergänzendes Material online zur Verfügung gestellt. Der vorgeschlagene Ansatz ist eine geeignete Lösung für das beschriebene Problem. Zukünftige Arbeiten sollten spezifische Bausteine verfeinern, auf die der Ansatz zurückgreift. Dabei handelt es sich um die Clustering- und Vorhersagetechniken aus bestehenden Arbeiten, die limitiert sind im Hinblick auf die Berechnung stark schwankender Lasten, wie z.B. Lastspitzen.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
schulz_dissertation.pdf13,55 MBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.