Semantics of Software Systems

The project aims to automate software testing, debugging, and monitoring by developing bots that learn system behavior and generate oracles, enhancing developer productivity and software reliability.

Subsidie
€ 2.500.000
2023

Projectdetails

Introduction

What if we had software bots that tirelessly test, debug, and monitor our software systems?

IT workers are expensive and scarce. So why can't we further automate boring, repetitive activities such as testing and debugging? The problem is that we lack computer-readable specifications (so-called oracles) for what the system should do or not do. For decades, this oracle problem has been a roadblock to automated test generation, trusted software repairs, and accurate monitoring of software.

Unified Approach

Building on groundbreaking research to infer input languages of systems, S3 introduces a unified approach to learning oracles automatically. It takes a given software system; infers and decodes its inputs and outputs; and runs experiments to extract models of how the system behaves, capturing its semantics by predicting output features for given input features.

System Invariants

These models, named system invariants, allow for fully automating critical software development activities:

1. Testing

System invariants encode languages for automatically generating test inputs and provide oracles for checking test results:

  • "In the TLS server, the <payload> in the <heartbeat-response> must be the same as in the <heartbeat-request>."

2. Debugging

System invariants allow narrowing down causes of software behavior:

  • "The X.509 public key certificate is not recognized if <subject-name> contains a zero byte."

Generated tests and oracles ensure reliable automated repair.

3. Monitoring

System invariants enable detecting abnormal behavior at runtime:

  • "In 'log4j', logging a <user-agent> containing '""${jndi:<url>}""' opens <url>."

Problematic queries can be isolated and investigated until the problem is fixed.

Future Vision

In the future, testing, debugging, and monitoring would thus be taken over by software bots who would autonomously explore software behavior, report issues, and suggest actions to their human co-workers, boosting developer productivity and software reliability.

Financiële details & Tijdlijn

Financiële details

Subsidiebedrag€ 2.500.000
Totale projectbegroting€ 2.500.000

Tijdlijn

Startdatum1-9-2023
Einddatum31-8-2028
Subsidiejaar2023

Partners & Locaties

Projectpartners

  • CISPA - HELMHOLTZ-ZENTRUM FUR INFORMATIONSSICHERHEIT GGMBHpenvoerder

Land(en)

Germany

Vergelijkbare projecten binnen European Research Council

ERC Starting...

Testing Program Analyzers Ad Absurdum

MirandaTesting aims to develop a systematic methodology for testing program analyzers to detect critical bugs, enhancing software reliability in safety-critical applications.

€ 1.499.991
ERC Proof of...

ELVER-CHECK: Well-grounded Lightweight Assurance for Critical Systems Software

ELVER-CHECK aims to enhance the security assurance of critical systems software by developing lightweight executable checkers based on mathematical models of hardware features, targeting hypervisors like pKVM.

€ 150.000
ERC Consolid...

Intelligence-Oriented Verification&Controller Synthesis

InOVation&CS aims to enhance the scalability and reliability of controller synthesis through AI/ML-driven verification methods, focusing on explainability and structured problem-solving.

€ 1.995.000
ERC Proof of...

LEARN: Learning Efficient Automated Reasoning on the Net

LEARN automates reasoning and proof strategies for software certification, providing a web-based framework to enhance safety and security in complex computer systems, reducing costs from software errors.

€ 150.000
ERC Advanced...

Self-Optimizing Static Program Analysis

SOSA aims to revolutionize static program analysis by creating self-adaptive analyses that optimize performance and precision, enhancing software security and developer efficiency.

€ 2.500.000

Vergelijkbare projecten uit andere regelingen

Mkb-innovati...

De ontwikkeling van een unieke C++ software integration bot

Ontwikkeling van een software-integratiebot voor autonoom genereren en testen van de snelste C++ programma's en validatie van de bijbehorende library code in stream processing systemen.

€ 187.500
Mkb-innovati...

Integrated Safety for Deeply Embedded Systems Software (ISAFE)

Het ISAFE-project ontwikkelt een geïntegreerde aanpak voor de kwalificatie van softwaretools in veiligheid kritische systemen, gericht op het voldoen aan veiligheidsstandaarden en het verbeteren van softwareontwikkeling.

€ 160.200
Mkb-innovati...

Duurzamer, veiliger en sneller bouwen met AI

Semmtech en StarTXT ontwikkelen een AI-platform dat bouwnormen en eisen digitaliseert en doorzoekbaar maakt, om efficiëntie te verhogen en conflicten in het bouwproces te voorkomen.

€ 199.710
Mkb-innovati...

Academic Language Checker (ALC)

Het project onderzoekt de haalbaarheid van een slimme Academic Language Checker om academische schrijfproblemen van studenten met taalbeheersingsproblemen te identificeren en te verhelpen.

€ 20.000
Mkb-innovati...

KI aangedreven no code testing automation

Yurik BV ontwikkelt een no-code testing automation platform dat softwarebedrijven helpt om met AI de testprocessen te automatiseren en tot 20% tijd te besparen.

€ 20.000