サイト内検索
サイト内検索を閉じる

なぜ、マイグレーション開発では機能単位の動作保証が重要なのか

2021/10/26

マイグレーション開発で品質を確保するためにはどのようなテストが必要でしょうか?マイグレーション開発は、機械的にプログラムをツールで変換するだけなので、各プログラム単位の単体テストで十分かと思われる方も多いかと思います。弊社は、多くの移行実績を踏まえ、マイグレーション開発に関しては「機能単位の動作保証」を行うことが重要であると考えています。その理由と、具体的な機能単位の動作保証の内容を解説したいと思います。

1.マイグレーション開発で機能単位の動作保証が必要な理由

マイグレーション開発では、現行のプログラムを活用し、変換ツールによる自動変換をメインに開発を進め、必要に応じて人手による修正を行います。一見、単純な開発に思えるため、各プログラム単位に単体テストを行うことで十分品質が担保されると考える方もいらっしゃるかと思います。
確かに各プログラムの変換前後での動作が保証されれば、全体としても現行と同じ動きが保証できるように思えます。しかし、実際に繋げて動作させた途端に誤った挙動になることが頻繁に発生します。一体何が起きているのでしょうか?

例えば、「ある画面の項目に値を入力し、登録ボタンをクリックする操作」を考えます。言語によりますが、この操作の中で幾つかイベントが発生するタイミングがあります。

①項目に値が入ったタイミング
②項目からフォーカスが外れたタイミング
③登録ボタンにフォーカスが移ったタイミング
④登録ボタンを押したタイミング

先に動くタイミングで入力内容を別の項目に退避し、後のイベントの通信で送信項目として使用しているケースなどがあります。これらの順番が言語によって微妙に異なることがあります。順序が入れ替わってしまうと、何も入っていない項目を送信してしまうことになります。
単体テストとして、プログラム単位やイベント単位の検証のみを行っていては、①~④のそれぞれ単独では現行と同じ動きとなっていて、問題を検出できません。そのため、ある程度のプログラム・イベントがまとまった「機能」としての動作保証が必要となります。

上記のようなイベントの順序が変わってしまうケースは不具合の生じる一例ですが、他にはサードパーティ製品との連携の部分で不具合が生じるケースもあります。この場合も同様に、プログラム単位やイベント単位、サードパーティ製品単独のテストでは不十分であり、サードパーティ製品と各プログラムの組み合わせによって不具合が生じるケースを考慮し、各使用箇所で「機能」として動作を保証する必要があります。

2.マイグレーション開発で機能が正しく動くための単体テスト保証レベル

正しく動くことを保証するためには、どのような単体テストを行う必要があるでしょうか。まず、マイグレーション開発の中でも自動変換できず、手修正で対応した部分について行う「プログラム単位」でのホワイトBOXテストの検証があります。手動変換を含むプログラムについて、手動変換箇所のカバレッジが100%となるようにテストを実施します。手動変換箇所にツールを利用して機械的にカバレッジログを挿入し、全てのログが出力されるようテストを行います。

次のレベルでは複数のプログラムで構成される「イベント単位」での動作検証があります。画面/バッチのイベント(画面初期表示、ボタンクリックなど、バッチは全ての移行対象が呼び出されるように)を全て機械的に抽出し、全イベントに対して現新比較によるテストを実施します。
さらに上のレベルとして、複数のイベントで構成される「機能単位」での動作検証があります。システムの機能として、ファイルやDBへの登録、出力される帳票がそれぞれ現新一致することなどをテストで確認します。

\うまくいくマイグレーション/
基幹システムのマイグレーションを検討されている方はこちら!

\オープンマイグレーションとは?/
マイグレーションについて詳しく知りたい方はこちら!

3.マイグレーション開発における具体的な機能単位の保証方法

では、機能単位での動作検証とは具体的にどのようなテストを行えば良いでしょうか。一般的なマイグレーション開発としては、変換箇所が正常に稼動することを保証するケースが多いようです。これは、機能の中の一部品が正しく稼動していることを検証しているに過ぎません。機能単位の保証では、「画面に出力する」「DBを更新する」「ファイルを出力する」「帳票を出力する」などといった機能のアウトプットまで含めて、保証の範囲を拡げます。

具体的な方法としては、先ず全イベントを網羅するように、現行システムと変換後の新システムにて同じ操作を行います。その結果のアウトプットが現新で一致することを確認することで、機能単位での挙動の正当性を確認します。この確認を行うことで、機能として成り立っていることが保証されます。

4.まとめ

今回、マイグレーション開発における機能単位の動作保証の重要性について解説しました。
一見単純に思えるマイグレーション開発であっても、開発前後で言語やOSなどが変わることによってプログラム単位の動作保証では不十分であること、機能単位での検証が重要であることをお伝えすることができたでしょうか。

テストの精度を上げるためには、より実務に近いオペレーションを行って現新比較を行うことが重要になってきます。いくつかの業務パターンがあればパターンごとに検証を行うことが望ましいです。そのためにプロジェクトの初期で業務に関する分析を行うフェーズを設けておくことも検討すべきだと思われます。もちろん、通常の保守開発などで必要となるレベルまでは不要ですが、マイグレーション開発であっても品質を確保するために確認すべき業務パターンを把握できる程度の業務理解が必要だと考えます。

当サイトでは、マイグレーションによるシステム移行をお考えの方に向けて、参考になるダウンロード資料をご用意しております。「オープンマイグレーション基本ガイドブック」は、マイグレーションで注意しなければならないポイントがわかる資料になっており、御社のシステム移行の意思決定のヒントになるはずです。マイグレーション変換ツールの詳細についても掲載しております。
また「うまくいくマイグレーションとうまくいかないマイグレーション、その違いとは?」のダウンロード資料もご用意しております。マイグレーションの品質向上のポイントや、マイグレーション変換率に依存しない考え方を記載しております。ぜひ、ダウンロードページより資料をご覧ください。

\うまくいくマイグレーション/
基幹システムのマイグレーションを検討されている方はこちら!

\オープンマイグレーションとは?/
マイグレーションについて詳しく知りたい方はこちら!

その他ブログのご案内

オープンマイグレーションサービスでは、その他下記のようなブログをご用意しております。

おすすめブログ

過去ブログ

すべての記事

PAGE TOP

サービスに関する資料をご希望の方は、フォームに必要事項を入力いただき、ご送信ください。

資料を請求する

お問い合わせ
各種お問い合わせページ
お問い合わせフォーム
サービスに関するお問い合わせ
お電話
0800-600-9810
携帯電話
050-5816-9805
受付時間 9:00~12:00 13:00~17:00(土・日・祝日を除く)

更新日時:2023年1月6日 13時39分