Emma (Software)
# Emma (Software)

Emma (Eigenschreibweise: EMMA) ist ein quelloffenes Werkzeug zur Messung der Testabdeckung in Java-Programmen. Dabei wird während der Ausführung einer Applikation gemessen, durch welche Klassen, Methoden, Blöcke und Zeilen Code die Abarbeitung lief.

Emma hieß ursprünglich „YACT“ (Yet Another Coverage Tool), nachdem dieser Name aber bereits bei Sourceforge vergeben war, benannte Vlad Roubtsov das Tool in „Emma“, nach dem Namen seiner Frau, um.

Emma wird wie die meisten Werkzeuge zur Messung der Testabdeckung vor allem für die Messung der Abdeckung durch Modultests herangezogen. Das Ergebnis lässt auf die Güte dieser Modultests schließen und somit auf die technische Qualität der Software. Dabei laufen die Tests laut eigenen Angaben um nur 5–20 % langsamer als ohne die Verwendung von Emma.

Im Gegensatz zu vergleichbaren Werkzeugen erlaubt Emma auch die Messung der Testabdeckung ohne vorhergehende Instrumentierung des Codes. Dies wird durch einen speziellen Classloader umgesetzt. Damit ermöglicht Emma die Messung von bereits in Produktion befindlicher Software, um beispielsweise toten Code oder nicht benötigte Programmteile zu erkennen.

Verschiedene Plugins für Entwicklungsumgebungen und Qualitätsicherungswerkzeuge wie beispielsweise das NetBeans-Modultest-Code-Coverage-Plugin oder SONAR basieren auf Emma. Allein von der SourceForge-Seite wurde Emma mehr als 130.000 Mal heruntergeladen. Es existieren Emma-Plugins für Apache Ant, Apache Maven und Eclipse, welche den Download und die Verwendung von Emma im Zuge des Buildprozesses vereinfachen.

