English
Related papers

Related papers: Divide, Conquer and Verify: Improving Symbolic Exe…

200 papers

Formal verification techniques are widely used for detecting design flaws in software systems. Formal verification can be done by transforming an already implemented source code to a formal model and attempting to prove certain properties…

Software Engineering · Computer Science 2017-08-28 Gyula Sallai , Ákos Hajdu , Tamás Tóth , Zoltán Micskei

Software testing is one of the most popular validation techniques in the software industry. Surprisingly, we can only find a few approaches to testing in the context of logic programming. In this paper, we introduce a systematic approach…

Programming Languages · Computer Science 2020-02-19 Fred Mesnard , Étienne Payet , Germán Vidal

Software contracts allow programmers to state rich program properties using the full expressive power of an object language. However, since they are enforced at runtime, monitoring contracts imposes significant overhead and delays error…

Programming Languages · Computer Science 2017-11-13 Phuc C. Nguyen , Thomas Gilray , Sam Tobin-Hochstadt , David Van Horn

Symbolic execution detects vulnerabilities with precision, but applying it to large codebases requires harnesses that set up symbolic state, model dependencies, and specify assertions. Writing these harnesses has traditionally been a manual…

Cryptography and Security · Computer Science 2026-04-09 Md Shafiuzzaman , Achintya Desai , Wenbo Guo , Tevfik Bultan

We present a technique to automatically generate search heuristics for dynamic symbolic execution. A key challenge in dynamic symbolic execution is how to effectively explore the program's execution paths to achieve high code coverage in a…

Software Engineering · Computer Science 2019-07-24 Sooyoung Cha , Seongjoon Hong , Jingyoung Kim , Junhee Lee , Hakjoo Oh

Hybrid systems exhibit both continuous and discrete behavior. Analyzing hybrid systems is known to be hard. Inspired by the idea of concolic testing (of programs), we investigate whether we can combine random sampling and symbolic execution…

Software Engineering · Computer Science 2016-09-01 Pingfan Kong , Yi Li , Xiaohong Chen , Jun Sun , Meng Sun , Jingyi Wang

Directed fuzzing is a critical technique in cybersecurity, targeting specific sections of a program. This approach is essential in various security-related domains such as crash reproduction, patch testing, and vulnerability detection.…

Cryptography and Security · Computer Science 2025-05-28 Jia Li , Jiacheng Shen , Yuxin Su , Michael R. Lyu

Foundation models, such as Large language Models (LLMs), have attracted significant amount of interest due to their large number of applications. However, when handling tasks involving repetitive sub-tasks and/or deceptive contents, such as…

Artificial Intelligence · Computer Science 2024-07-04 Yizhou Zhang , Lun Du , Defu Cao , Qiang Fu , Yan Liu

Symbolic execution is a powerful systematic software analysis technique, but suffers from the high cost of constraint solving, which is the key supporting technology that affects the effectiveness of symbolic execution. Techniques like…

Software Engineering · Computer Science 2020-03-19 Junye Wen , Mujahid Khan , Meiru Che , Yan Yan , Guowei Yang

This paper introduces cozy, a tool for analyzing and visualizing differences between two versions of a software binary. The primary use case for cozy is validating "micropatches": small binary or assembly-level patches inserted into…

Software Engineering · Computer Science 2025-09-04 Caleb Helbling , Graham Leach-Krouse , Sam Lasser , Greg Sullivan

This work addresses test output prediction, a key challenge in test case generation. To improve the reliability of predicted outputs by LLMs, prior approaches generate code first to ground predictions. One grounding strategy is direct…

Software Engineering · Computer Science 2026-04-14 Hojae Han , Jaejin Kim , Seung-won Hwang , Yu Jin Kim , Moontae Lee

Automatically generating formal specifications including loop invariants, preconditions, and postconditions for legacy code is critical for program understanding, reuse and verification. However, the inherent complexity of control and data…

Software Engineering · Computer Science 2026-01-21 Fanpeng Yang , Xu Ma , Shuling Wang , Xiong Xu , Qinxiang Cao , Naijun Zhan , Xiaofeng Li , Bin Gu

Estimating worst-case resource consumption is a critical task in software development. The worst-case analysis (WCA) problem is an optimization-based abstraction of this task. Fuzzing and symbolic execution are widely used techniques for…

Software Engineering · Computer Science 2025-07-15 Zimu Chen , Di Wang

Firmware serves as the critical interface between hardware and software in computing systems, making any bugs or vulnerabilities particularly dangerous as they can cause catastrophic system failures. While fuzzing is a promising approach…

Cryptography and Security · Computer Science 2026-02-03 Dakshina Tharindu , Aruna Jayasena , Prabhat Mishra

Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as…

Programming Languages · Computer Science 2017-08-18 Dimitri Racordon , Didier Buchs

Program verification is a resource-hungry task. This paper looks at the problem of parallelizing SMT-based automated program verification, specifically bounded model-checking, so that it can be distributed and executed on a cluster of…

Programming Languages · Computer Science 2020-05-19 Prantik Chatterjee , Subhajit Roy , Bui Phi Diep , Akash Lal

Code LLMs still struggle with code execution reasoning, especially in smaller models. Existing methods rely on supervised fine-tuning (SFT) with teacher-generated explanations, primarily in two forms: (1) input-output (I/O) prediction…

Software Engineering · Computer Science 2026-03-13 Lingxiao Tang , He Ye , Zhaoyang Chu , Muyang Ye , Zhongxin Liu , Xiaoxue Ren , Lingfeng Bao

In this extended abstract, we discuss the opportunity to formally verify that inference systems for probabilistic programming guarantee good performance. In particular, we focus on hybrid inference systems that combine exact and approximate…

Programming Languages · Computer Science 2023-07-17 Eric Atkinson , Ellie Y. Cheng , Guillaume Baudart , Louis Mandel , Michael Carbin

This article discusses a new technique to automatically generate test cases for object oriented programs. At the state of the art, the problem of generating adequate sets of complete test cases has not been satisfactorily solved yet. There…

Software Engineering · Computer Science 2020-05-20 Matteo Modonato

Test or prove? These two approaches to software verification have long been presented as opposites. One is dynamic, the other static: a test executes the program, a proof only analyzes the program text. A different perspective is emerging,…

Software Engineering · Computer Science 2026-02-10 Li Huang , Bertrand Meyer , Manuel Oriol
‹ Prev 1 4 5 6 7 8 10 Next ›