• Keine Ergebnisse gefunden

Martin Wittlinger Betreut von Tobias Hey

N/A
N/A
Protected

Academic year: 2022

Aktie "Martin Wittlinger Betreut von Tobias Hey"

Copied!
30
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

IPD Tichy, KIT-Fakultät für Informatik

Bachelorarbeit

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests

Martin Wittlinger

Betreut von Tobias Hey

(2)

2 09.12.2019

INDIRECT

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

(3)

Warum Komponententests?

Komponententests sind Dokumentation

Komponententests besitzen eine Intention des Programmierers

Komponententests sind eine Sicht auf den Code

(4)

4 09.12.2019

INDIRECT

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

(5)

Beispiel

Navigation.findNearest ⇐⇒ b.squareAt

parser.parseMap ⇐⇒ b.squareAt

(6)

8 09.12.2019

Verwandte Arbeiten

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

Rückverfolgung getestete

Klasse/Methode

• Rompaey and Demeyer 2009

• Qusef et al. 2011

• Arshia et al. 2016

Duplikatserkennung

• Marcus and Maletic 2001

Bewertung von Komponenten- tests

• Badri and Toure 2012

• Balogh et al. 2016

(7)

Rückverfolgung getestete Methode/Klasse

Textuelle Verfahren

Dokumentation Antoniol et al. 2002

Dokumenten Csuvik, Kicsi, and Vidács 2019

Semantische Verfahren

Datenfluss Qusef et al. 2011

Klassenvariablen Ghafari, Ghezzi, and Rubinov 2015

Quelltextmetriken Arshia, Mostafa, and Hadi 2016

Rückverfolgung getestete

Klasse/Methode

Duplikatserkennung Bewertung von

Komponenten- tests

(8)

10 09.12.2019

Ansatz

Heuristisches Verfahren

Nutzung von verschiedenen Teilverfahren

Extraktion von Informationen aus dem Quelltext Semantische und Textuelle Verfahren

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(9)

Transformation des Quelltextes

Umwandlung des Quelltextes Aufteilung der Teilinformationen

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(10)

12 09.12.2019

Extrahierte Informationen

Paketbezeichner Importanweisungen Methodenname

aufgerufene Methoden Überprüfungen

Auf/Abbaumethode

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(11)

Informationsauswertung: Überprüfung

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(12)

14 09.12.2019

Informationsauswertung: Methodenname

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

Textuell

Existieren Konventionen Ähnlichkeitsalgorithmen

fastText Cosinus JaroWinkler FuzzyScore

Längste Gleiche Sequenz Einfache Gleichheit

testSubscriptionLookups

SubscriptionLookups

Subscription::lookup

(13)

Berechnung des Ergebnisses

Konfidenzwerte für jede Information Unterschiedlich genaue Teilergebnisse Summierung der Konfidenzwerte

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(14)

16 09.12.2019

Evaluation

Rahmenbedingungen

JPacman, Gitiles und Roller Gold Standard selbst erstellt

Parameter auf Teilmenge eingestellt

Metriken

Präzision, Ausbeute und F 1 -Maß

Richtige, falsche und fehlende Methodenpaare

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

JPacman Gitiles

Roller

(15)

JPacman Ergebnisse

(16)

18 09.12.2019

Gitiles Ergebnisse

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

(17)

Gitiles Probleme

Erstellermuster

Modernes Java

private Methoden

Testattrappen

(18)

20 09.12.2019

Roller Ergebnisse

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

(19)

Zeichenkettenähnlichkeitsalgorithmenvergleich

Algorithmus Schwellwert 0.40 Schwellwert 0.60

Präzision Ausbeute F-Maß Präzision Ausbeute F-Maß

fastText 1 Epoche 0.33 0.52 0.40 0.34 0.17 0.23

fastText 25 Epochen 0.32 0.51 0.40 0.34 0.19 0.24

