Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title Distributed Execution of Performance Tests on Cloud Instances
Organization Unit
Authors
  • Selin Fabel
Supervisors
  • Harald Gall
  • Christoph Laaber
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2017
Abstract Text Software performance testing is a very important task in the development cycle of applications and services. Regression between versions such as increased response time and lowered throughput can lead to an inappropriate usage of resources, unsatisfied users, and eventually also a loss of money. To make matters worse, performance testing is a tedious process; the test suites take long to execute, but must be repeated several times to obtain expressive results. Additionally, software is changing at a pace which makes it almost impossible to thoroughly test the performance of the whole application before every release. This thesis investigates the impacts of parallel execution of performance tests in cloud environments. Initially, it examines how performance tests suites can be split, distributed and executed on several remote instances. For this purpose, the thesis introduces a tool called clopper which stands for cloud-extended hopper and is based on a framework for performance history mining of software projects. Clopper implements four different distribution algorithms which either split the test suite on version- or test-level. In a further step, clopper is used to extract performance metrics from three different projects. By means of these measurements, the distribution methods are compared in terms of time, cost and quality. The results reveal that parallel is always faster than non-parallel execution but at the same time, that this does not imply savings of money. Depending on the use-case, one method is more suitable than another. If the aim is to quickly obtain measurements which possibly contain inaccuracies, one should distribute groups of consecutive versions. On the other hand, if the results should be as stable as possible and time is not an urgent matter, the method which randomly distributes version-test-tuples should be chosen. Distribution by versions obtains in parallel execution with six cloud instances a gain in time of factor 4.78. The completely randomized approach is 5.30 times faster when using six instances instead of one.
Zusammenfassung Das Testen von Performanz ist eine wichtige Aufgabe in der Software-Entwicklung von Applikationen und Diensten. Leistungseinbussen zwischen Versionen, wie zum Beispiel erhöhte Antwortzeit oder verminderter Datendurchsatz können die Nutzerzufriedenheit beeinträchtigen und zu unnötigem Ressourcenverbrauch sowie Kapitalverlust führen. Zu allem Überfluss sind solche Tests mühselig durchzuführen und mit viel zeitlichem Aufwand verbunden. Nebst der langen Ausführungszeit, sind vieleWiederholungen der Tests notwendig um aussagekräftige Resultate zu erhalten. Ausserdem verändert sich Software so schnell, dass es nahezu unmöglich ist vor jedem Release die Performanz einer ganzen Applikation zu testen. Aus diesen Gründen untersucht die vorliegende Bachelorarbeit, wie sich Software-Leistungstests parallelisieren und in Cloud-Umgebungen ausführen lassen und welche Auswirkungen dies hat. In einem ersten Schritt wird erforscht, wie Test-Sammlungen aufgeteilt und zur Ausführung einer Gruppe von virtuellen Cloud Instanzen zugeschrieben werden können. Für diese Aufgabe, präsentiert diese Arbeit ein Skript namens clopper, das auf einem Programm zur Erstellung eines Performanz-Verlaufs von Software Projekten basiert. Clopper steht für cloud-extended hopper, ist also eine Erweiterung des hopper-Programms für Cloud Computing. Clopper stellt vier verschiedene Distributions-Algorithmen zur Verfügung. Die Testsammlung wird dabei entweder nach Versionen oder Tests aufgeteilt. In einem weiteren Schritt wird clopper dann zur Performanzmessung dreier Software-Projekte eingesetzt. Mithilfe der gesammelten Messdaten werden die Distributions-Algorithmen auf Zeit-, Kosten- und Qualitätsunterschiede untersucht. Schlussendlich zeigt sich, dass parallele Ausführungen immer schneller als sequentielle Ausführungen sind. Aus den Ergebnissen lässt sich aber auch schliessen, dass eine schnellere Ausführung nicht unbedingt mit geringeren Kosten verbunden ist. Je nach Anwendungsfall ist deshalb eine andere Methode zu empfehlen. Falls möglichst schnell Messwerte vorliegen sollten, die aber auch Inkonsistenzen enthalten dürfen, sollte jene Methode gewählt werden, die Grüppchen aufeinanderfolgender Versionen verteilt. Wenn dieWerte jedoch so stabil wie möglich sein sollten und dabei die Ausführungsdauer nur eine geringe Rolle spielt, sollte man zu jener Methode tendieren, die Tupel von Versionen und Tests generiert und diese zufällig an die Instanzen verteilt. Die erste Methode erzielt in einer parallelen Durchführung auf sechs virtuellen Instanzen einen Zeitgewinn von Faktor 4.78. Mit dem komplett zufälligen Ansatz sind sechs Instanzen rund 5.30-mal schneller als eine einzelne.
PDF File Download
Export BibTeX