如何评估java版本升级的风险?

时间:2012-08-29 03:24:13

标签: java

我被要求评估我们是否可以在我们的一个生产部署的webapps上安全地升级java版本。代码库相当大,我们希望避免对所有内容进行回归测试(没有自动化测试),但是在一些手动测试中我们已经遇到过至少一个问题(XmlStringReader.getLocalName现在抛出IllegalStateExeption时它只是用于返回null)和高层对升级非常紧张。

当前建议的方法是对每个版本的JDK源进行源比较,并评估这些更改以查看哪些可能会产生影响,但似乎需要进行大量更改(如前所述,代码库是有点大)。仅查看每个版本的Java版本更改是否安全且容易?或者有更简单的方法来进行评估吗?

编辑:我忘了提到正在考虑的版本升级是次要版本升级,即1.6.10到1.6.33

2 个答案:

答案 0 :(得分:6)

没有什么可以取代在真实系统中测试它。您可能能够在错误报告或视觉检查中发现一些明显的内容,但是由于更复杂的交互而检测到更改是不可能的。甚至检测看似简单的更改,这些更改会改变GC如何影响正在运行的应用程序或热点如何优化您的代码(您 正在检查c ++代码,正确)或某些关键算法如何执行...

答案 1 :(得分:1)

正如@jtahlborn所说:没有什么能够正确地替代它。

我会更进一步说明如果没有自动化,那么这将花费你一次又一次的成本。

正确答案是

  1. 定义回归
  2. 运行它(验证它)
  3. 在您完成任务时尽可能自动化
  4. 更简单的方案是简单地运行它并捕获错误,您或您的客户是否有时间。我个人认为这是让失去动力的开发人员,经理和客户的好方法。我强烈建议你不要使用这种方法。