Developers are increasingly using services such as Dependabot to automate dependency updates. However, recent research has shown that developers perceive such services as unreliable, as they heavily rely on test coverage to detect conflicts in updates. To understand the prevalence of tests exercising dependencies, we calculate the test coverage of direct and indirect uses of dependencies in 521 well-tested Java projects. We find that tests only cover 58% of direct and 20% of transitive dependency calls. By creating 1,122,420 artificial updates with simple faults covering all dependency usages in 262 projects, we measure the effectiveness of test suites in detecting semantic faults in dependencies; we find that tests can only detect 47% of direct and 35% of indirect artificial faults on average. To increase reliability, we investigate the use of change impact analysis as a means of reducing false negatives; on average, our tool can uncover 74% of injected faults in direct dependencies and 64% for transitive dependencies, nearly two times more than test suites. We then apply our tool in 22 real-world dependency updates, where it identifies three semantically conflicting cases and five cases of unused dependencies. Our findings indicate that the combination of static and dynamic analysis should be a requirement for future dependency updating systems.


翻译:开发者正在越来越多地使用依赖性假冒等服务来自动更新依赖性。然而,最近的研究表明,开发者认为这类服务不可靠,因为他们严重依赖测试范围来检测更新中的冲突。为了了解进行依赖性测试的普及程度,我们计算了521个经过良好测试的爪哇项目中直接和间接使用依赖性的测试范围。我们发现,测试仅涉及直接依赖性电话的58%和过渡性依赖性电话的20%。通过在262个项目中创建1 122 420个简单错误的人工更新,覆盖所有依赖性使用,我们测量测试套装在发现依赖性缺陷方面的有效性;我们发现测试只能平均检测47%的直接和35%的间接人为缺陷。为了提高可靠性,我们调查使用变化影响分析作为减少假负值的一种手段;我们发现,平均而言,我们的工具可以发现74%的直接依赖性注射缺陷和64%的过渡依赖性依赖性电话,比测试套几乎高出2倍。我们随后在22个实体性依赖性更新中应用了我们的工具,我们发现测试套工具只能探测出平均47%的直接和35%的间接人为缺陷;为了提高可靠性,我们的未来的可靠性分析应当显示三个的动态的可靠性,而依赖性需要的组合。

0
下载
关闭预览

相关内容

Automator是苹果公司为他们的Mac OS X系统开发的一款软件。 只要通过点击拖拽鼠标等操作就可以将一系列动作组合成一个工作流,从而帮助你自动的(可重复的)完成一些复杂的工作。Automator还能横跨很多不同种类的程序,包括:查找器、Safari网络浏览器、iCal、地址簿或者其他的一些程序。它还能和一些第三方的程序一起工作,如微软的Office、Adobe公司的Photoshop或者Pixelmator等。
【杜克-Bhuwan Dhingra】语言模型即知识图谱,46页ppt
专知会员服务
65+阅读 · 2021年11月15日
专知会员服务
21+阅读 · 2021年2月6日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
生物探索
3+阅读 · 2018年2月10日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
老铁,邀请你来免费学习人工智能!!!
量化投资与机器学习
4+阅读 · 2017年11月14日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
0+阅读 · 2021年11月15日
Arxiv
46+阅读 · 2021年10月4日
VIP会员
相关VIP内容
【杜克-Bhuwan Dhingra】语言模型即知识图谱,46页ppt
专知会员服务
65+阅读 · 2021年11月15日
专知会员服务
21+阅读 · 2021年2月6日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
生物探索
3+阅读 · 2018年2月10日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
老铁,邀请你来免费学习人工智能!!!
量化投资与机器学习
4+阅读 · 2017年11月14日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员