3

本番環境でデプロイされた Web アプリケーションの 1 つで Java バージョンを安全にアップグレードできるかどうかを評価するよう求められています。コードベースはかなり大きく、すべてを回帰テストする必要はありません (残念ながら自動テストはありません) が、いくつかの手動テスト中に少なくとも 1 つの問題が既に発生しています (XmlStringReader.getLocalName は、以前は返されていたときに IllegalStateExeption をスローするようになりました)。 null) と上層部は、アップグレードについてかなり神経質になっています。

現在推奨されているアプローチは、バージョンごとに JDK ソースのソース比較を行い、それらの変更を評価して、どの変更が影響を与えるかを確認することですが、多くの変更を行う必要があるようです (前述のように、コードベースはかなり大きいです)。 . 各バージョンの Java バージョンの変更を確認するだけで安全で簡単ですか? または、この評価を行う簡単な方法はありますか?

編集: 考慮されているバージョン アップグレードはマイナー バージョン アップグレード、つまり 1.6.10 から 1.6.33 へのアップグレードであることを忘れていました。

4

2 に答える 2

6

実際のシステムでのテストに取って代わるものはありません。バグ レポートや目視検査で露骨なものを見つけることはできるかもしれませんが、より複雑な相互作用による変更を検出することは不可能です。または、実行中のアプリに GC がどのように影響するか、ホットスポットがコードを最適化する方法 ( C++ コードもチェックしています)、またはいくつかの主要なアルゴリズムの実行方法を変更する、一見単純な変更を検出することさえできます...

于 2012-08-29T03:29:29.627 に答える
1

@jtahlborn が言うように: 適切にテストすることに代わるものはありません。

さらに進んで、自動化がなければ、これはコストがかかり、何度も何度も発生すると述べます。

正しい答えは

  1. 回帰を定義する
  2. 実行する (確認する)
  3. 可能な限り自動化する

より単純なシナリオは、単純に実行してエラーを検出することです。個人的には、これはやる気のない開発者、マネージャー、顧客を獲得するための良い方法だと思います。このアプローチを使用しないことを強くお勧めします。

于 2012-08-29T03:47:22.200 に答える