1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MyBatis/iBatisの同値検証におけるバグの分類

Posted at

前回の記事「MyBatis/iBatisの同値検証、sqlmapファイル(動的SQL)自体を単体テストする方法」で同値検証の方法は説明しましたが、既存バグもそのまま引き継ぎますね、ということでバグが何に起因するのか整理しました。今回は単なるポエムになります。
image.png
MyBatis2.jpg

下の2つ「変換NG」、「出力SQL 同値NG」はiBatisからMyBatisへの変換作業におけるプロセスの問題です。iBatisのSqlMapファイルのタグには属性によってオプショナルな動作を制御するものがあります。タグの使われ方を調査し、そのプロジェクトにおける使われ方のパターンを整理すれば対応できます。また、調査をするとたまに現行のコーディング規約に沿っていないものが発見されたりもします。

問題は真ん中の「出力SQL 構文NG」です。現行で利用しているiBatisのSqlMapファイルなので、これはまずいのですが、動的SQLが複雑(SQL自体がとても大きい、入れ子の階層が深い等)であったりすると、テストをしていないということが発覚したりします。

論理的に説明すればどこにバグの原因があるのか明確です。既存ソースコードの変換(マイグレーション)は大規模システムではWillと需要がある分野ですが、既存ソースコードの品質がしっかり担保されていることが前提です。完璧なマイグレーションとは、ある意味、バグも含めて現行仕様を踏襲していると言えるかも知れませんね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?