Testing, Verifying, and Generating Software Patches Using Dynamic Symbolic Execution
使用动态符号执行测试、验证和生成软件补丁
基本信息
- 批准号:EP/J00636X/1
- 负责人:
- 金额:$ 36.59万
- 依托单位:
- 依托单位国家:英国
- 项目类别:Research Grant
- 财政年份:2012
- 资助国家:英国
- 起止时间:2012 至 无数据
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
A large fraction of the costs of developing and maintaining software is associated with detecting and fixing software errors. As a result, the last decade has seen a sustained research effort directed toward designing and developing techniques for automatically detecting software errors, with some of these techniques making their way into commercial and open-source tools. However, detecting an error is only the first step toward fixing it. In fact, many known errors remain unpatched due to the high cost required to diagnose and repair them, combined with the fear that patches are more likely to introduce failures compared to other types of code changes.The goal of this research project is to address both of these problems, by devising novel techniques based on dynamic symbolic execution for:(1) automatically testing and verifying the correctness of software patches, and(2) (semi-)automatically generating candidate patches for software bugs.The strength of dynamic symbolic execution lies in its ability to precisely model the behaviour of program paths using mathematical constraints. However, the cost associated with this level of precision is poor scalability. The number of paths in a program is usually exponential in the number of branches, which makes it difficult to scale the analysis to very large programs. However, by focusing the analysis on the incremental changes introduced by program patches, we hope to significantly reduce the cost of symbolic execution and significantly increase its applicability in practice. Furthermore, the ability to check software patches opens up the possibility of performing patch generation in an automatic or semi-automatic fashion. In particular, starting from the mathematical constraints gathered from a buggy execution path -- and with the potential addition of a manually-written patch template -- we plan to design techniques for generating a set of candidate patches resembling the ones that would be generated manually by developers.
开发和维护软件的大部分成本与检测和修复软件错误有关。因此,在过去的十年中,人们一直在努力设计和开发自动检测软件错误的技术,其中一些技术已经进入商业和开源工具。然而,检测错误只是修复错误的第一步。事实上,许多已知的错误仍然没有修补,因为诊断和修复它们所需的成本很高,加上担心与其他类型的代码更改相比,补丁更有可能引入故障。本研究项目的目标是通过设计基于动态符号执行的新技术来解决这两个问题:(1)自动测试和验证软件补丁的正确性,以及(2)(半)自动地生成软件错误的候选补丁。动态符号执行的优势在于它能够使用数学约束精确地建模程序路径的行为。然而,与这种精度水平相关联的成本是较差的可扩展性。程序中的路径数通常是分支数的指数,这使得很难将分析扩展到非常大的程序。然而,通过集中分析程序补丁引入的增量变化,我们希望显着降低符号执行的成本,并显着增加其在实践中的适用性。此外,检查软件补丁的能力开启了以自动或半自动方式执行补丁生成的可能性。特别是,从一个错误的执行路径收集的数学约束开始-并有可能添加一个手动编写的补丁模板-我们计划设计技术来生成一组候选补丁类似于那些将由开发人员手动生成。
项目成果
期刊论文数量(7)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
Covrig: a framework for the analysis of code, test, and coverage evolution in real software
Covrig:用于分析实际软件中的代码、测试和覆盖率演变的框架
- DOI:10.1145/2610384.2610419
- 发表时间:2014
- 期刊:
- 影响因子:0
- 作者:Marinescu P
- 通讯作者:Marinescu P
Shadow Symbolic Execution for Testing Software Patches
用于测试软件补丁的影子符号执行
- DOI:10.1145/3208952
- 发表时间:2018
- 期刊:
- 影响因子:4.4
- 作者:Kuchta T
- 通讯作者:Kuchta T
Shadow symbolic execution for better testing of evolving software
影子符号执行可以更好地测试不断发展的软件
- DOI:10.1145/2591062.2591104
- 发表时间:2014
- 期刊:
- 影响因子:0
- 作者:Cadar C
- 通讯作者:Cadar C
make test-zesti: A symbolic execution solution for improving regression testing
- DOI:10.1109/icse.2012.6227146
- 发表时间:2012-06
- 期刊:
- 影响因子:0
- 作者:P. Marinescu;Cristian Cadar
- 通讯作者:P. Marinescu;Cristian Cadar
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Cristian Cadar其他文献
Proceedings of the 39th International Conference on Software Engineering: New Ideas and Emerging Results Track
第 39 届国际软件工程会议论文集:新思想和新成果轨道
- DOI:
- 发表时间:
2017 - 期刊:
- 影响因子:0
- 作者:
Cristian Cadar;Lin Tan - 通讯作者:
Lin Tan
A Systematic Impact Study for Fuzzer-Found Compiler Bugs Michaël Marcozzi
针对模糊器发现的编译器错误的系统影响研究 Michaël Marcozzi
- DOI:
- 发表时间:
2019 - 期刊:
- 影响因子:0
- 作者:
M. Marcozzi;Qiyi Tang;Alastair F. Donaldson;Cristian Cadar - 通讯作者:
Cristian Cadar
Shadow of a Doubt: Testing for Divergences between Software Versions
怀疑的阴影:测试软件版本之间的差异
- DOI:
- 发表时间:
2016 - 期刊:
- 影响因子:0
- 作者:
H. Palikareva;Tomasz Kuchta;Cristian Cadar - 通讯作者:
Cristian Cadar
Closer to the Edge: Testing Compilers More Thoroughly by Being Less Conservative About Undefined Behaviour
更接近边缘:通过对未定义行为不那么保守来更彻底地测试编译器
- DOI:
- 发表时间:
2020 - 期刊:
- 影响因子:0
- 作者:
Karine Even;Cristian Cadar;Alastair F. Donaldson - 通讯作者:
Alastair F. Donaldson
Docovery: toward generic automatic document recovery
Docovery:走向通用自动文档恢复
- DOI:
10.1145/2642937.2643004 - 发表时间:
2014 - 期刊:
- 影响因子:0
- 作者:
Tomasz Kuchta;Cristian Cadar;M. Castro;Manuel Costa - 通讯作者:
Manuel Costa
Cristian Cadar的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Cristian Cadar', 18)}}的其他基金
Automated Patch Impact Analysis (PATCH)
自动补丁影响分析 (PATCH)
- 批准号:
EP/X040836/1 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Research Grant
Automatically Detecting and Surviving Exploitable Compiler Bugs
自动检测并避免可利用的编译器错误
- 批准号:
EP/R011605/1 - 财政年份:2018
- 资助金额:
$ 36.59万 - 项目类别:
Research Grant
Improving Symbolic Execution via Targeted Program Transformations
通过有针对性的程序转换改进符号执行
- 批准号:
EP/N007166/1 - 财政年份:2016
- 资助金额:
$ 36.59万 - 项目类别:
Research Grant
Multi-version Execution Techniques for Increasing the Reliability and Security of Evolving Software
用于提高不断发展的软件的可靠性和安全性的多版本执行技术
- 批准号:
EP/L002795/1 - 财政年份:2014
- 资助金额:
$ 36.59万 - 项目类别:
Fellowship
相似海外基金
CAREER: Verifying Security and Privacy of Distributed Applications
职业:验证分布式应用程序的安全性和隐私
- 批准号:
2338317 - 财政年份:2024
- 资助金额:
$ 36.59万 - 项目类别:
Continuing Grant
CRII: SHF: Theoretical Foundations of Verifying Function Values and Reducing Annotation Overhead in Automatic Deductive Verification
CRII:SHF:自动演绎验证中验证函数值和减少注释开销的理论基础
- 批准号:
2348334 - 财政年份:2024
- 资助金额:
$ 36.59万 - 项目类别:
Standard Grant
CarbonCultivator: Identifying and verifying carbon sequestration for the agriculture sector
CarbonCultivator:识别和验证农业部门的碳封存
- 批准号:
10077616 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Collaborative R&D
Research on planning methods for sustainable infrastructure formation in rural areas by verifying policies for endogenous regional development
通过验证区域内生发展政策研究农村地区可持续基础设施形成的规划方法
- 批准号:
23K04166 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Grant-in-Aid for Scientific Research (C)
Collaborative Research: SHF: Medium: Verifying Deep Neural Networks with Spintronic Probabilistic Computers
合作研究:SHF:中:使用自旋电子概率计算机验证深度神经网络
- 批准号:
2311295 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Continuing Grant
Development of a comprehensive evaluation method for muscle properties useful for verifying the effects of nutrition and exercise interventions
开发肌肉特性综合评估方法,有助于验证营养和运动干预的效果
- 批准号:
23K16784 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Grant-in-Aid for Early-Career Scientists
Verifying AI systems by extracting automata via learning
通过学习提取自动机来验证人工智能系统
- 批准号:
2791125 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Studentship
A synthetic data and generative A.I approach to verifying and validating A.I
用于验证和验证人工智能的合成数据和生成人工智能方法
- 批准号:
10065801 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Collaborative R&D
Verifying the function and effectiveness of personal coaching for athletes
验证运动员私人教练的功能和有效性
- 批准号:
23K10696 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Grant-in-Aid for Scientific Research (C)
Collaborative Research: SHF: Medium: Verifying Deep Neural Networks with Spintronic Probabilistic Computers
合作研究:SHF:中:使用自旋电子概率计算机验证深度神经网络
- 批准号:
2311296 - 财政年份:2023
- 资助金额:
$ 36.59万 - 项目类别:
Continuing Grant














{{item.name}}会员




