如果我们可以计算每个 Ubuntu 版本的错误数量(...10.04,10.10,11.04,...),这会是一条下降线吗?
如果不是,那为什么呢?新版本的全部意义不就是修复以前的问题吗?难道我们不能梦想一个完美的 Ubuntu LTS 吗?
答案1
不。新版本会有新软件和新版本的软件,因此它们会有全新的错误。
新的硬件还会引入新的驱动程序、新的软件,从而产生新的错误。
新版本发布的目的不就是修复之前的问题吗?
您还可以通过删除软件并切换到其他占用空间较小的软件来修复错误(较少的代码往往具有较少的错误,因为错误的发生较少)。
举个例子:我们从 Gnome 切换到 Unity。因此,旧版本不会有与 Unity 相关的错误,而新版本会有很多错误,而我们仍然有使用 Gnome 的 Ubuntu 衍生产品。因此,这些 Unity 错误导致错误数量增加。
听说过错误追踪器?它将引导你错误.ubuntu.com和 ...
举个例子:到 Ubuntu 18.04 为止,我们可能会看到错误数量翻倍。我们不仅要处理“旧”的 Unity7,还要处理“新”的 Unity 8。全新的桌面体验将有其自己的问题(即错误)。
要添加到有趣的链接列表:漏洞启动板包含带有标签的错误列表。它还包括特定于某个版本的错误(大多数错误可能不是特定于某个版本的):
57 zesty
2346 yakkety
3043 xenial
2382 wily
4415 vivid
37 utopic
2724 trusty
1 saucy
1995 precise
如果你看一下,不同版本的数量差异很大。与 Xenial 和 Vivid 相比,Yakkety 的表现相当不错。
答案2
如果我们可以计算每个 Ubuntu 版本(... 10.04、10.10、11.04,...)的错误数量,它会是一条下降的线吗?
这一数字可能会下降,但这是软件开发我们正在谈论。那么,我们来谈谈软件开发吧。
软件开发是不是这是一门科学!这是一门艺术!
当有人编写软件时,他们会进行猜测。他们会尝试各种方法。他们会正常地编码,这(不幸的是)往往会产生没有人能够预料或看到的错误。根本没有办法保证任何代码片段没有错误。软件开发人员是人
“人非圣贤孰能,”正如俗话所说。人无完人。他们会犯错。他们会忘记更改变量。他们没有发现会导致 Ubuntu 崩溃的奇怪触发器。在这种情况下,软件开发不再是生死攸关的事情
Ubuntu 具有自我更新的能力。不再有“天哪,这个必须 100% 无错误并经过测试,因为它再也不能更改了”的心态。犯错是可以的,因为它们以后可以修复。虽然这不是故意忽视错误的借口,但由于测试没有涵盖一个非常常见的奇怪边缘情况,事情可能会被忽略。其他时候,边缘情况是如此边缘,以至于历史上可能只有两个人会触发该错误。
新版本发布的目的不就是修复之前的问题吗?
新版本包含新功能和错误修复。不幸的是,新功能也意味着新错误。
我们能不梦想一个完美的 Ubuntu LTS 吗?
我们可以梦想,但仅此而已。它是代码,由人类编写。它并不完美,也永远不会完美。没有程序,尤其是像 Ubuntu 这样复杂的程序可以曾经完美无缺。
您甚至可以直观地看到这种效果错误追踪器每次发布后,由错误或各种原因引起的错误数量都会急剧增加,直到各种补丁和错误修复将它们恢复到可管理的水平。
总结:抱歉,错误是软件开发的一部分。
答案3
如果每个 ubuntu 都停留在其组件软件的相同版本上,那么您可以假设错误数量呈下降趋势,但是会进行更改以在组成 ubuntu 的各个软件包中添加功能,因此每次更改都会出现新的错误。
并非所有错误都是可以解决的,经过仔细检查,一些错误会分解成更多的错误,而一些错误会分解成更少的错误,许多错误甚至都没有到达开发人员手中,因为它们没有得到很好的描述或可重复性不够。
另一个因素是用户群在增长,这意味着发现错误的潜力更大(使用时间更多),但不会增加解决问题的资源,因为这并不等同于更多的开发人员。
还有一个因素是,ubuntu 运行在一个不断变化的多样化平台上,一些错误完全与硬件怪癖有关,而这并不是 ubuntu 的错。
作为一名专业的软件 QA,我可以告诉你,没有 bug 的软件是不可能存在的,你能做的最好的事情就是证明你想用某些代码做的事情不会触发 bug。零 bug(在一个非平凡的项目中)在哲学上是不可能的,原因有很多,最主要的原因在于,在时间和空间上,完美是不可能的,如果它已经发生了,并且如果可能的话,它会非常明显。另一个原因是,bug 和功能之间的区别在于旁观者的眼光,你所说的 bug 可能是开发人员的功能,反之亦然。
这并不意味着我认为 ubuntu 发行版质量低下,远非如此,它们以一种大多数商业操作系统梦寐以求的方式在新功能和稳定性之间达成了现实的妥协。rinzwind 发布的图表令人印象深刻,尽管存在所有这些重大挑战,但报告的绝大多数错误都得到了处理,通常都得到了解决。
答案4
报告的错误数量基于:
- 代码行数越多 = 出现 bug 的几率越大。Ubuntu 所基于的 Linux 内核从 15 万行(版本 1)增长到 1700 万行(版本 4.5.4)。
- 用户越多 = 导致错误的潜在硬件 / 软件配对数量越多
- 用户越多 = 报告错误的机会越大。如果只有 20% 的时间报告错误,并且只有 5 名用户遇到该错误,则可能不会报告。如果有 50 名用户遇到该错误(由于用户群较大),则会报告该错误。
- 新硬件 = 更多错误。我们发现英特尔 Bay Trail 处理器、nVidia 显卡和 Radeon 显卡存在各种错误。随着 4k 电视、USB 3.1 以及即将出现的任何新硬件开发,这种情况只会增加。
- 硬件越多 = 冲突的可能性越大。每个新设备都可能带来自己的设备驱动程序/内核模块。模块越多 = 两者发生冲突并产生错误的可能性越大。
- 软件越多 = 冲突的可能性越大。随着用户群的增长,为他们开发的软件数量也在增长。Apache Open Office 可能与 Libre Open Office 发生冲突,有些人可能会选择同时安装这两种软件,因为存储空间非常充足,而且价格较低。现在可能有 5 个程序可用于控制风扇速度,而用户可能会安装多个程序,它们可能会相互冲突,导致系统每 10 秒出现一次微冻结。
请记住,随着错误数量的增加,修复错误的人和与他人分享解决方案/答案的用户数量也在增加。
此外,在某些情况下,错误的数量并没有增加,但遇到错误的人数却增加了。此外,如前所述,报告错误的人数有所增加。