一、简介
程序自动修复技术旨在自动修复软件程序中的错误来提高开发者生产力并降低软件维护成本。随着大模型技术的发展,该领域近来涌现出一系列新的研究工作,并受到国内外研究者的广泛关注。
为了支持国内修复技术的发展,我们依托中国软件大会举办第一届软件缺陷自动修复挑战赛。比赛提供来自真实数据的统一验证基准数据集,旨在为研究者提供一个实验、验证和展示其修复算法效果的机会。同时,比赛邀请了工业界和学术界一线人员参与,为参赛者提供了交流机会。比赛鼓励学生设计、实现综合的缺陷修复系统,培养系统设计、分析与应用能力,提升学生技术创新、工程实践与团队协作能力。
二、比赛组织
主办单位:中国计算机学会软件工程专委会、中国计算机学会系统软件专委会、中国计算学会形式化专委会
组委会:王博(北京交通大学)、姜佳君(天津大学)、王尚文(国防科技大学)、张路(北京大学)、刘辉(北京理工大学)
评审委员会:待定,由软件调试领域的学术界和工业界专家组成。
三、赛事安排
比赛过程和时间安排:
1. 报名与赛题发布:2024年5月6日
2. 报名截止日期: 2024年9月1日
3. 作品提交截至日期:2024年9月10日
4. 决赛入围通知日期:2024年10月15日
5. 决赛和颁奖日期:中国软件大会2024期间(2024年11月15-17日)
参赛对象与报名方式:比赛面向国内外程序修复研究人员(学生、教师或其他企事业单位的研究人员),可组队或独立参赛。比赛允许跨校组队,一个参赛队伍人员上限不超过10人,参赛队伍不设指导老师。每个参赛人员可以参加多个队伍,但是需要基于技术路线不同的修复工具。
请参赛队以队伍为单位,在报名截止日前将报名材料发送至赛事报名邮箱yanjiejiang@pku.edu.cn。
参赛费用:比赛不收取任何报名费、参赛费、评审费和服务费等费用。参赛选手在决赛期间及颁奖典礼期间产生的交通、会议、食宿等费自理。
参赛流程与评分规则:在赛题发布后,参赛学生可自行组队。比赛将提供基准测试集。参赛队伍设计并实现修复工具,并适配所提供的基准测试集。作品提交时,参赛队伍应提交设计文档、执行录像、符合格式要求的补丁文件、执行日志、作品源码等内容。基准数据集的使用方式和作品提交方式请见《中国软件大会第一届软件缺陷自动修复挑战赛——技术方案》。比赛评审委员会根据上述提交内容评分。比赛组委会根据分数从高到底排序,选择进入决赛答辩的队伍。
进入决赛的队伍需在中国软件大会现场进行答辩,介绍工具的修复方法及其创新性、修复效果等,报告由比赛评审会现场打分。赛事组织同时会在决赛现场随机抽查每个决赛入围队伍报告的修复结果,并提供额外的未知修复题目给每个决赛队伍现场修复。最终总成绩由:(初赛分数×70% + 决赛现场修复分数×20% + 答辩分数×10% )计算所得。所有决赛队伍根据总成绩排名并颁奖。
五、奖项设置
所有奖项在中国软件大会2024现场发布,在决赛完成后统一颁奖。评奖过程中保持单位回避原则,即评委不为相同单位的参赛队伍评分。奖项包括特等奖(不超过3个参赛队伍)、一等奖和二等奖。
六、知识产权与学术诚信
1. 除另行说明,所有作品知识产权归参赛队所有。作品提交后,赛事组织方有使用权。
2. 参赛队应自觉遵守知识产权有关法规。参赛队未经相关单位许可,不得公开发布或者共享涉及该单位的知识产权作品及软件。如产生不良后果大赛主办方、组会会等均不负任何法律责任。
3. 参赛队应自觉遵守学术诚信。禁止代码及技术抄袭,禁止利用规则或者技术漏洞等不良途径提高排名,一经发现取消所有比赛成绩
七、联系方式
大赛官方邮箱:yanjiejiang@pku.edu.cn
组委会联系方式:王博(wangbo_cs@bjtu.edu.cn),姜佳君(jiangjiajun@tju.edu.cn),王尚文(wangshangwen13@nudt.edu.cn),张路(zhanglu@sei.pku.edu.cn),刘辉(liuhui08@bit.edu.cn)。
一、评价方式的基本说明
比赛要求各参赛队综合运用软件测试、软件分析、软件调试等技术构思并实现一个缺陷自动修复系统,尽可能修复比赛所指定的缺陷。为展示参赛队的技术水平,进入决赛的队伍还需修复现场指定的缺陷,临时调整修复工具。除了本技术方案特别要求、规定和禁止的事项外,各参赛队可以自行决定使用的编程语言、操作系统、工具、自动定位方案等技术细节。
二、比赛基准数据集
比赛使用公开缺陷基准数据集growingBugs,所用版本为v6.1。数据集的仓库地址:https://github.com/liuhuigmail/GrowingBugRepository。该数据集包含1911个真实Java历史缺陷,分别来自250个开源项目。
参赛队可以使用任意的自动定位技术,不得以人工方式提供定位结果。各参赛队在所有缺陷上尝试修复后提交结果。针对每个缺陷,参赛队提交修复工具产生的第一个可行解,不得人工筛选正确补丁以及人工排除过拟合补丁。参赛队应提交所有产生的补丁文件,包括过拟合的修复结果。修复结果将由比赛组委会检查。
参赛队提交标准diff格式的补丁(即补丁包含所在文件和行号信息,文件减号行代表原缺陷代码,加号行代表工具提供的补丁代码)。比赛不以修复速度为评判标准,但是鼓励参赛队提交所用修复时间。
三、初赛评分标准
比赛初赛同时考虑修复召回率(recall)与精确率(precision),以F1分数计分,即:
各个参赛队需要在初赛提交截至之前提交结果,比赛允许多次提交,以最后一次提交结果为准。所有参赛队将按照提交结果按上述公式计算分数。比赛组委会检查提交结果后,根据得分结果从高到低排名,决定决赛入围队伍。
四、决赛评分标准
进入决赛的队伍需要至少派1名队员参加2024年度中国软件大会,并在现场进行决赛。决赛中比赛提供新的缺陷,由决赛队伍在会议现场修复并提交修复结果。决赛队伍需要准备现场答辩,由比赛评委会委员根据修复方法的算法和实现进行评分。现场答辩的评分标准在决赛阶段公布。
比赛总成绩为100分,计分公式为(初赛分数×70% + 决赛现场修复分数×20% + 答辩分数×10% )。
五、其他
如果比赛队伍使用第三方工具或者借鉴他人部分源码,必须在提交文件中说明。参赛队应严守学术诚信,一经发现代码抄袭或者技术抄袭等学术不端行为,取消参赛队资格。
赛事通知请见软件大会官网。