← Neueste Arbeiten
💻 computer science

TestMiner: Software Testing Analysis for GitHub Repositories

Dieses Paper stellt TestMiner vor, ein Werkzeug, das darauf ausgelegt ist, Software-Testpraktiken über diverse GitHub-Repositories hinweg durch die Bereitstellung von Metriken zu Teststatistiken, -lokalisierung, -evolution und -abhängigkeiten zu analysieren und zu visualisieren, was von Undergraduate-Studierenden hinsichtlich seiner Fähigkeit, die kritische Untersuchung realer Teststrategien zu erleichtern, positiv bewertet wurde.

Ursprüngliche Autoren: Andre Hora, José Miguel Rojas, Romain Robbes

Veröffentlicht 2026-07-15
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Ursprüngliche Autoren: Andre Hora, José Miguel Rojas, Romain Robbes

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie wären gerade in eine riesige, chaotische Bibliothek aus Code namens GitHub gestolpert. Sie ist gefüllt mit Millionen von Büchern (Projekten), aber hier ist der Clou: Einige Bücher verstecken ihre „Sicherheitsprüfungen“ (Tests) in einem geheimen Hinterzimmer, während andere sie direkt auf das Cover kleben. Einige Bibliotheken verwenden eine bestimmte Sprache, um diese Prüfungen zu schreiben, während andere eine völlig andere Sprache nutzen. Wenn Sie verstehen wollten, wie ein bestimmtes Buch verhindert, dass es auseinanderfällt, müssten Sie Stunden damit verbringen, manuell durch jedes Regal zu suchen, winzige Notizen zu lesen und zu versuchen, das Muster zu erraten. Es ist, als würde man versuchen, eine bestimmte Nadel im Heuhaufen zu finden, während man eine Augenbinde und schwere Stiefel trägt.

Hier kommt TestMiner ins Spiel, ein neues Werkzeug, das wie eine magische, hochtechnologische Taschenlampe für diese Code-Bibliotheken fungiert. Anstatt dass Sie selbst durch die Dunkelheit stapfen, zoomt TestMiner heran, scannt das gesamte Projekt und zeichnet Ihnen sofort eine Karte.

Was zeigt diese Karte?
Denken Sie an sie als ein „Gesundheits-Dashboard“ für das Sicherheitsnetz eines Softwareprojekts.

  • Die „Wo“-Karte: Sie zeigt Ihnen genau, wo die Tests sich verstecken. Befinden sie sich in einem speziellen „test“-Ordner oder sind sie direkt in den Hauptcode gemischt? Es ist wie eine Schatzkarte, die jedes „X marks the spot“ hervorhebt, egal ob der Schatz in einer tiefen Höhle vergraben ist oder direkt auf der Veranda liegt.
  • Das „Zeitreise“-Diagramm: Es lässt Sie sehen, wie das Sicherheitsnetz im Laufe der Zeit gewachsen ist. Begann das Projekt mit nur einem winzigen Sicherheitsnetz und hat langsam ein riesiges Netz gewebt? Oder hat es auf einmal hunderte Netze hinzugefügt? Das Tool zeigte zum Beispiel, dass das fastapi-Projekt von fast null Testdateien in seiner ersten Version zu fast 600 in seiner neuesten Version angewachsen ist.
  • Die „Zutaten“-Liste: Sie listet die speziellen Werkzeuge und Helfer auf, die das Projekt verwendet, um seine Tests auszuführen, indem sie diese Informationen aus einem „Software Bill of Materials“ (wie einem Beleg für die Zutaten des Projekts) zieht. Es kann erkennen, ob ein Projekt spezifische Werkzeuge für Rust, Python oder Java verwendet.

Funktioniert das tatsächlich?
Die Autoren haben dieses Tool nicht nur gebaut und gehofft, dass es funktioniert; sie haben es in einem echten Klassenzimmer getestet. Sie gaben dieses Werkzeug 50 Studenten eines Software-Testing-Kurses in die Hand und baten sie, reale Projekte zu untersuchen. Die Studenten klickten nicht nur auf Knöpfe; sie nutzten das Tool, um tiefe Erkenntnisse zu gewinnen, die sie manuell in Stunden gefunden hätten.

Ein Student nutzte TestMiner, um zu sehen, dass ein populäres Projekt namens Streamit die meisten seiner Tests in spezifischen Ordnern aufbewahrt, da es sowohl einen Python-Teil als auch eine schwere Web-Schnittstelle besitzt. Ein anderer Student bemerkte, dass ein Projekt namens Newtonsoft.Json seine Testdateien im Laufe der Zeit von nur 7 auf 200 vergrößert hat, was einen stetigen, linearen Anstieg statt eines plötzlichen Sprungs zeigt. Eine andere Gruppe entdeckte, dass ein Projekt namens thefuck sich stark auf das Testen von Git-Befehlen konzentriert, da diese Befehle für Nutzer notorisch verwirrend sind.

Die Studenten fanden heraus, dass TestMiner ihnen half, Dinge wie „Mocking“ (wo der Code vorgibt, mit dem Internet zu kommunizieren, ohne es tatsächlich zu tun, um Zeit zu sparen), „Fixtures“ (wiederverwendbare Setups für Tests) und sogar wie manche Projekte ihre Tests als lebendige Dokumentation nutzen, zu erkennen. Das Feedback war positiv: Das Tool machte es viel einfacher, zu verstehen, wie reale Software getestet wird, ohne komplexe Software installieren oder ein Labor aufbauen zu müssen.

Was dieses Tool NICHT ist
Es ist wichtig zu wissen, was TestMiner nicht tut. Es ist kein Zauberstab, der schlechten Code repariert oder jeden einzelnen Bug findet. Es erfordert nicht, dass Sie etwas auf Ihrem Computer installieren; es läuft direkt in Ihrem Webbrowser. Es ersetzt auch nicht die Notwendigkeit für Entwickler, tatsächlich Tests zu schreiben; es hilft Ihnen nur dabei, das zu sehen, was bereits vorhanden ist.

Die Autoren weisen vorsorglich darauf hin, dass das Tool auf den öffentlichen Daten von GitHub basiert, die ein Geschwindigkeitslimit haben (etwa 60 Anfragen pro Stunde für kostenlose Nutzer). Wenn Sie dieses Limit erreichen, könnten einige Funktionen pausieren, obwohl Sie das Tempo beschleunigen können, indem Sie einen speziellen „Token“ hinzufügen, der das Limit auf 5.000 Anfragen pro Stunde erhöht. Da es zudem Daten aus dem Web liest, können die Links manchmal nicht perfekt mit dem Code übereinstimmen, wenn sich ein Projekt sehr schnell verändert.

Das Fazit
TestMiner legt nahe, dass wir, indem wir eine unordentliche, manuelle Suche in eine visuelle, sofortige Übersicht verwandeln, Studenten und Entwicklern helfen können, die „Sicherheitskultur“ von Softwareprojekten viel schneller zu verstehen. Es ist kein gelöstes Problem für jedes Testing-Rätsum, aber es ist eine kraftvolle neue Linse, die die unsichtbare Welt des Software-Testings sichtbar, verständlich und sogar ein wenig unterhaltsam macht.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →