Genetic improvement of software: a comprehensive survey
Genetic improvement (GI) uses automated search to find improved versions of existing
software. We present a comprehensive survey of this nascent field of research with a focus …
software. We present a comprehensive survey of this nascent field of research with a focus …
Behavioral interface specification languages
Behavioral interface specification languages provide formal code-level annotations, such as
preconditions, postconditions, invariants, and assertions that allow programmers to express …
preconditions, postconditions, invariants, and assertions that allow programmers to express …
The oracle problem in software testing: A survey
Testing involves examining the behaviour of a system in order to discover potential faults.
Given an input for a system, the challenge of distinguishing the corresponding desired …
Given an input for a system, the challenge of distinguishing the corresponding desired …
Smart contracts vulnerabilities: a call for blockchain software engineering?
Smart Contracts have gained tremendous popularity in the past few years, to the point that
billions of US Dollars are currently exchanged every day through such technology. However …
billions of US Dollars are currently exchanged every day through such technology. However …
A taxonomy of model‐based testing approaches
Model‐based testing (MBT) relies on models of a system under test and/or its environment to
derive test cases for the system. This paper discusses the process of MBT and defines a …
derive test cases for the system. This paper discusses the process of MBT and defines a …
Automated fixing of programs with contracts
In program debugging, finding a failing run is only the first step; what about correcting the
fault? Can we automate the second task as well as the first? The AutoFix-E tool …
fault? Can we automate the second task as well as the first? The AutoFix-E tool …
Inferring extended finite state machine models from software executions
The ability to reverse-engineer models of software behaviour is valuable for a wide range of
software maintenance, validation and verification tasks. Current reverse-engineering …
software maintenance, validation and verification tasks. Current reverse-engineering …
Automatic programming: Large language models and beyond
Automatic programming has seen increasing popularity due to the emergence of tools like
GitHub Copilot which rely on Large Language Models (LLMs). At the same time …
GitHub Copilot which rely on Large Language Models (LLMs). At the same time …
Zaps and their applications
A zap is a two-round, witness-indistinguishable protocol in which the first round, consisting
of a message from the verifier to the prover, can be fixed" once-and-for-all" and applied to …
of a message from the verifier to the prover, can be fixed" once-and-for-all" and applied to …
Model checking agent programming languages
In this paper we describe a verification system for multi-agent programs. This is the first
comprehensive approach to the verification of programs developed using programming …
comprehensive approach to the verification of programs developed using programming …