ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(データベース連携サービス編)

12.3 アプリケーションのテスト(COBOL)


  作成したアプリケーションのテスト方法を、以下の内容で説明します。


サーバアプリケーションのテスト方法

  サーバアプリケーションのテストは、実際にクライアントアプリケーションと結合して行います。このとき、サーバアプリケーションをデバッガ配下で動作させると、サーバアプリケーションが正しく作成されているかを確認できます。


注意

  サーバアプリケーションは、Solarisの場合にだけテストすることができます。


  COBOLデバッガとの連携時の動作概要、およびサーバアプリケーションをデバッガ配下でテストする場合の手順を、以下に示します。



(1) テスト用モジュールの作成

  テストするサーバアプリケーションを、TESTオプションを指定してコンパイルします。コンパイル方法の詳細については、COBOLのマニュアルを参照してください。
  テスト用モジュールのコンパイル例を以下に示します。

%cobol -WC,"TEST" -c tdsample1_s.cbl
%cobol -WC,"TEST" -c TD_TDSAMPLE1_INTF_skel.cbl
%cobol -G -o libtdsample1.so -lthread -L/opt/FSUNtd/lib -ltdalcapi -L/opt/FSUNextp/lib 
       -lextpapiskl -L/opt/SUNWnsun/lib -lcobol tdsample1_s.o TD_TDSAMPLE1_INTF_skel.o

(2) ワークユニットの起動

  テストするサーバアプリケーションのワークユニット定義を作成し、isstartwuコマンドでデバッグオプション(-dオプション)を指定してワークユニットを起動します。-dオプションを指定してワークユニットを起動すると、ワークユニットの動作環境まで作成し、APMプロセスを起動せずに復帰します。isstartwuコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。
  デバッグ用のワークユニットの起動例を以下に示します。

%isstartwu -d TDSAMPLE1

(3) APMプロセスの起動

  端末から、svdコマンドでテスト対象のCOBOLプログラムを指定してCOBOLデバッガを起動し、APMプロセスをそのデバッガ配下で起動します。
  APMプロセス起動時のsvdコマンドのパラメタについて、基本的なパラメタの指定方法を以下に示します。COBOLデバッガの詳細については、COBOLのマニュアルを参照してください。


************************************************************************
* svd -p プログラム名 -s ディレクトリ名 -k ディレクトリ名 ファイル名   *
*      APMモジュール名 業務システム名 ワークユニット名 オブジェクト名  *
*      動作システム種別                                                *
************************************************************************

-p プログラム名

デバッグを開始する外部プログラム名を指定します。

-s ディレクトリ名

COBOLソースプログラムの格納ディレクトリを指定します。

-k ディレクトリ名

デバッグ情報ファイルの格納ディレクトリを指定します。デバッグ情報ファイルは、コンパイル時に生成されるファイル拡張子“.svd”のファイルです。

ファイル名

“/opt/FSUNextp/bin/extp_apmenv”を指定します。

APMモジュール名

“/opt/FSUNextp/bin/extp_apmXXX”を指定します。
(XXX:ワークユニット定義で指定したAPM名)

業務システム名

“td001”を指定します。

ワークユニット名

本APMが動作するワークユニット名を指定します。

オブジェクト名

ワークユニット定義で指定した本APMのオブジェクト名を指定します。

動作システム種別

“T”を指定します。


  APMプロセスの起動例を以下に示します。

% PATH=/opt/SUNWnsun/bin:${PATH}; export PATH
% LD_LIBRARY_PATH=/opt/SUNWnsun/lib:/usr/dt/lib:/usr/openwin/lib:${LD_LIBRARY_PATH}; 
  export LD_LIBRARY_PATH
% MANPATH=/opt/SUNWnsun/man/%L:/opt/SUNWnsun/man:${MANPATH}; export MANPATH
% NLSPATH=/opt/SUNWnsun/lib/nls/%1/%c/%N.cat:/opt/SUNWnsun/lib/nls/C/%N.cat;
  export NLSPATH
% XUSERFILESEARCHPATH=/opt/SUNWnsun/lib/app-defaults/%L/%N:/opt/SUNWnsun/lib
  /app-defaults/%N; export XUSERFILESEARCHPATH
% PSTAFF=/opt/SUNWnsun/config/mkinc; export PSTAFF
% svd -p TDSAMPLE1 -s /opt/FSUNtd/sample/SERVER -k /opt/FSUNtd/sample/SERVER
  /opt/FSUNextp/bin/extp_apmenv /opt/FSUNextp/bin/extp_apmTD td001 TDSAMPLE1 TDSAMPLE1/INTF T

