通过追踪程序员的眼球来预防Bug

123

 

胆小鬼是不适合从事软件开发的。程序员经常要长时间工作,盯着电脑屏幕敲代码。一个电脑程序可能包含几百万行代码,考虑到代码的特性和规模,出错是不可避免的。

这些错误的业内名字叫bug,他们可能会给客户带来严重后果。完全消除代码中的bug几乎是不可能的,但对于软件公司来说,通过合理手段来减少bug数量是优先要考虑的。

现在微软研究员Andrew Begel和一些学术和工业领域的同事提出了一个新颖的方法来减少代码错误:追踪开发人员工作时的眼睛运动以及其它精神和肉体特征。他将于7月15日,也就是第15届微软研究技能峰会的第二天下午一个主题为“这让你感觉如何”的讨论会上展示他的工作成果。

分析bug产生原因的现有工作主要专注于研究“Bug修复”和“发现bug之后的代码”之间的相关性。在他和苏黎世大学的Thomas Fritz、Sebastian C. Müller、Manuela Züger以及工程科学咨询公司Exponent的研究员Sera Yigit-Elliott一起发表的论文《使用心理和生理方法评估软件开发中的任务难度》中,作者们提出了新方法:检测开发人员工作时纠结的情形,以此防止这种情形下可能会产生的bug。

划分难度等级

6月5日在印度海德拉巴举行的第36届世界软件工程大会上,他们展示了这项研究成果:根据从心理和生理传感器中获得的数据来划分编码工作的难度等级。

Begel,“程序分析”国际会议的联合主席做了以下讲解

“有个被称为软件库挖掘的研究领域,”他说:“致力于寻找软件开发过程中的度量和bug之间的相关性。譬如,一段经常被编辑的代码中产生bug的几率要比不常编辑的代码大。”但这种结果没有实际意义–如果你不再编辑代码,也就不会产生bug–但也就开发不出软件了!

“我的想法是,如果软件开发人员写代码产生bug,我们应该找出开发人员本身对产生bug的影响。如果我们可以找到有何行动上或者情绪上的原因会导致带有bug的代码产生或者带来较低的工作效率,那我们就能介入并在第一时间阻止这些问题的产生。”

这篇论文描述了研究人员提出的三个问题,来讨论心理和生理测定是否可以用来判断某个代码分析工作是简单的还是困难的:

  • 我们是否能够利用眼部追踪技术,从皮电活动[EDA]传感器和脑电波[EEG]传感器中获取心理和生理测定数据,来做出准确的预测某项工作是困难还是容易的?
  • 利用哪些心理和生理传感器以及相关特征可以预测某项工作的难度?
  • 我们是否可以利用心理和生理测定数据在开发人员工作的过程中预测某项工作的难度?

EDA测定数据会随着皮肤导电的能力而发生改变,EEG测定数据评估了大脑中的电子活动。

研究人员测试了15名专业开发人员,来看这种新方法是否可以很好地预测任务的难度。结果令人鼓舞:对于新手开发人员,预测的准确度接近65%。对于新任务,准确度更高,几乎85%。

开发人员在可能造成bug并且需要有外部介入的阶段有何反应目前还不得而知。

“我们还没有尝试过进行介入,”Begel说:“但我有考虑过一个介入方法,适用于那些分心的开发人员,譬如那些刚吃完饭回来还没能将心思放在代码上的开发人员。如果我们降低显示器的对比度、调整字体使其更难阅读,那么开发人员会被迫动用更多的脑力来阅读和理解代码,也就不太可能出错。”

这项技术广泛应用之前还有很多工作要做,但是研究人员在论文中展示的结果前景很好,它提出了一种可靠的方法来评定软件工程任务的难度,促进下一代开发工具的发展使其能更好地帮助负担过重的开发人员。

“我们尚在试验阶段,要努力弄明白这些感应器向我们传达了关于开发人员的哪些信息。”Begel说:“如果我们能成功发现内在的规律,并据此提出适当适时的介入方法,那就可以转化成实用的开发工具。”

收藏 1 评论

关于作者:伯乐在线读者

① 本账号用于发布那些在伯乐在线无账号的读者的投稿,包括译文和原创文章。② 欢迎加入伯乐在线专栏作者:http://blog.jobbole.com/99322/ 个人主页 · 我的文章 · 32

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部