Blindspots in APIs can cause software engineers to introduce vulnerabilities, but such blindspots are, unfortunately, common. We study the effect APIs with blindspots have on developers in two languages by replicating an 109-developer, 24-Java-API controlled experiment. Our replication applies to Python and involves 129 new developers and 22 new APIs. We find that using APIs with blindspots statistically significantly reduces the developers' ability to correctly reason about the APIs in both languages, but that the effect is more pronounced for Python. Interestingly, for Java, the effect increased with complexity of the code relying on the API, whereas for Python, the opposite was true. Whether the developers considered API uses to be more difficult, less clear, and less familiar did not have an effect on their ability to correctly reason about them. Developers with better long-term memory recall were more likely to correctly reason about APIs with blindspots, but short-term memory, processing speed, episodic memory, and memory span had no effect. Surprisingly, professional experience and expertice did not improve the developers' ability to reason about APIs with blindspots across both languages, with long-term professionals with many years of experience making mistakes as often as relative novices. Finally, personality traits did not significantly affect the Python developers' ability to reason about APIs with blindspots, but less extraverted and more open developers were better at reasoning about Java APIs with blindspots. Overall, our findings suggest that blindspots in APIs are a serious problem across languages, and that experience and education alone do not overcome that problem, suggesting that tools are needed to help developers recognize blindspots in APIs as they write code that uses those APIs.


翻译:API 中的盲点可以导致软件工程师引入脆弱性,但不幸的是,这样的盲点很常见。 我们研究盲人点的API对两种语言的开发者的影响。 我们的研究是,复制109个开发者、24个Java-API 控制的实验,从而让盲人点对开发者产生更大的影响。 我们的复制适用于Python, 涉及129个新开发者和22个新的API。 我们发现,使用盲人点的API在统计上大大降低了开发者用两种语言正确解释API的能力, 但这种影响对Python来说更为明显。 有趣的是,对于 Java来说,由于代码的复杂性依赖于AIPI, 而随着对 Python 的测试, 效果却增加了, 而对于 Python, 情况正好相反。 开发者认为API 使用更困难、更清晰、更不清晰、更不清晰的Arenti 和专家的Arentireal 都无法理解,最后, 也表明, 相对的Arentim developments 和专家的Arevis real 都无法理解。

0
下载
关闭预览

相关内容

LESS 是一个开源的样式语言,受到 Sass 的影响。严格来说,LESS 是一个嵌套的元语言,符合语法规范的 CSS 语句也是符合规范的 Less 代码。
【干货书】Python 编程,480页pdf
专知会员服务
237+阅读 · 2020年8月14日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
152+阅读 · 2019年10月12日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
Python机器学习教程资料/代码
机器学习研究会
8+阅读 · 2018年2月22日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【推荐】Python机器学习生态圈(Scikit-Learn相关项目)
机器学习研究会
6+阅读 · 2017年8月23日
Arxiv
27+阅读 · 2021年2月17日
Arxiv
20+阅读 · 2020年6月8日
Arxiv
38+阅读 · 2020年3月10日
Deflecting Adversarial Attacks
Arxiv
8+阅读 · 2020年2月18日
Arxiv
4+阅读 · 2019年9月26日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
VIP会员
相关VIP内容
【干货书】Python 编程,480页pdf
专知会员服务
237+阅读 · 2020年8月14日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
152+阅读 · 2019年10月12日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
相关资讯
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
Python机器学习教程资料/代码
机器学习研究会
8+阅读 · 2018年2月22日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【推荐】Python机器学习生态圈(Scikit-Learn相关项目)
机器学习研究会
6+阅读 · 2017年8月23日
相关论文
Arxiv
27+阅读 · 2021年2月17日
Arxiv
20+阅读 · 2020年6月8日
Arxiv
38+阅读 · 2020年3月10日
Deflecting Adversarial Attacks
Arxiv
8+阅读 · 2020年2月18日
Arxiv
4+阅读 · 2019年9月26日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
Top
微信扫码咨询专知VIP会员