(4) テスト開始

  COBOLデバッガを起動すると、COBOLデバッガ画面が表示されます。画面の表示後、クライアントアプリケーションからサーバアプリケーションを呼び出して処理を実行すると、デバッガからサーバアプリケーションの動作状態を確認することができます。これにより、アプリケーションを実行することができ、ステップ単位でデバッグすることができます。なお、COBOLプログラムのデバッグ方法の詳細については、COBOLのマニュアルを参照してください。

  出口プログラムのデバッグ時は、svdコマンドの-pオプションに出口プログラム名を指定します。前出口プログラムの場合は、APMプロセス起動の延長でデバッグすることができます。後出口プログラムの場合は、APMプロセスの起動後、オプションを指定しないでisstopwuコマンドを実行することでデバッグすることができます。


注意

デバッガでサーバアプリケーションをデバッグする場合の注意事項

  • デバッガ配下でサーバアプリケーションを起動してデバッグしている場合は、再デバッグ(rerun)を行わないでください。再デバッグを行う場合は、いったんデバッガを停止してから、再起動してください。

  • サーバアプリケーションのデバッグ中は、ワークユニットを停止しないでください。サーバアプリケーションのEXIT PROGRAMを実行し、デバッガに“実行中”が表示されてから、ワークユニットを停止してください。

  • ワークユニット定義のプロセス多重度には、“1”を指定してください。

  • デバッガは、1つのワークユニットに対して1つだけ起動してください。

  • デバッガは、デバッガによる実行が完了した状態で終了してください。

  • 後出口プログラムのデバッグ中は、他のワークユニットの起動処理/停止処理を保留します。

  • 時間監視は、デバッガによるステップ実行中にも行われます。ワークユニット定義において時間監視を行わないように設定するか、またはデバッグに十分な時間を設定してください。

  • デバッガ使用時は、isstopwuコマンド実行時に-cオプション、およびisstopコマンド実行時に-c/-f/-s(Windows(R)版)オプションを指定できません。

  • デバッガは、環境変数LD_LIBRARY_PATHにワークユニット定義のアプリケーション使用ライブラリパス・アプリケーションライブラリパスに指定されているパスを設定してから、起動してください。


クライアントアプリケーションのテスト方法

  クライアントアプリケーションのテスト方法は、クライアントアプリケーションを動作させるオペレーティングシステム/ミドルウェアによって異なります。使用しているオペレーティングシステム/ミドルウェアにおいて推奨されている方法でテストを行ってください。


スナップショットによるテスト支援

  スナップショットを使用して、クライアントからの要求に対する入出力情報をワークユニット単位に取得することにより、アプリケーションをデバッグすることができます。

  ログファイルの出力形式を以下に示します。

SNAP START: TIME: 10:51:02.159574               (1)
MODULE NAME     : SNAP10_OBJ1                   (2)
OPERATION NAME  : OPE1                          (3)
INPUT INFORMATION                               (4)
PARAMETER NUMBER:10                             (5)
VARIABLES
  PARAM0001: ATTRIBUTE  :long                   (6)
             DATA LENGTH  :4                    (7)
             DATA      :1                       (8)
              :
              :

SNAP START: TIME: 13:08:03.317794               (9)
MODULE NAME     : SNAP10_OBJ1                   (2)
OPERATION NAME  : OPE1                          (3)
RETURN INFORMATION                             (10)
RETURN VALUES : 0                              (11)
OUTPUT INFORMATION                             (12)
PARAMETER NUMBER:10                             (5)
VARIABLES
  PARAM0001: ATTRIBUTE  :short                  (6)
             DATA LENGTH  :2                    (7)
             DATA      :100                     (8)
              :
              :

  1. アプリケーションの実行開始時間

  2. オブジェクト名

  3. オペレーション名

  4. アプリケーション呼出し時のパラメタ
    注)タイプがin/inoutのパラメタ情報を表示します。

  5. パラメタ数

  6. PARAMxxxx:xxxx番目のパラメタ
    ATTRIBUTE:データ属性

  7. データ長(バイト数)

  8. データの値
    注)整数以外は、16進数で表示します。

  9. アプリケーションからの復帰時間

  10. アプリケーションからの復帰時の情報

  11. 復帰値

  12. アプリケーションの復帰時のパラメタ
    注)タイプがout/inoutのパラメタ情報を表示します。


  属性別のパラメタ情報の出力例については、“B.1 パラメタ情報の出力例”を参照してください。

  採取できるログファイルは、以下の2種類です。

  それぞれについて以下に示します。


