我被要求评估我们是否可以安全地在我们的一个生产部署的webapp上升级java版本。代码库相当大,我们希望避免不得不回归测试所有东西(遗憾的是没有自动化测试),但我们在一些手动测试中已经遇到了至少一个问题(XmlStringReader.getLocalName现在抛出一个IllegalStateExeption,而它只是用来返回null),上级对升级相当紧张。
当前建议的方法是对每个版本的JDK源代码进行源代码比较,并评估这些更改以查看哪些更改可能会产生影响,但似乎需要经历许多更改(如前所述,代码库有点大)。仅仅检查每个版本的java版本更改是否安全且更容易?或者,有没有更简单的方法来进行评估?
编辑:我忘记提到正在考虑的版本升级是一个小版本升级,即从1.6.10升级到1.6.33
发布于 2012-08-29 11:29:30
没有什么能取代在真实的系统中测试它。您也许能够在bug报告或视觉检查中捕捉到一些明显的东西,但由于更复杂的交互而导致的更改将是不可能的。或者甚至检测到一些看似简单的变化,这些变化改变了GC如何影响你正在运行的应用程序,或者hotspot如何优化你的代码(你也在检查c++代码,对吧),或者一些关键算法的执行方式……
发布于 2012-08-29 11:47:22
正如@jtahlborn所说:没有什么能取代正确的测试。
我会更进一步,声明如果没有自动化,这将是一种成本,你将一次又一次地发生。
正确的答案是
一个更简单的方案是简单地运行它,并在您或您的客户找到时间时捕获错误。就我个人而言,我认为这是让开发人员、经理和客户失去动力的好方法。我强烈建议您不要使用这种方法。
https://stackoverflow.com/questions/12170462
复制相似问题