Kosinus 0.21 0.49 0.29 0.28 0.15 0.20

FuzzyScore 0.21 0.55 0.30 0.33 0.36 0.34

JaroWinkler 0.20 0.67 0.31 0.41 0.50 0.45

Längste Gleiche Sequenz (LGS) 0.20 0.53 0.29 0.52 0.37 0.43

Gleichheit 0.37 0.42 0.40 0.35 0.10 0.15

JaroWinkler+LGS+fastText 0.22 0.67 0.33 0.41 0.53 0.46

(20)

22 09.12.2019

Zusammenfassung

Verwandte Arbeiten Verfahren

Teilverfahren Evaluation Probleme Ausblick

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

(21)

Ausblick

Testattrappen

Erstellermuster

Private Methoden

Dokumentation

Random Forest

(22)

24 09.12.2019

Literatur

[VRD09] Rompaey and Demeyer 2009 [QBO+11] Qusef et al. 2011

[AMH16] Arshia et al. 2016

[MM01] Marcus and Maletic 2001 [BT12] Badri and Toure 2012

[BGBG16] Balogh et al. 2016

[CKV19] Csuvik, Kicsi, and Vidács 2019

[GGR15] Ghafari, Ghezzi, and Rubinov 2015

Titel der Arbeit | Dein Name

(23)

Informationsauswertung: Konfidenzwerte

(24)

26 09.12.2019

Teilverfahren 0.25

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

(25)

Teilverfahren 0.40

(26)

28 09.12.2019

Teilverfahren 0.60

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

(27)

Informationsauswertung: Paketbezeichner

Testklasse im selben Paket wie getestete Klasse Javakonvention

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(28)

30 09.12.2019

Informationsauswertung: Importanweisungen

Geladenen Klassen

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(29)

Informationsauswertung: aufgerufene Methoden

Genutzten Methoden

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

(30)

32 09.12.2019

Informationsauswertung: Auf/Abbaumethoden

Erkennung von semantisch zusammenhängenden Quelltextabschnitten anhand von Komponententests | Martin Wittlinger

Transformation

des Quelltextes Informationsauswertung Berechnung des

Ergebnisses

Methodenname

Zuweisungen

Methodenaufrufe

Referenzen

ÄHNLICHE DOKUMENTE

In einem Ausblick schließlich wird nach den Konsequenzen für die Praxis in Kirche und Diakonie sowie für die Theologie gefragt, die aus der Beschäftigung mit dem Thema

Der Bericht 'Faith in the City', den eine vom Erzbischof von Canterbury eingesetzte Kommission erarbeitet hat und der 1985 fertiggestellt wurde, hat einen breit gestützten Prozeß

In meiner Arbeit will ich aber auch dem Leser vor Augen führen, daß es aus heutiger Sicht, die ja doch stark durch die Assoziation "Drittes Reich" gleich

Diese im Gesamtablauf der frühen Institutsgeschichte nur Episoden- charakter gewinnenden Überlegungen waren gleichwohl für Göhring un- mittelbarer Anlaß, mit einer ganzen

G ROWTH VARIABILITY OF THE G REENLAND SMOOTHCOCKLE S ERRIPES GROENLANDICUS AFFECTED BY GLACIER INDUCED CHANGES IN THE K ONGSFJORDEN E COSYSTEM..

Dank Ihres Unterrichts liebe ich nach wie vor Kopfrechnen, lese immer wieder Artikel und Berichte über Rechenwege und alternative Rechengänge in anderen Kulturen und liebe das

Beim Menschen könnte dadurch die Größenausdehnung des Infarktes zu einem sehr frühen Zeitpunkt prognostisch richtig eingeschätzt und so bei ausgewählten Patienten frühzeitig

Téma diplomové práce Martiny Rybové je vzhledem k zaměření studia německ ého jazyka a literatury na ÚGS FF UK relevantní, nadto i záslužné, protože mu z hlediska německo