Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title TestDescriber: Generating comprehensible Test Cases
Organization Unit
Authors
  • Antonio Galluccio
Supervisors
  • Harald Gall
  • Sebastiano Panichella
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2017
Abstract Text Nowadays, it is very common in software development to write code that will change multiple times over a rather short period of time, depending on the business requirements. As this is an integral part of agile software development, it is very important for developers to be able to change parts of a program without introducing new errors that would compromise the existing system. Because of this, software tests have become a vital part of software development, too. However, the task of testing the developed software takes up a lot of time for a programmer and even becomes a great part of the software project itself. In fact, the creation and maintenance of software tests can take up to 50\% of the overall project effort \cite{Brooks:1978:MME:540031}. That is why automatic test generation suites like EvoSuite or JTest, etc... exist. These tools are able to automatically create unit tests that can be useful to increase test coverage of a project and help in reducing the test creation time. Unfortunately, the software developer still needs to verify the created tests and check whether they are correct and cover all the important parts of the production code. As these tests are automatically generated, it isn't given that they are easily understandable and the checking of the automatically generated tests always involves looking up the relevant parts in the production code as well. This is where TestDescriber aims to help in the development cycle. The tool tries to add comments in natural language to automatically generated tests, that are supposed to help the developer gain a faster and better understanding of the test code before him and therefore make it easier to find bugs and modify the created test cases.
Zusammenfassung Heutzutage ist es üblich, dass sich der Quellcode eines Projekts während dem Softwareentwicklungszyklus innerhalb kürzester Zeit mehrere Male ändert, immer abhängig von den Business Requirements. Diese Eigenschaft ist ein Teil der agilen Softwareentwicklung und macht es deswegen für den Entwickler umso wichtiger, dass er in der Lage ist den Quellcode anzupassen oder umzuschreiben ohne dabei neue Fehler einzuführen oder ein laufendes System zu kompromittieren. Aufgrunddessen sind Softwaretests ein wichtiger Bestandteil für Softwareentwickler geworden. Allerdings benötigt ein Entwickler zum Schreiben von Softwaretests sehr viel Zeit und die Softwaretests erweitern ein Projekt auch um mehr Komponenten, welche gewartet werden müssen. Tatsächlich ist in der Industrie die Aussage verbreitet, dass das Schreiben und Warten von Softwaretests bis zu 50\% der Zeit eines Programmierers in Anspruch nimmt \cite{Brooks:1978:MME:540031}. Deswegen gibt es automatische Testgenerationstools wie EvoSuite oder JTest, etc... . Diese Tools sind dazu in der Lage automatisch Softwaretests zu erstellen, was zu erhöhter Codeabdeckung führen kann und die Zeit zur Erstellung der Softwaretests signifikant verringert. Unglücklicherweise sind diese automatisch generierten Tests aber nicht fehlerfrei und somit benötigen sie immernoch einen Programmierer der die Gültigkeit der Tests überprüft. Ausserdem sind sie nicht immer einfach verständlich und oftmals ist der Prüfer der Tests gezwungen sich durch den ursprünglichen Produktionscode zu lesen um zu verstehen was der generierte Test überhaupt macht. Mithilfe von TestDescriber soll den Entwicklern geholfen werden Tests leichter zu verstehen indem automatisch generierte Kommentare in natürlicher Sprache in die Testklasse eingeführt werden. Dadurch soll es dem Entwickler gelingen Tests leichter zu verstehen und mehr Bugs zu finden.
PDF File Download
Export BibTeX