Conference Talk
Vortrag Entwicklertag Frankfurt 2019: MuDetect: Nie mehr eine API falsch verwenden?
Vortrag Entwicklertag Frankfurt 2019: MuDetect: Nie mehr eine API falsch verwenden?
 

Since this post accompanies a talk in German, it is written in German, too.

Koordinaten

  • Sprecher: Sven Amann
  • Konferenz: Entwicklertag Frankfurt
  • Datum: Donnerstag, 21. Februar 2019, 14:15 - 15:00 Uhr
  • Ort: Goethe-Universität - Campus Westend, Casino Gebäude, Seminarraum 1.812

 

Zusammenfassung

In der heutigen Softwareentwicklung ist der Einsatz externer Bibliotheken kaum mehr wegzudenken. Leider sind die Schnittstellen (APIs) dieser Bibliotheken nicht immer intuitiv und ausreichend dokumentiert. Daher kommt es immer wieder zu Fehlern, weil Entwickler eine API anders verwendet haben als es der API-Entwickler vorgesehen hat. Solche Fehler werden auch »API Misuses« genannt. Ein klassisches Beispiel für einen API Misuse ist, wenn ein weiteres Element aus einem Iterator abgerufen wird ohne vorher zu überprüfen, dass ein weiteres Element existiert. Eine Studie hat gezeigt, dass API Misuses sowohl während der Entwicklung als auch in Releases immer wieder Probleme bereiten und in 7 von 10 Fällen Programmabstürze verursachen.

Leider ist es nicht generell möglich API Misuse durch das Design von APIs auszuschließen, denn statische Typsysteme, wie das von Java, sind nicht mächtig genug um API Misuse allgemein zu verhindern. Und auch statische Checker, wie FindBugs, finden nur wenige API Misuses, da oft keine entsprechenden Checks vorhanden sind. Wir brauchen also andere Ansätze um dem Problem zu begegnen.

In den letzten fünf Jahren habe ich an der TU Darmstadt automatisierte Verfahren zur Identifikation von API Misuse (API-Misuse Detektoren) erforscht und entwickelt. Solche Detektoren versuchen die korrekte Verwendung von APIs mithilfe maschineller Lernverfahren selbstständig zu erlernen und anschließend API Misuses zu erkennen. Mit ihrer Hilfe konnte ich erfolgreich API Misuses selbst in gut gepflegten Projekten wie dem Google Closure Compiler und TestNG finden.

In meinem Vortrag möchte ich über meine Erfahrungen, die Stärken und die Grenzen von API-Misuse Detektoren berichten. Ich werde diskutieren inwiefern maschinelles Lernen Entwickler sinnvoll bei der Qualitätssicherung unterstützen kann und ob Entwickler in Zukunft von solchen Ansätzen ersetzt werden können.

Folien

Problem solving

Invited Talks

Your location, our expertise

We are happy to come visit you in your office for an internal conference or a workshop. Our list of topics includes quality analyses, quality control, but also test control or introducing peer reviews. You are also welcome to pick a topic of your choice

60-90 minutes talk
About a software quality topic
In your office or remote
Our travel expenses only
Date by arrangement