汎用モジュールはあくまでもプログラムの中の1つの「部品」です。
そのため、汎用モジュール単体でテストを行うには、普通のプログラムと少しだけ異なる処理を行う必要があります。
このページでは、汎用モジュールのテスト方法を画面付きで初心者向けに分かりやすく解説します。
ABAPerであれば知らないと恥ずかしい超基本知識です。是非最後までご覧ください。
早速解説を始めます。
前提:汎用モジュールとは?
汎用モジュールとは、再利用可能なプログラムの部品です。「部品」ですので、事前にロジックを実装しておき、後から汎用モジュールを「呼び出す」形で利用します。

汎用モジュールの作り方・呼び出し方/実装方法については、以下のページで詳しく解説しております。
復習を兼ねて再度理解を深めたい方は、以下の記事をご覧になってから次の章にお進みください。
汎用モジュールのテスト方法
汎用モジュールのテストはトランザクションコード「SE37(汎用モジュールビルダ)」もしくは「SE80(オブジェクトナビゲータ)」から実行します。
ここでは、SE37からの実行方法で解説しますが、操作手順はSE80でもほぼ同様の手順でテストを行うことが可能です。
トランザクションコードとは、SAPで利用できるショートカットのようなもの。
コマンド項目に入力するだけで、特定の機能を呼び出すことができる便利な機能です。
トランザクションコード:SE37
トランザクションコード「SE37」で対象の画面に遷移し、テスト実行したい「汎用モジュール」名称を入力します。
※下記画像の通り、項目にカーソルを合わせれば汎用モジュールを検索することも可能ですので、名称を覚えておく必要はありません。

今回、行いたいのは汎用モジュールの「テスト」なので「照会」ボタンを押下し次の画面に遷移します。
ちなみに、余談ですが画像にある汎用モジュールは標準の汎用モジュールです。この汎用モジュールは年月日を入力すると、その月の最後の日を返す処理を行ってくれます。
テストデータの入力
「照会」ボタンを押下すると、汎用モジュールのコード画面に移ります。
テストを行うには、該当の画面で「F8(実行)」ボタンを押下するか、メニューの「汎用モジュール ⇒ テスト」で実行できます。
「F8」ボタンを押下した結果がこちらです。

ご覧のように、インポートデータをマニュアルで入力する画面に遷移します。
「IMPORT」で指定した項目が自動的に表示されます。本汎用モジュールの場合は「IMPORT」で定義されているのは1つだけです。
入力をしたら、更に「F8」を押下するか、「Ctrl + F7」を押下して実行します。
「F8」実行パターン
「F8」実行はデバッグせずに、そのまま実行するモードです。
実行した結果がすぐに分かるため、バグの調査に利用するのではなく、「どのような動きをするのか?」を知りたい場合に利用することが多いです。
特に標準の汎用モジュールは、リファレンス資料が少なく、Web上にもあまり詳細情報が載っていないことが普通です。
Aを入力したら、何がでるのか?インプットに対するアウトプットが知りたい場合など、単純な動作確認を行う際には「F8」実行パターンがおすすめです。
「Ctrl + F7」実行パターン
デバッグモードに移行します。こちらは、バグの調査で使われることが普通です。
ロジック不備の調査など、コードを直接読む必要がある場合に用います。
結果の確認
上記2つの実行モードが終了すると、結果画面に遷移します。

EXPORTの結果だけではなく、例外処理が走った場合は「エラーメッセージ」が出力されます。
デバッグ(DEBUG)とは、一言でいえば「プログラムバグを発見する作業の1つ」です。
プログラムを1行1行実行しながら、ロジックの不備を検知していきます。
デバッグとは何か?どのようにデバッグするのか?については以下の記事をご確認ください。
【裏技】テストデータの保存
テスト結果画面で保存ボタンを押せば、テストデータの保存が可能です。
今回の例では、IMPORTは1項目のみでしたが、例えば他システムからのインターフェースで用いられている場合などは項目が数十個~の場合もあります。
この場合に、テストデータを毎回入力するのは大変ですよね。
保存ボタンを押せば、テストデータに名称を付けたうえで保存が可能です。保存したデータは、実行前画面の「テストデータ一覧」ボタンを押せば呼び出すことができます。

注意点
最後に、汎用モジュールテストの注意点です。汎用モジュールテストでは、デバッグ同様、基本的に結果は全てコミットされます。
易しい言い方をすれば、結果がシステムに反映されてしまいます。例えば、伝票登録の汎用モジュールをテストした場合、伝票が実際に登録されるということです。
(テストという言葉に騙されて「データが実際に登録されることはない。」と誤解している方がたまにいらっしゃるため念のための補足です。)
ちなみに登録系の汎用モジュール使い方次第で実は様々な方法で利用可能です。
テストデータ作成時に威力を発揮します。テストのために伝票を100件登録したい場合、画面から1つずつ登録していくのは大変です。
① テストデータの保存
② 必要に応じて値を変えて実行
他システムからのIFを前提とする機能など、データの用意が難しい場合に用いるとよいでしょう。
ABAPを1から勉強したい方は
ABAPを1から学習したい方のために、ABAPの基本知識・基礎概念を1つのページにまとめました。
現在、完全無料で公開しておりますので、是非ご覧ください!