Automatische Bewertung von Codequalität innerhalb eines Code Reviews
- Eine gängige Form der Qualitätskontrolle von Quellcode sind Code Reviews. Der Fokus von Code Reviews liegt allerdings oft auf syntaktischer Analyse, wodurch weniger Zeit für eine semantische Überprüfung bleibt und zusätzliche Kosten verursacht werden. Code Reviews lassen sich zwar teilweise durch "Linter" automatisieren, dennoch können sie nur syntaktische Fehlermuster identifizieren, welche vorher definiert wurden. Zudem kann ein Linter nur darauf hinweisen, dass möglicherweise ein Fehler vorliegt, da die Fehler nicht durch logische Inferenz ermittelt werden. Die vorliegende Arbeit prüft, ob ein Deep Learning Modell den regelbasierten Ansatz von Lintern ablösen und die semantische Ebene erschließen kann. Dazu wurde eine Stichprobe von Java Methoden zusammengestellt und im Anschluss mit einem Supervised Learning Ansatz binär klassifiziert. Da die Analyse von Quellcode der Textanalyse stark ähnelt wird ein gängiger Ansatz für Textklassifikation verwendet. Dadurch kann gezeigt werden, dass eine Präzision von 85% bei der Erkennung von Quellcodeproblemen durch Deep Learning möglich ist.
- A common form of quality control of source code are code reviews. However, code reviews often focus on syntactic analysis, leaving little time for semantic review and increase costs. Although code reviews can be partially automated by a programm called "linter", they can only identify syntactic error patterns that have been previously defined. In addition, a linter can only indicate that there may be an error, because the errors are not determined by logical inference. This work examines whether a deep learning model can replace the rule-based approach of linters and open up the semantic level. For this purpose, a sample of Java methods was compiled and then binary classified with a supervised learning approach. Since the procedure of the source code analysis closely resembles the procedure of text analysis, a common approach to text classification is used. This demonstrates that 85% accuracy is possible in detecting source code problems through deep learning.
Author: | Sascha Lemke |
---|---|
URN: | urn:nbn:de:hbz:832-epub4-15662 |
Document Type: | Master's Thesis |
Language: | German |
Publishing Institution: | Hochschulbibliothek der Technischen Hochschule Köln |
Granting Institution: | Technische Hochschule Köln |
Date of first Publication: | 2020/08/27 |
Date of Publication (online): | 2020/09/01 |
Tag: | Code Review; Codequalität; Deep Learning; Neuronale Netze; Statische Analyse |
Page Number: | 66 |
Institutes: | Informatik und Ingenieurwissenschaften (F10) / Fakultät 10 / Cologne Institute for Digital Ecosystems |
CCS-Classification: | D. Software |
E. Data | |
I. Computing Methodologies | |
Dewey Decimal Classification: | 000 Allgemeines, Informatik, Informationswissenschaft |
600 Technik, Medizin, angewandte Wissenschaften | |
Open Access: | Open Access |
Licence (German): | ![]() |