English
Related papers

Related papers: A promise checked is a promise kept: Inspection Te…

200 papers

Reading computer program code and documentation written by others is, we are told, one of the best ways to learn the art of writing intelligible and maintainable code and documentation. The software resurrection exercise, introduced in this…

Software Engineering · Computer Science 2022-09-13 Abhishek Dutta

Functors with an instance of the Traversable type class can be thought of as data structures which permit a traversal of their elements. This has been made precise by the correspondence between traversable functors and finitary containers…

Logic in Computer Science · Computer Science 2022-07-21 Gershom Bazerman

Property-based testing is a powerful method to validate program correctness. It is, however, not widely use in industry as the barrier of entry can be very high. One of the hindrances is to write the generators that are needed to generate…

Programming Languages · Computer Science 2023-09-13 Triera Gashi , Sophie Adeline Solheim Bosio , Joachim Tilsted Kristensen , Michael Kirkedal Thomsen

Manually ensuring that the implementation of a software system is consistent with the software architecture is a laborious and error-prone task. Thus, a variety of approaches towards automated consistency checking have been developed to…

Software Engineering · Computer Science 2015-10-30 Timo Greifenberg , Klaus Müller , Bernhard Rumpe

Bounded verification has proved useful to detect bugs and to increase confidence in the correctness of a program. In contrast to unbounded verification, reasoning about calls via (bounded) inlining and about loops via (bounded) unrolling…

Logic in Computer Science · Computer Science 2023-03-14 Thibault Dardinier , Gaurav Parthasarathy , Peter Müller

Program build information, such as compilers and libraries used, is vitally important in an auditing and benchmarking framework for HPC systems. We have developed a tool to automatically extract this information using signature-based…

Software Engineering · Computer Science 2013-02-08 Charng-Da Lu

Tool-augmented LLM agents call APIs whose intermediate outputs, such as presigned URLs, session tokens, and OAuth state parameters, are observation contracts: artifacts whose later use is constrained by the external system that produced…

Software Engineering · Computer Science 2026-05-19 Jicheng Wang , Yifeng He , Zili Wang , Hanwen Xing , Arkaprava De , Hao Chen

We address the problem of verifying k-safety properties: properties that refer to k-interacting executions of a program. A prominent way to verify k-safety properties is by self composition. In this approach, the problem of checking…

Programming Languages · Computer Science 2019-05-28 Ron Shemer , Arie Gurfinkel , Sharon Shoham , Yakir Vizel

System development is not a linear, one-shot process. It proceeds through refinements and revisions. To support assurance that the system satisfies its requirements, it is desirable that continuous verification can be performed after each…

Logic in Computer Science · Computer Science 2018-11-28 Claudio Menghi , Alessandro Maria Rizzi , Anna Bernasconi

With the advent of AI-based coding engines, it is possible to convert natural language requirements to executable code in standard programming languages. However, AI-generated code can be unreliable, and the natural language requirements…

Software Engineering · Computer Science 2024-11-06 Martin Mirchev , Andreea Costea , Abhishek Kr Singh , Abhik Roychoudhury

Software security is of utmost importance for most software systems. Developers must systematically select, plan, design, implement, and especially, maintain and evolve security features -- functionalities to mitigate attacks or protect…

Software Engineering · Computer Science 2025-09-30 Kevin Hermann , Sven Peldszus , Jan-Philipp Steghöfer , Thorsten Berger

Verifying whether a procedure is observationally pure is useful in many software engineering scenarios. An observationally pure procedure always returns the same value for the same argument, and thus mimics a mathematical function. The…

Software Engineering · Computer Science 2019-02-15 Himanshu Arora , Raghavan Komondoor , G. Ramalingam

Feature attribution explains neural network outputs by identifying relevant input features. The attribution has to be faithful, meaning that the attributed features must mirror the input features that influence the output. One recent trend…

Machine Learning · Computer Science 2024-02-15 Yang Zhang , Yawei Li , Hannah Brown , Mina Rezaei , Bernd Bischl , Philip Torr , Ashkan Khakzar , Kenji Kawaguchi

As developers of libraries implementing interval arithmetic, we faced the same difficulties when it came to testing our libraries. What must be tested? How can we devise relevant test cases for unit testing? How can we ensure a high (and…

Numerical Analysis · Mathematics 2022-05-25 Nathalie Revol , Luis Benet , Luca Ferranti , Sergei Zhilin

There are two ways to check if a program is correct, namely execute it or review it. While executing a program is the ultimate test for its correctness reviewing the program can occur earlier in its development and find problems if done…

Software Engineering · Computer Science 2024-07-03 Scott Ballentine , Eitan Farchi

In recent years, we observe an increasing amount of software with machine learning components being deployed. This poses the question of quality assurance for such components: how can we validate whether specified requirements are fulfilled…

Software Engineering · Computer Science 2021-05-04 Arnab Sharma , Caglar Demir , Axel-Cyrille Ngonga Ngomo , Heike Wehrheim

The prevalence of software systems has become an integral part of modern-day living. Software usage has increased significantly, leading to its growth in both size and complexity. Consequently, software development is becoming a more…

Software Engineering · Computer Science 2023-06-07 Tiago Dias , Arthur Batista , Eva Maia , Isabel Praça

Recently efficient model-checking tools have been developed to find flaws in security protocols specifications. These flaws can be interpreted as potential attacks scenarios but the feasability of these scenarios need to be confirmed at the…

Cryptography and Security · Computer Science 2013-08-01 Hatem Ghabri , Ghazi Maatoug , Michael Rusinowitch

Injection-based testing while refactoring is a pattern that minimizes the need for manual editing when altering the behaviour of a code base. Neither does it rely on a compilation or a linking process nor does it make assumptions on the…

Software Engineering · Computer Science 2022-03-29 Thomas Mejstrik , Clara Hollomey

We present Assume-Guarantee-Repair (AGR) - a novel framework which verifies that a program satisfies a set of properties and also repairs the program in case the verification fails. We consider communicating programs - these are simple…

Formal Languages and Automata Theory · Computer Science 2022-07-22 Hadar Frenkel , Orna Grumberg , Corina S. Pasareanu , Sarai Sheinvald