排名第一的预测bug的因素不是技术问题,而是组织的复杂性

Written by August Lilleaas, published December 18, 2019

作者:August Lilleaas,发表于2019年12月18日

This post is part of a series: Advent Calendar 2019

这篇文章是一个系列的一部分。2019年降临节日历

EDIT: Discussion on Hacker News and /r/programming.

编辑:在Hacker News/r/programming上的讨论。

In this post, I'll explore the findings made by Microsoft Research, after the unsuccessful launch of Windows Vista in 2007. Microsoft decided to dig deep and figure out what went wrong.

在这篇文章中,我将探讨微软研究院在2007年Windows Vista发布失败后的发现。微软决定深入挖掘并找出出错的原因。

The marketing department busied themselves with pranking people into saying that they like Vista.

市场部忙着恶作剧,让人们说他们喜欢Vista。

The research department, on the other hand, decided to do some research.

另一方面,研究部门决定做一些研究。

This is what they found.

这就是他们的发现。

Organizational complexity is the best predictor of bugs in a software module

组织的复杂性是软件模块中错误的最佳预测因素

This first section will summarize the findings. Later on, I'll describe what the findings mean, and more details about the methods used.

这第一节将总结研究结果。稍后,我将描述这些发现意味着什么,以及关于所用方法的更多细节。

Microsoft Research published a paper in which they developed a new statistical model for predicting whether or not a software module was at risk of having bugs, based on a statistical analysis of the module itself.

微软研究院发表了一篇论文,他们根据对模块本身的统计分析,开发了一个新的统计模型,用于预测一个软件模块是否有出现漏洞的风险。

The new model they developed was compared to these pre-existing well known models for predicting software bugs:

他们开发的新模型与这些预先存在的用于预测软件缺陷的知名模型进行了比较。

  • Code Churn. Measures the number of changes in version control of a module.
  • 代码流失。衡量一个模块的版本控制中的变化数量。
  • Code Complexity. Measures the number of code paths, the number of functions that call each other internally in the module, depth of inheritance hierarchies, coupling between objects, number of sub classes, etc.
  • 代码复杂度。衡量代码路径的数量,模块内部相互调用的函数数量,继承层次的深度,对象之间的耦合,子类的数量等。
  • Dependencies. Measures the number of external modules calling you, how many external modules you're calling, how many layers a module is away from the hardware, etc.
  • 依赖性。衡量调用你的外部模块的数量,你正在调用多少外部模块,一个模块离硬件有多少层,等等。
  • Code Coverage. Trad...
开通本站会员,查看完整译文。

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.129.0. UTC+08:00, 2024-07-04 14:30
浙ICP备14020137号-1 $Map of visitor$