TU München - Fakultät für
Informatik |
Home | Forschung/Kompetenz | Lehre | Personen | Publikationen | Abschlussarbeiten | Sonstiges | Kontakt | |
Agenda Es sprechen Studenten über ihre abgeschlossenen Diplomarbeiten und Systementwicklungsprojekte. Am Mittwoch, 27.06.18, ab 14:00 Uhr, im Raum "McCarthy" 01.11.051 :
Semi-automatische Erzeugung von automatisierten Tests aus AnforderungenAutomatisierte Tests zu erstellen, ist heute meist mit hohem Aufwand verbunden. In meiner Bachelorarbeit habe ich das Forschungstool Specmate, das von der TUM und Allianz entwickelt wurde, weiterentwickelt, um damit die Erstellung von automatisierten Tests zu erleichtern. Bisher hat Specmate aus auf Anforderungen basierenden Modellen manuelle Tests generiert, nun kann es automatisierte Tests generieren. Dafür habe ich im ersten Schritt bestehende Testautomatisierungswerkzeuge analysiert und auf dieser Basis ein Konzeptmodell für Testautomatisierung erstellt. Im zweiten Schritt habe ich auf Basis des Konzeptmodells mögliche Schnittstellen zu Specmate identifiziert. Diese Schnittstelle habe ich dann mit den Testwerkzeugen Tosca und Selenium implementiert. Das Ergebnis habe ich mit zwei Industrieexperten evaluiert. Das Ergebnis importiert UI-Element-Merkmale, die Tosca in eienr UI-Analyse erfasst hat, in Specmate, wo diese in der Modellerstellung an Aktivitäten gebunden werden. Die Aktivitäten werden in der Testgenerierung zu Testschritten, sodass bei der Generierung der automatisierten Selenium-Tests auf die UI-Element-Merkmale zugegriffen werden kann, die für die Erstellung der Selenium-Tests essentiell sind. Die Selenium-Tests werden dann von Tosca importiert und automatisch ausgeführt und ausgewertet. Maschinelles Lernen von Analyseregeln zur Erkennung von FehlermusternWe study a new technique for detecting missing method calls in Java applications that was proposed by Monperrus et al. It does not rely on hard-coded rules or any input besides the source code itself; instead, it detects outliers based on the majority rule: If a type is used in one particular way many times and differently only once, this probably indicates a bug. Based on the implementation by Monperrus et al., we develop a system that supports three slightly different techniques for detecting missing method calls. To investigate which one produces the best results, we evaluate them on a dataset of more than 600 open-source Android applications. We manually review the anomalies our implementation finds in 10 randomly selected applications and also perform an automated benchmark that relies on artificially degrading existing code. In the comparison between the different variations, the original technique by Monperrus et al. comes out ahead. However, even if it manages to uncover one true bug, its total results are mediocre with only 3 true positives among 17 total findings. Additionally, our evaluation points in the direction of the majority rule being sensible to input perturbations and needing a lot of data that is not easy to obtain. Design and Analysis of Patterns for Blockchain ArchitecturesBlockchains represent a new decentralized and more secure and efficient system art to store information. As no definition was found for a blockchains design pattern architecture this thesis would be a helping hand to those wanting to use the design pattern of blockchains in creating new more efficient solutions for existing problems. There is quite an amount of literature available about blockchains, however the information is spread out and often not detailed enough in one place. That leads to a significant time loss when a specific detail is needed or when understanding of the processes taking place inside the blockchain and the network is necessary. To solve this problem, we conducted an extensive literature research and proposed a new pattern for blockchain architectures based on the information gathered from literature. The major results of the work consist of: 1) a structuring of available literature on blockchains and 2) the description of a patter for blockchain architectures. The pattern helps in the usage of best practices and can be a useful tool for software architects and developers using the concept of blockchains to develop solutions for a various array of problems. The design pattern for blockchains is a useful tool for software architects and programmers in general and help save time as well as make it easier to advance in the project using the blockchains technology. The pattern could be extended in the future to be used for other new and old types of consensus algorithms like proof of stake, proof of activity etc. |