E-mail senden E-Mail Adresse kopieren

S3 – Semantics of Software Systems

In diesem vom European Research Council mit einem Advanced Grant geförderten Projekt entwickelt CISPA-Faculty Prof. Dr. Andreas Zeller zusammen mit seinem Team Software-Bots, die Softwaresysteme automatisch  testen, debuggen und überwachen - alle Arten von Systeme, überall und jederzeit.

© ERC

©ERC

WORUM GEHT ES BEI S3?

Was, wenn wir Software-Bots hätten, die unermüdlich unsere Softwaresysteme testen, debuggen und überwachen? IT-Mitarbeiter sind teuer und rar. Warum also können wir langweilige, sich wiederholende Tätigkeiten wie Testen und Debuggen nicht weiter automatisieren? Das Problem ist, dass uns computerlesbare Spezifikationen (so genannte Oracles) dafür fehlen, was das System tun oder nicht tun sollte. Dieses Oracle-Problem ist seit Jahrzehnten ein Hindernis für die automatische Testgenerierung, die zuverlässige Reparatur von Software und die genaue Überwachung von Software.

Aufbauend auf bahnbrechenden Forschungsarbeiten zur Ableitung von Eingabesprachen von Systemen führt S3 einen einheitlichen Ansatz zum automatischen Lernen von Oracles ein. Es nimmt ein gegebenes Softwaresystem, schlussfolgert und dekodiert seine Eingaben und Ausgaben und führt Experimente durch, um Modelle zu extrahieren, wie sich das System verhält, indem es seine Semantik durch Vorhersage von Ausgabemerkmalen für die gegebenen Eingabemerkmale erfasst. Diese Modelle, die so genannten Systeminvarianten, ermöglichen die vollständige Automatisierung wichtiger Softwareentwicklungsaktivitäten:


Testen


Systeminvarianten kodieren Sprachen zur automatischen Generierung von Testeingaben und bieten Oracles zur Überprüfung von Testergebnissen: “In the TLS server, the <payload> in the <heartbeat-response> must be the same as in the <heartbeat-request>.”


Fehlersuche und -behebung 


Systeminvarianten ermöglichen die Eingrenzung der Ursachen für Softwareverhalten (“The X.509 public key certificate is not recognized if <subject-name> contains a zero byte”). Generierte Tests und Oracles gewährleisten eine zuverlässige automatische Reparatur.


Überwachung


Systeminvarianten ermöglichen es, abnormales Verhalten zur Laufzeit zu erkennen (“In log4j, logging a <user-agent> containing "${jndi:<url>}" opens <url>”). Problematische Abfragen können isoliert und untersucht werden, bis das Problem behoben ist.

Künftig würden Tests, Fehlersuche und Überwachung von Software-Bots übernommen, die das Softwareverhalten autonom untersuchen, Probleme melden und ihren menschlichen Kolleg:innen Maßnahmen vorschlagen. Damit erhöhen sie die Produktivität der Entwickler:innen und die Zuverlässigkeit der Software.

© ERC

©ERC

WORUM GEHT ES BEI S3?

Was, wenn wir Software-Bots hätten, die unermüdlich unsere Softwaresysteme testen, debuggen und überwachen? IT-Mitarbeiter sind teuer und rar. Warum also können wir langweilige, sich wiederholende Tätigkeiten wie Testen und Debuggen nicht weiter automatisieren? Das Problem ist, dass uns computerlesbare Spezifikationen (so genannte Oracles) dafür fehlen, was das System tun oder nicht tun sollte. Dieses Oracle-Problem ist seit Jahrzehnten ein Hindernis für die automatische Testgenerierung, die zuverlässige Reparatur von Software und die genaue Überwachung von Software.

