Page 29 - 《软件学报》2025年第5期
P. 29
董黎明 等: 结合主动学习和半监督学习的软件可追踪性恢复框架 1929
码. 这一方面反映了工业界对软件可追踪性的重视开始逐步加强. 但另一方面人为的操作依然会导致延时关联、
错误关联等不可靠的质量问题. 具体而言, 延时关联的情况是由于需求关闭前紧急关联某个 commit; 错误关联也
经常发生, 访谈发现一部分开发人员往往更容易将针对缺陷修复的 commit 替换为与需求进行关联. 一方面, 这是
由于开发人员更熟悉各自负责的需求, 且企业对需求的可追踪性有更严格的要求. 另一方面, 开发人员大多为外包
工作人员, 对组织规范性不清楚或不严格遵守, 也会导致可追踪性链接的可靠性难以保障的问题.
现状 2: 软件制品可追踪性链接的完整性难以保障. 通过分析缺陷与 commit 记录关联的比例, 本文发现企业
项目中平均有超过 50% 的缺陷没有与 commit 进行关联. 这可能是由于企业更多关注需求可追踪性的影响, 而缺
陷本身并没有要求与 commit 强制关联. 然而, 根据开发人员的反馈, 在每个正式发布版本中, 约 80% 的缺陷都是
功能性缺陷, 需要通过 commit 对代码进行修复. 不难发现, 缺陷和 commit 之间的关联关系不完整问题尤为普遍.
现状 3: 软件制品可追踪性链接缺失. 通过分析测试用例与其他制品之间的关联关系, 本文发现即使公司要求
测试人员将各自分配好的需求与对应的测试用例进行关联, 但测试用例的历史数据中, 只有少部分项目团队关联
了最高级别需求 (系统级需求) 和测试用例, 仍有很多历史测试用例关联的需求编号为空值. 此外, 测试用例与缺
陷之间甚至没有建立和维护关联关系.
不难发现, 各类制品之间的可追踪性缺失、延时、错误和不完整等问题都反映出企业内部的软件过程制品可
追踪性质量有待改进.
2.2 案例分析
为了解可追踪性模型在企业项目上的实践效果, 本文先以 Rath 等人 [10] 提出的 Baseline(RF) 可追踪性模型为
基础模型, 以及其实验 [10] 中验证过的 6 个开源项目数据为对比数据, 同时从本文合作企业选择了 10 个企业项目
数据展开了探索性案例分析. 项目基本统计量信息如表 1 所示, 数据集收集截至 2020 年 10 月. 考虑到缺陷-commit
间存在一定比例的关联关系恰好可以为模型提供训练数据, 也是相关研究 [10,27,31,40] 实验中使用最频繁的制品, 为方
便验证模型实验效果, 本文重点关注的是缺陷-commit 间的可追踪性问题.
表 1 项目数据集统计量信息
项目 类型 起始时间 缺陷 commit 总样本 “真”链接 “假”链接 无标签 有链接缺陷 (%) 有链接commit (%) 不平衡率
Derby 开源 2011-10 478 1 108 32 902 300 32 535 72 765 48.74 26.81 108
Drools 开源 2014-8 1 728 2 989 110 529 1 030 30 040 79 459 50.81 33.89 29
Groovy 开源 2014-7 1 170 5 368 342 722 1 017 223 524 118 181 69.40 18.55 220
Infinispan 开源 2015-1 2 287 5 546 268 886 1925 154 822 112 139 68.34 34.58 80
Maven 开源 2009-11 530 1 747 27 396 314 11 963 15 119 51.51 17.74 38
Pig 开源 2014-11 295 429 3 912 240 3 666 15 774 77.63 55.71 15
平均值 1 081 2 865 131 058 804 76 092 68 906 61.07 31.21 82
P1 企业 2019-2 1 764 16 912 944 236 1 157 303 421 639 658 25.06 6.84 262
P2 企业 2019-6 1 389 12 229 386 353 1 110 232 629 152 614 39.02 9.08 210
P3 企业 2019-6 448 4 888 66 754 279 29 028 37 447 28.57 5.71 104
P4 企业 2020-1 856 7 271 707 732 759 223 695 483 278 24.88 10.44 295
P5 企业 2020-3 188 1 649 20 228 257 10 147 9 824 33.51 15.59 39
P6 企业 2019-8 337 2 903 45 471 236 22 229 23 006 34.12 8.13 94
P7 企业 2019-11 405 6 114 249 120 936 149 997 98 187 45.19 15.31 160
P8 企业 2020-5 192 514 13 801 132 7 364 6 305 44.27 25.68 56
P9 企业 2019-7 270 2 437 35 621 287 20 364 14 970 45.19 11.78 71
P10 企业 2020-4 631 3 609 184 735 867 128 661 55 207 47.39 24.02 148
平均值 648 5 853 265 405 602 112 754 152 050 36.72 13.26 144
图 5 中展示了以缺陷-commit 跟踪对为样本, Rath 等人 [10] 提出的 Baseline(RF) 可追踪性模型在 6 个开源项目
和 10 个企业项目上的实验效果. 考虑到模型结果存在随机性, 图 5 中统计了 10 次实验结果得到的平均值. 图 5 横