技术方案

中国软件大会第一届软件缺陷自动修复挑战赛技术方案

一、评价方式的基本说明

比赛要求各参赛队综合运用软件测试、软件分析、软件调试等技术构思并实现一个缺陷自动修复系统,尽可能修复比赛所指定的缺陷。为展示参赛队的技术水平,进入决赛的队伍还需修复现场指定的缺陷,临时调整修复工具。除了本技术方案特别要求、规定和禁止的事项外,各参赛队可以自行决定使用的编程语言、操作系统、工具、自动定位方案等技术细节。

二、比赛基准数据集

比赛使用公开缺陷基准数据集growingBugs,所用版本为v6.1。数据集的仓库地址:https://github.com/liuhuigmail/GrowingBugRepository 。该数据集包含1911个真实Java历史缺陷,分别来自250个开源项目。

参赛队可以使用任意的自动定位技术,不得以人工方式提供定位结果。各参赛队在所有缺陷上尝试修复后提交结果。针对每个缺陷,参赛队提交修复工具产生的第一个可行解,不得人工筛选正确补丁以及人工排除过拟合补丁。参赛队应提交所有产生的补丁文件,包括过拟合的修复结果。修复结果将由比赛组委会检查。

参赛队提交标准diff格式的补丁(即补丁包含所在文件和行号信息,文件减号行代表原缺陷代码,加号行代表工具提供的补丁代码)。比赛不以修复速度为评判标准,但是鼓励参赛队提交所用修复时间。

三、初赛评分标准

比赛初赛同时考虑修复召回率(recall)与精确率(precision),以F1分数计分,即:

img

各个参赛队需要在初赛提交截至之前提交结果,比赛允许多次提交,以最后一次提交结果为准。所有参赛队将按照提交结果按上述公式计算分数。比赛组委会检查提交结果后,根据得分结果从高到低排名,决定决赛入围队伍。

四、决赛评分标准

进入决赛的队伍需要至少派1名队员参加2024年度中国软件大会,并在现场进行决赛。决赛中比赛提供新的缺陷,由决赛队伍在会议现场修复并提交修复结果。决赛队伍需要准备现场答辩,由比赛评委会委员根据修复方法的算法和实现进行评分。现场答辩的评分标准在决赛阶段公布。

比赛总成绩为100分,计分公式为(初赛分数×70% + 决赛现场修复分数×20% + 答辩分数×10% )。

五、其他

如果比赛队伍使用第三方工具或者借鉴他人部分源码,必须在提交文件中说明。参赛队应严守学术诚信,一经发现代码抄袭或者技术抄袭等学术不端行为,取消参赛队资格。

赛事通知请见软件大会官网。

results matching ""

    No results matching ""