ファイル出力形式

  ワークユニット単位のロギング情報をファイルに取得します。ワークユニットの起動から停止までの範囲で取得し、開発初期時のアプリケーションのデバッグを目的とします。ワークユニット定義では、スナップショットの取得指定を定義することにより取得されます。
  ロギング情報は、以下に出力されます。

格納パス
ワークユニット定義のスナップショット出力パスで指定されたディレクトリ

注)スナップショット出力パスを指定していない場合は、カレントディレクトリ配下に出力されます。ワークユニット定義の定義方法については、“OLTPサーバ運用ガイド”を参照してください。

ファイル名
取得するワークユニット名.アプリケーションの実行プロセスID

メモリ出力形式

  ワークユニット単位のロギング情報をメモリに取得します。
  以下の5つのコマンドを使用してロギング情報を取得します。各コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。


tdstartsnapコマンド

  ロギング情報の取得を開始します。
  本コマンド実行時は、ロギング情報を取得するワークユニットが起動されている必要があります。


tdstopsnapコマンド

  ロギング情報の取得を終了します。
  本コマンドは、ロギング情報を取得するワークユニットを停止する前に実行してください。本コマンドを実行する前に取得対象のワークユニットを停止した場合、ワークユニットの停止と同時にスナップショットの取得も終了されます。


tdformsnapコマンド

  メモリに蓄積されたロギング情報をファイルに出力します。本コマンドは、ロギング情報の取得を終了させてから投入してください。
  ロギング情報は、以下に出力されます。

格納パス

本コマンド実行時のカレントディレクトリ

ファイル名

取得するワークユニット名.コマンドの実行プロセスID

tdlistwusnapコマンド

  メモリに取得されたロギング情報のワークユニット一覧を表示します。


tdfreesnapコマンド

  メモリからロギング情報を削除します。

  メモリには、ワークユニット単位固定で取得情報が格納されます。このため、メモリ不足が発生した場合、同一ワークユニット内の古い情報に上書きされます。

  ロギング情報が取得可能なワークユニット数を以下に示します。

システム規模

ロギングできるワークユニット数

SMALL

8

MODERATE

16

LARGE

24

SUPER

32


  実際のロギング情報の取得手順を以下に示します。



  1. サーバアプリケーションが動作中であることを確認し、tdstartsnapコマンドを使用してロギング情報の取得を開始します。

  2. 目的のロギング情報の取得完了後、tdstopsnapコマンドを使用してロギング情報の取得を終了します。

  3. tdformsnapコマンドを使用して取得したロギング情報を表示します。本ロギング情報により、サーバアプリケーションのインタフェースを確認します。

  4. tdfreesnapコマンドを使用して、ロギング情報の取得のために獲得した領域(共有メモリ)を解放します。


運用環境への移行

  開発環境でテストした資源を運用環境へ移行するための作業手順、および運用環境でのテスト方法について説明します。


クライアント資源の移行手順

  クライアント資源は、サーバ資材を移行してサーバアプリケーションがコンパイルされるまでに移行します。


サーバ資源の移行手順

  サーバ資源を運用環境に移行する手順について、以下に示します。


運用環境におけるテスト

  開発環境では、各モジュールの単体テストを行いますが、運用環境では、システム全体として以下のテストを行う必要があります。

  それぞれのテスト方法について、以下に示します。


システム負荷テスト

  システム負荷テストでは、業務を遂行するため、システム上のすべてのコンポーネントを含めたテストを行います。システム負荷は、システムへのデータ入力の頻度(呼量と呼びます)をあげて、高くします。たとえば、多数のCORBAクライアントから入力する場合、CORBAクライアントを高速なマシン上で動作させると、呼量が増加して負荷を高くできます。また、Web連携の負荷は、WebStoneなどをSolaris/Linuxサーバに設定し、同様に呼量を増加させて、高くします。


業務に沿った運用テスト

  業務に沿った運用テストでは、実際の業務を想定したテストを行い、システムとして運用に問題がないかを確認します。したがって、システムで利用する製品・業務アプリケーションのすべてを動作させます。たとえば、受注業務の運用テストを行う場合、受注業務で利用する全製品・アプリケーションを動作させて、受注業務の開始/終了、データ入力とその処理などを行います。


業務に則した性能テスト

  性能テストでは、業務運用中の性能について測定し、問題がないかを確認します。