专栏首页arxiv.org翻译专栏使用假设协助调试(cs.SE)
原创

使用假设协助调试(cs.SE)

在开发人员调试时,开发人员会对故障原因做一定的假设,并收集证据来测试这些假设。为了更好地理解假设在调试中的作用,我们进行了两项研究。在一项初步研究中,我们发现,即使利用现代互联网资源,不正确的假设也会导致开发人员调查无关信息并阻碍进度。然后,我们进行了一个受控实验,20 名开发人员调试并记录了他们的假设。我们发现开发人员几乎没有进行假设,每个缺陷仅有两个假设。且假设其中之一他们自认为很有可能成功。我们还研究了两个调试辅助工具的影响:故障位置和潜在假设。提供故障位置对于开发人员制定更正确的假设或更成功地调试没有帮助。相比之下,提供潜在的假设使开发人员成功的可能性高出六倍。这些结果展示了未来调试工具的发展方向:能够查找和共享相关假设。

原文标题:Using Hypotheses as a Debugging Aid

原文:As developers debug, developers formulate hypotheses about the cause of the defect and gather evidence to test these hypotheses. To better understand the role of hypotheses in debugging, we conducted two studies. In a preliminary study, we found that, even with the benefit of modern internet resources, incorrect hypotheses can cause developers to investigate irrelevant information and block progress. We then conducted a controlled experiment where 20 developers debugged and recorded their hypotheses. We found that developers have few hypotheses, two per defect. Having a correct hypothesis early strongly predicted later success. We also studied the impact of two debugging aids: fault locations and potential hypotheses. Offering fault locations did not help developers formulate more correct hypotheses or debug more successfully. In contrast, offering potential hypotheses made developers six times more likely to succeed. These results demonstrate the potential of future debugging tools that enable finding and sharing relevant hypotheses.

原文作者:Abdulaziz Alaboudi, Thomas D. LaToza

原文地址:http://arxiv.org/abs/2005.13652

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 多目标进化算法应用于提高医药数据领域学习器的性能(CS AI)

    原文标题完整翻译:多目标进化算法应用于提高在医药数据领域使用整体特征选择和离散化模型的学习器的性能

    Donuts_choco
  • 蚂蚁能够定向盗窃案中的偷盗者(CS Artificial Intelligence)

    我们强调了偷盗者定向问题(Thop),一个组合了两个经典组合,优化问题的多元问题,即为定向问题和背包问题。鉴于给定的时间约束和作负荷而定的移动速度与选定路线的相...

    Donuts_choco
  • 项链的 K 中心问题(cs.DS)

    在图论中,k-中心问题的目标是找到一组 k 顶点,其中任何点与其在K-集合中距其最近的点的最大距离最小化。在本文中,我们介绍了项链集的k-中心问题,即循环移位下...

    Donuts_choco
  • Xmanager Enterprise

    server 端操作:编辑/usr/share/gdm/defaults.conf 这个文件,在[xdmcp]选项中设置Enable=true,,Port=17...

    py3study
  • alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案

    在修改/增加表字段的时候,发现很慢, show processlist; 时, Waiting for table metadata lock 能一直锁很久。 ...

    小小科
  • Programming with Objective-C方法命名规范

    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Progr...

    Albert陈凯
  • 图形化的2008R2 Server Core 配置管理工具

    微软新一代企业级服务器操作系统平台 - Windows Server 2008 R2 系列中包含了一个全新操作体验的版本即 Server Core,包含在Win...

    张善友
  • Flutter 更新&升级

    https://flutter-io.cn/posts/announcing-flutter-1-7-9.html

    林小帅
  • BS和CS的区别有哪些?

    黑泽君
  • 探秘Tomcat——启动篇

    tomcat作为一款web服务器本身很复杂,代码量也很大,但是模块化很强,最核心的模块还是连接器Connector和容器Container。具体请看下图: ? ...

    JackieZheng

扫码关注云+社区

领取腾讯云代金券