Aufbauend auf bahnbrechenden Forschungsarbeiten zur Ableitung von Eingabesprachen von Systemen führt S3 einen einheitlichen Ansatz zum automatischen Lernen von Oracles ein. Es nimmt ein gegebenes Softwaresystem, schlussfolgert und dekodiert seine Eingaben und Ausgaben und führt Experimente durch, um Modelle zu extrahieren, wie sich das System verhält, indem es seine Semantik durch Vorhersage von Ausgabemerkmalen für die gegebenen Eingabemerkmale erfasst. Diese Modelle, die so genannten Systeminvarianten, ermöglichen die vollständige Automatisierung wichtiger Softwareentwicklungsaktivitäten:


Testen


Systeminvarianten kodieren Sprachen zur automatischen Generierung von Testeingaben und bieten Oracles zur Überprüfung von Testergebnissen: “In the TLS server, the <payload> in the <heartbeat-response> must be the same as in the <heartbeat-request>.”


Fehlersuche und -behebung 


Systeminvarianten ermöglichen die Eingrenzung der Ursachen für Softwareverhalten (“The X.509 public key certificate is not recognized if <subject-name> contains a zero byte”). Generierte Tests und Oracles gewährleisten eine zuverlässige automatische Reparatur.


Überwachung


Systeminvarianten ermöglichen es, abnormales Verhalten zur Laufzeit zu erkennen (“In log4j, logging a <user-agent> containing "${jndi:<url>}" opens <url>”). Problematische Abfragen können isoliert und untersucht werden, bis das Problem behoben ist.

Künftig würden Tests, Fehlersuche und Überwachung von Software-Bots übernommen, die das Softwareverhalten autonom untersuchen, Probleme melden und ihren menschlichen Kolleg:innen Maßnahmen vorschlagen. Damit erhöhen sie die Produktivität der Entwickler:innen und die Zuverlässigkeit der Software.

VIDEO

NEWS

Pressemitteilung

CISPA-Forscher Andreas Zeller erneut mit ERC Grant ausgezeichnet

Jede Software der Welt automatisch testbar zu machen, das ist die Vision von CISPA-Faculty Prof. Dr. Andreas Zeller. Der Europäische Forschungsrat (kurz ERC) schenkt dem Informatiker sein vollstes Vertrauen und fördert Zellers Projekt „S3 - Semantics of Software Systems“ in den kommenden fünf Jahren mit einem ERC Advanced Grant in Höhe von 2,5 Millionen Euro.

PROPOSAL

Mehr zum Ziel, den Herausforderungen und der Vorgehensweise im Projekt S3 verrät der Forschunsgantrag, den Andreas Zeller beim ERC eingereicht hat. Hier lässt sich das Dokument einsehen und kann als Inspiration für weitere Forschungsvorhaben dienen.

Mehr zum Ziel, den Herausforderungen und der Vorgehensweise im Projekt S3 verrät der Forschunsgantrag, den Andreas Zeller beim ERC eingereicht hat. Hier lässt sich das Dokument einsehen und kann als Inspiration für weitere Forschungsvorhaben dienen.

PODCAST

CISPA-Faculty Prof. Dr. Andreas Zeller hat es wieder geschafft - er erhält einen zweiten ERC Advanced Grant in Höhe von 2,5 Millionen Euro! In dieser Folge erzählt er uns von seiner Vision, alle Software der Welt automatisch testbar zu machen, wie er es geschafft hat, den Europäischen Forschungsrat davon zu überzeugen, sein neues Projekt S3 zu finanzieren, und wie sein Softwaretest-Tool der gesamten Gesellschaft zugutekommen wird.

Arbeite mit uns!

Wir suchen:
 
Postdocs, die ihr unabhängiges Forschungsprogramm mit S3-Techniken kombinieren möchten, und  

Doktorand:innen, die an einigen der im Antrag beschriebenen S3-Themen arbeiten möchten. 
 
Das CISPA und Andreas' Gruppe bieten ein florierendes Ökosystem, das sich ganz der bahnbrechenden Forschung widmet. Kontaktiere Andreas Zeller oder bewirb dich direkt hier: