最新 Java 9 时间表看上去自开始就存在风险

  • Abraham Marín Pérez
  • Rays

2016 年 12 月 15 日

话题:Java语言 & 开发架构

在进入特性扩展流程的审批阶段后,Oracle 确认将于 2017 年 9 月发布 Java 9。虽然这个日期十分接近InfoQ 之前所给出的预测,我们认为还是存在一些会导致风险的因素。因为我们所做的估计是基于“特性扩展”过程需要三个月时间,实际上这个过程将持续七个月,这会缩减留给测试的时间,这是与我们前期估计有所不同的地方。不过,之前的一些非正式测试补偿了时间上的不足。

InfoQ 上一次所做出的分析中,估计 Java 9 中已被批准的特征扩展的最迟发布日期是 9 月 1 日,这意味着有近三个月的推迟(这还没有考虑未估计在内的特性)。假设各个过程被同等程度地推迟了,GA(整体可用版)将在 2017 年 6 月发布。但是在当前所给出的拟定时间表中,各个过程的推迟程度不一,这导致了一些潜在的风险。下面列出的是之前的时间表:

  • 2016 年 5 月 26 日,完成特性
  • 2016 年 8 月 11 日,运行所有测试
  • 2016 年 9 月 1 日,启动 Rampdown
  • 2016 年 10 月 20 日,彻底清理积压的程序缺陷
  • 2016 年 12 月 1 日,启动第二轮 Rampdown
  • 2017 年 1 月 26 日,准备好可发布版
  • 2017 年 3 月 23 日,发布 GA 版

下面是新给出的时间表:

  • 2016 年 05 月 26 日,完成特性
  • 2016 年 12 月 22 日,完成特性扩展
  • 2017 年 1 月 05 日,启动 Rampdown
  • 2017 年 2 月 9 日,运行所有测试
  • 2017 年 2 月 16 日,彻底清理积压的程序缺陷
  • 2017 年 3 月 16 日,启动第二轮 Rampdown
  • 2017 年 7 月 6 日,准备好可发布版
  • 2017 年 7 月 27 日,发布 GA 版

首先需要注意的是,现在“启动 Rampdown”要先于“运行所有测试”进行。正如在“里程碑定义”中所标明的,“启动 Rampdown”阶段标志着已经解决了 P1 至 P3 严重程度的缺陷,而“运行所有测试”标志着已将所有测试在所有的支持平台上至少运行了一次。这意味着对低优先级缺陷的修复在完整的测试之前就已结束。

“第二轮 Rampdown”反而比预期要延长了一个半月,这可能是为了弥补较短的首轮 Rampdown。在第二轮中只修复阻塞性缺陷,结合我们上面所做出的分析,这意味着该过程的目标是优先保证具备基本的运行功能,而这是以允许存在微小软件缺陷为代价的。

最后,首个可发布版到 GA 版之间的时间缩短了一半多。在“里程碑定义”中指明,如果在“可发布版”后需要再进行一次“彻底清理积压的程序缺陷”,按期“发布 GA 版”就有危险了。考虑到新时间表中所有前期过程都减少了测试时间,对缺陷做出反应的时间也缩短了,这增大了出现这种危险的可能性。

这里存在一个缓解因素,因为特性开发阶段在 2016 年 5 月结束,所以在特性扩展开发的同时可能已经做过一些测试。由于这些阶段是非正式的,所以这些测试工作可能并未体现在时间表中。另一方面,Rampdown 意味着只解决 P1 至 P3 级的程序缺陷,可能当前正在排除更低级别的程序缺陷。另外,直到所有代码被锁定了,才会进入“运行所有测试”阶段。最新特性扩展包括了用于JEP 282等模块系统的关键组件,这意味着即使做了高级测试,Java 9 的发布依然是在颠簸中前行。

查看英文原文:Latest Java 9 Schedule Appears to Be at Risk from the Outset


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

Java语言 & 开发架构