元外資系コンサルのガラクタ箱

インターフェース単体テスト方針サンプル

バッチインターフェースのプログラムは外部システムとの送受信も特徴ですが、根幹となるのは大量件数のデータをバッチ処理する点です。

経験があればテストケースを抽出するのは難しくありませんが、開発経験がなかったり画面機能を担当していた方は不慣れかもしれません。

本記事では、インターフェースプログラムの単体テストケースを抽出するための方針サンプルを紹介します。

Oracleデータベースの一般的な取り込みツールであるSQL*LoaderとPL/SQLについて個別に紹介します。

SQL*Loader

受け取ったデータをワークテーブルにロードするのに使われるSQL*Loaderは、以下の4ケースを試せばよいです。

必須データやキー重複、桁型の不一致に関してはワークテーブルの定義で担保し、個々のテストでは検証不要としました。

PL/SQL

取り込み時の抽出絞り込みや変換処理を行うPL/SQLのプログラムはケース数としては増えます。

以下の3つの観点でケース抽出を行います。

1つ目の分岐網羅(C1)を方針にするところは、命令網羅(C0)では心もとなく、条件網羅(C2)までやろうとするときりがないというので現実解でした。インターフェースプログラムはデータのバリエーションを扱うところがキモになるのでC1は網羅しておきたいです。

また複数テーブルを結合したSQLを作成することも多いため、発行するSQLの結合条件などが間違っていないかを検証することも重要です。

複数件数のデータを使って検証する理由は、ループ処理に際して変数の初期化が正しく行われていることを検証するためです。また、複数件といっても数件ではなくデータベースコミット単位を超えるくらいの例えば5000件強のデータでテストしておくことも重要です。

パッケージソフトの取り込みツール

パッケージソフトが用意している取り込みツールがある場合は、以下の4ケースを試せばよいです。

この時のパッケージソフトは論理削除が原則だったため、削除データも既存データ更新の一貫として扱いました。

終わりに

シンプルなインターフェースプログラムは左から右にデータを移送するだけかもしれませんが、往々にして処理ロジックは複雑になりがちです。

2個や3個ではない多数のテーブルを様々な条件で結合し、取得した項目を使って変換や計算を行うことは、緻密に設計したとしても設計バグやコーディングバグはゼロにはなりません。

テスト方針を共有して担当者の経験やスキルに依存せず品質が作り込めるのに役立てば幸いです。

 

 

 

mhisaeda

電子書籍「システム導入のためのデータ移行ガイドブック」著者。

新卒から外資系コンサルティングファームに所属。15年に渡り販売物流、特にCRM領域のコンサルティングに従事。 100名を超えるプロジェクトのPMOなど全体を推進していく役回りや、ユーザ企業への出向を通じた実務経験を持つ。

このブログでは、自身がかき集めた知識や経験を共有する。クライアントへの提案やソリューション開発に直結しないガラクタのようなもの。将来再利用する自分のために。同じような悩みを抱える誰かのためにブログ「元外資系コンサルのガラクタ箱」を運営。

カテゴリー

モバイルバージョンを終了