EDIの処理において複雑な階層データを管理する方法

(この記事は、開発元Parasoft社 Blog 「How to Manage Complex, Hierarchical Data while Working with EDI」 2017年8月4日の翻訳記事です。)

健康保険会社 2 社への機能テスト自動化の導入を支援した際、私はEDIデータに起因する課題にいくつかの共通点があることに気づきました。

  1. ほとんどのEDIワークフローは、実際のファイルドロップから開始される。そのようなファイルのドロップをシミュレートするのは難しいことです。
  2. 1回のデータ交換で、Dialect、Version、およびMessageタイプが組み合わされている場合がある。そのような特定のスキーマに準拠するメッセージを生成するのは面倒な作業です。
  3. EDIメッセージをデータ駆動する必要がある。これは、特に階層や複数のデータ型を管理する際に、非常に複雑な処理になることがあります。

このブログ記事では、EDIを扱うときにテスターが直面するこうした課題を掘り下げ、テストの自動化でそれらを解決する方法について説明します。

電子データ交換(EDI)

まず、基本をおさらいしておきましょう。EDIはビジネスエンティティ間でビジネス情報を通信するために使用されるメッセージフォーマット標準です。以前は、これらの非常に複雑でエラーが発生しやすい取引(注文書、請求書、または医療業界の登録用紙など)が、紙の書類で行われていました:

このようなプロセスを改善するために、通信を標準化し、「ペーパーレス交換」を実現できるようEDIが設計されました。

EDIは企業が紙ではなく電子的に情報を送信できるようプロセスを改善しましたが、残念ながら、EDI独自の課題ももたらしました。私は最近、ソフトウェアテストツールを使用してこれらの問題を解決する手助けをしており、ぜひここでもそのソリューションをお伝えしたいと思います。

EDI テスト時にデータを(簡単に!)管理する

最近、ヘルスケア分野で導入に協力した企業では、HIPAA標準メッセージ定義を使用し、リクエストとレスポンスの両方として834のファイルを生成していました。これらのペイロードは固定長であり、非常に複雑な場合もあります。

双方のチームで、テストのためにファイルを送受信する必要がありました。実際のEDIメッセージをシステムに送り込む方法がなかったため、物理ファイルを使用する必要がありました。ファイルの定義を持つ電子メールを受信したら、そのファイルを交換フォルダーにドロップし、その後、返された結果を手動で検証します。データはあらかじめ作成され、適切な形式でファイルに格納されていましたが、変更は容易ではありませんでした。システムに適切なデータを入力し、同じデータソースを使って検証を実行することは非常に困難でした。

EDIワークフローの改善

この度の導入では、Parasoft SOAtestVirtualizeをワークフローに追加しました。この2つの製品は、メッセージパックによって、その場で生成可能な定義のライブラリを提供できます。このようにして、両チームは必要なメッセージを生成し、さらに重要なことに、要求と応答をデータ駆動することができました。(これはリクエストを送信するときと、最終的にレスポンスを検証するときの両方ででした)。

Parasoft Virtualizeをチェックしたいですか?無料のコミュニティ版をお試しください。

また、SOAtestとVirtualizeを使用して、階層EDIの処理方法も改善しました。データ リポジトリは階層データをシームレスに処理するため、要求と検証の両方に使用できるデータ構造の作成が非常に簡単です。ファイル データソースを使ってEDIを処理している方なら、これが私の顧客にとってどれほど素晴らしいことだったのかをすぐに理解していただけると思います。

では、この課題を解決するために私たちが構築したワークフローを、この記事をご覧の方も再現できるよう、段階的に追ってゆきましょう。

解決方法:SOATestとVirtualizeを使用してEDIメッセージを扱いやすくする

まず、834ファイル用のEDIメッセージスキーマを使用します。

SOATestには、これらのメッセージのライブラリが含まれているため、SOAtestを使用するとEDIの処理が簡単になります。ドロップダウンからメッセージのDialect、Version、およびTypeを選択するだけです。即座にペイロードが表示され、データ駆動する準備が整いました。次に、デフォルトメッセージのいくつかの値を入力できます。変化しないことがわかっているデータ値は、このように入力できます。

次に、エディターからペイロードの階層データソースを直接作成することができます。すべてが自動的に行われるため、どうやってレスポンス要素をペイロードにマッピングするか頭を悩ます必要はありません。これで、使いやすいデータソースが生成されます。

データソースが作成されたら、スプレッドシートを使うのと同じくらい簡単にデータを追加、削除、変更できます。データはVirtualizeのシンクライアントインターフェイスに表示されます。次の図は、Test Data Managerに表示されたデータ エディターです:

EDIの定義から直感的なデータソースにいたるシームレスなワークフローが完成しました。

最近の導入事例では、これによって頭痛の種が取り除かれ、それまでチームが苦労してきた検証の部分に着手できるようになりました。簡単に新しいユースケースをデータソースに追加して、データソースから検証を実行できます。

さらに、出力をファイルに変換し、フォームを適切なフォルダーに配置し、応答を受け取るようにファイル リスナーを設定することで、実際のファイル ドロップをシミュレートしながら、httpを使用してコールを直接システムに送信することもできました。

EDIファイル処理の自動化が完成!

これで完了です。複雑なメッセージフォーマットやプロトコルに対処しなければならない場合、作業の邪魔をするのではなく、力になる機能テストツールを持つことは、大きな違いを生みます。Parasoft SOAtestおよびVirtualizeを導入すると、複雑な、レガシーの、あるいは一般的でないユースケースを扱う際も当て推量の必要がなくなるほか、EDIメッセージから作成したすべてのテストケースとシミュレートされたサービスが、既存のテスト設計パラダイムにシームレスに適合するため、膨大な時間を節約できます。

Parasoft SOAtest/Virtualizeについて

APIのテスト自動化とサービス仮想化を1ツールで

SOAtest/Virtualizeは、APIの開発者/利用者に向けてテストの自動化とテスト環境の仮想化の2つの側面から開発を効率化します。SOAtest/Virtualizeは、APIのテストドライバーを提供し、開発中のAPIのテストを自動化する機能と、APIを利用するアプリケーションが必要とするAPIをスタブとして仮想化する機能を同梱して提供します。

Top