(57)【要約】【課題】ＤＢを参照するソフトウェアテストの際に、ＤＢのテストデータが不足せず、かつ並列実行可能なテストの実行手順を生成する。【解決手段】データベースにアクセスするソフトウェアのテストの実行順序を生成するテスト実行順序生成装置は、前記ソフトウェアのテストを構成する複数のテストケース毎にテストを実施するソフトウェアの機能を予め設定したテストケース記述書と、ソフトウェアの機能毎にアクセスする前記データベースのテーブルと、当該テーブルに対する操作の種類を予め設定したＣＲＵＤ図と、テストケース記述書とＣＲＵＤ図を受け付けてテストケース毎に、アクセス対象となるテーブルと操作の種類とを含むテーブル処理情報を出力するテーブル処理情報出力部と、テーブル処理情報を受け付けてＣＲＵＤ図に基づいてテストケース毎に実行順序を決定するテストケース実行順序出力部と、を有する。【選択図】図３
2019125042.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを有し、データベースにアクセスするソフトウェアのテストの実行順序を生成するテスト実行順序生成装置であって、
前記ソフトウェアのテストを構成する複数のテストケースについて、前記ソフトウェアの機能のうち、テストを実施する１以上の機能を予め設定したテストケース記述書と、
前記ソフトウェアの機能毎にアクセスする前記データベースのテーブルと、当該テーブルに対する操作の種類を予め設定したＣＲＵＤ図と、
前記テストケース記述書とＣＲＵＤ図を受け付けて、前記テストケース毎に、アクセス対象となる１以上のテーブルと、操作の種類とを含むテーブル処理情報を出力するテーブル処理情報出力部と、
前記テーブル処理情報を受け付けて、前記ＣＲＵＤ図に基づいてテストケース毎に実行順序を決定するテストケース実行順序出力部と、を有することを特徴とするテスト実行順序生成装置。
【請求項２】
請求項１に記載のテスト実行順序生成装置であって、
前記テストケース実行順序出力部が決定したテストケースの実行順序に基づいて、実行順序を示す実行番号に１以上のテストケースを割り当てて、テストケースの実行順序の表示画面を生成するテスト実行フロー出力部を、さらに有することを特徴とするテスト実行順序生成装置。
【請求項３】
請求項１に記載のテスト実行順序生成装置であって、
前記ＣＲＵＤ図は、
前記ソフトウェアが有する機能と、前記機能がアクセスする前記テーブルと、前記機能がテーブルに対して実施する操作の種類が予め設定されたことを特徴とするテスト実行順序生成装置。
【請求項４】
請求項３に記載のテスト実行順序生成装置であって、
前記テストケース実行順序出力部は、
前記テストケースを前記テーブルに対する操作の種類で分類し、前記分類の結果に基づいてテストケースの実行順序を決定することを特徴とするテスト実行順序生成装置。
【請求項５】
請求項４に記載のテスト実行順序生成装置であって、
前記テストケース実行順序出力部は、
前記テーブルに対する操作の種類がレコードの生成のみのテストケースを最初に実行させることを特徴とするテスト実行順序生成装置。
【請求項６】
プロセッサとメモリを有する計算機が、データベースにアクセスするソフトウェアのテストの実行順序を生成するテスト実行順序生成方法であって、
前記計算機が、前記ソフトウェアのテストを構成する複数のテストケースについて、前記ソフトウェアの機能のうち、テストを実施する１以上の機能を予め設定したテストケース記述書を受け付ける第１のステップと、
前記計算機が、前記ソフトウェアの機能毎にアクセスする前記データベースのテーブルと、当該テーブルに対する操作の種類を予め設定したＣＲＵＤ図を受け付ける第２のステップと、
前記計算機が、前記テストケース記述書と、前記ＣＲＵＤ図から、前記テストケース毎に、アクセス対象となる１以上のテーブルと、操作の種類とを含むテーブル処理情報を生成する第３のステップと、
前記計算機が、前記ＣＲＵＤ図に基づいて、前記テーブル処理情報から、テストケース毎に実行順序を決定する第４のステップと、
を含むことを特徴とするテスト実行順序生成方法。
【請求項７】
請求項６に記載のテスト実行順序生成方法であって、
前記計算機が、前記テストケースの実行順序に基づいて、実行順序を示す実行番号に１以上のテストケースを割り当てて、テストケースの実行順序の表示画面を生成する第５のステップを、
さらに含むことを特徴とするテスト実行順序生成方法。
【請求項８】
請求項６に記載のテスト実行順序生成方法であって、
前記ＣＲＵＤ図は、
前記ソフトウェアが有する機能と、前記機能がアクセスする前記テーブルと、前記機能がテーブルに対して実施する操作の種類が予め設定されたことを特徴とするテスト実行順序生成方法。
【請求項９】
請求項８に記載のテスト実行順序生成方法であって、
前記第４のステップは、
前記テストケースを前記テーブルに対する操作の種類で分類し、前記分類の結果に基づいてテストケースの実行順序を決定することを特徴とするテスト実行順序生成方法。
【請求項１０】
請求項９に記載のテスト実行順序生成方法であって、
前記第４のステップは、
前記テーブルに対する操作の種類がレコードの生成のみのテストケースを最初に実行させることを特徴とするテスト実行順序生成方法。
【請求項１１】
プロセッサとメモリを有する計算機で、データベースにアクセスするソフトウェアのテストの実行順序を生成させるためのプログラムを格納した記憶媒体であって、
前記ソフトウェアのテストを構成する複数のテストケースについて、前記ソフトウェアの機能のうち、テストを実施する１以上の機能を予め設定したテストケース記述書を受け付ける第１のステップと、
前記ソフトウェアの機能毎にアクセスする前記データベースのテーブルと、当該テーブルに対する操作の種類を予め設定したＣＲＵＤ図を受け付ける第２のステップと、
前記テストケース記述書と、前記ＣＲＵＤ図から、前記テストケース毎に、アクセス対象となる１以上のテーブルと、操作の種類とを含むテーブル処理情報を生成する第３のステップと、
前記ＣＲＵＤ図に基づいて、前記テーブル処理情報から、テストケース毎に実行順序を決定する第４のステップと、
を前記計算機に実行させるためのプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
【請求項１２】
請求項１１に記載の記憶媒体であって、
前記テストケースの実行順序に基づいて、実行順序を示す実行番号に１以上のテストケースを割り当てて、テストケースの実行順序の表示画面を生成する第５のステップを、
さらに含むことを特徴とする記憶媒体。
【請求項１３】
請求項１１に記載の記憶媒体であって、
前記ＣＲＵＤ図は、
前記ソフトウェアが有する機能と、前記機能がアクセスする前記テーブルと、前記機能がテーブルに対して実施する操作の種類が予め設定されたことを特徴とする記憶媒体。
【請求項１４】
請求項１３に記載の記憶媒体であって、
前記第４のステップは、
前記テストケースを前記テーブルに対する操作の種類で分類し、前記分類の結果に基づいてテストケースの実行順序を決定することを特徴とする記憶媒体。
【請求項１５】
請求項１４に記載の記憶媒体であって、
前記第４のステップは、
前記テーブルに対する操作の種類がレコードの生成のみのテストケースを最初に実行させることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアテストにおけるテスト実行順序生成装置及びテスト実行手順生成プログラムに関する。
【背景技術】
【０００２】
ＩＴシステムのテストフェーズでは、テスト対象の計算機システムがデータベース（以下ＤＢ）上のテストデータを参照するテストケースが存在する。テスト対象が新規開発の計算機システムであった場合などは、ＤＢにデータがなく、ＤＢを参照するテストを実行できない場合がある。
【０００３】
ＤＢのテストデータを事前に生成する場合、テスト対象システムの有識者が人手でデータを生成しなければならないため、膨大な作業コストがかかる。ＩＴシステムの設計フェーズで生成されるＣＲＵＤ図は、設計対象の計算機システムが有する各機能がアクセスして処理（データ生成（Ｃ）、読込（Ｒ）、更新（Ｕ）、削除（Ｄ））を行うＤＢ上のテーブルを表す。ＣＲＵＤ図を解析してＤＢデータの不足をなくして計算機システムの機能を実行するシステムフロー図を生成する方法が特許文献１に記載される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２６２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、ＣＲＵＤ図から設計対象の計算機システムが有する各機能の実行順序を表すシステムフロー図を生成する。一方、ＤＢにアクセスするアプリケーションのテストフェーズでは、テスト対象が有する各機能のそれぞれに対して複数のテストケースを有する。また、複数の機能を単一のテストケースの中で使用する場合がある。
【０００６】
特許文献１は機能ごとの実行順序を前提としたフロー（手順）を生成するため、同一機能を複数のテストケースでテストを行う場合などの並列的なテストケースの実行手順を生成することができない、という問題があった。
【０００７】
そこで本発明は、上記問題点に鑑みてなされたもので、ＤＢを参照するソフトウェアテストを実行する際、ＤＢ上のテストデータが不足せず、かつ並列実行可能なテストケースの実行手順を生成する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、プロセッサとメモリを有し、データベースにアクセスするソフトウェアのテストの実行順序を生成するテスト実行順序生成装置であって、前記ソフトウェアのテストを構成する複数のテストケースについて、前記ソフトウェアの機能のうち、テストを実施する１以上の機能を予め設定したテストケース記述書と、前記ソフトウェアの機能毎にアクセスする前記データベースのテーブルと、当該テーブルに対する操作の種類を予め設定したＣＲＵＤ図と、前記テストケース記述書とＣＲＵＤ図を受け付けて、前記テストケース毎に、アクセス対象となる１以上のテーブルと、操作の種類とを含むテーブル処理情報を出力するテーブル処理情報出力部と、前記テーブル処理情報を受け付けて、前記ＣＲＵＤ図に基づいてテストケース毎に実行順序を決定するテストケース実行順序出力部と、を有する。
【発明の効果】
【０００９】
本発明によれば、ＤＢデータをあらかじめ人手で生成することなく、並列実行可能なテストケースの実行手順を生成できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例を示し、テストケースを実行する計算機システムの一例を示すブロック図である。
【図２】本発明の実施例を示し、設計情報管理サーバの一例を示すブロック図である。
【図３】本発明の実施例を示し、設計情報管理サーバで行われる処理の一例を示す図である。
【図４】本発明の実施例を示し、テストケース記述書の一例を示す図である。
【図５】本発明の実施例を示し、ＣＲＵＤ図の一例を示す図である。
【図６】本発明の実施例を示し、テストケース／テーブル処理情報の一例を示す図である。
【図７】本発明の実施例を示し、テストケース／テーブル処理情報出力部で行われる処理の一例を示すフローチャートである。
【図８】本発明の実施例を示し、設計書取込画面の一例を示す図である。
【図９】本発明の実施例を示し、テストケース実行順序出力部で行われる処理の一例を示すフローチャートの前半部である。
【図１０】本発明の実施例を示し、テストケース実行順序出力部で行われる処理の一例を示すフローチャートの中間部である。
【図１１】本発明の実施例を示し、テストケース実行順序出力部で行われる処理の一例を示すフローチャートの後半部である。
【図１２】本発明の実施例を示し、テスト実行フロー表示画面の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を添付図面に基づいて説明する。
【００１２】
図１は、本発明の実施例を示し、ソフトウェアのテストを実施する計算機システムの一例を示すブロック図である。本実施例では、テスト対象のソフトウェアとして、データベースのテーブルに対してアクセスを行うアプリケーションについてテストを実施する例を示す。
【００１３】
ネットワーク８には、１以上のテーブルを含むデータベース（以下ＤＢ）７を管理するデータベースサーバ（以下ＤＢサーバ）５と、ＤＢサーバ５のテーブルにアクセスするアプリケーション４を有するアプリケーションサーバ３と、アプリケーション４のテストを実施する複数のクライアント端末２と、複数のクライアント端末２へテストケースの実行順序を通知する設計情報管理サーバ１が接続される。テストケースは、ソフトウェアのテストを構成するテスト単位である。
【００１４】
ＤＢサーバ５は、１以上のテーブルを含むＤＢ７と、データベース７を管理するＤＢＭＳ（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）６を有する。アプリケーションサーバ３のアプリケーション４は、ＤＢＭＳ６にアクセスを要求してＤＢ７のテーブルにアクセスさせる。
【００１５】
本実施例のテストでは、複数のクライアント端末２が並列的にアプリケーション４にアクセスするテストケースを含む。このため、ＤＢ７にデータがない状態でテストケースが実行されるのを防ぐため、設計情報管理サーバ１がテストケースの実行順序を生成してクライアント端末２へ通知する。
【００１６】
設計情報管理サーバ１は、アプリケーション４がＤＢサーバ５のテーブルに対して実施するアクセスの内容を示すＣＲＵＤ図３１と、アプリケーション４に対するテストの内容を定義するテストケース記述書３２を受け付けて、テストケースの実行順序を算出し、クライアント端末２へ通知する。設計情報管理サーバ１は、テストケースの実行順序を算出するためにテストケース／テーブル処理情報３３を生成する。
【００１７】
複数のクライアント端末２は、設計情報管理サーバ１から受信した実行順序に基づいてテストケースを実施する。本実施例では、クライアント端末２を利用するテストの担当者（以下、担当者とする）が、設計情報管理サーバ１から受信した実行順序に従ってテストケースを実行する例を示す。
【００１８】
クライアント端末２は、マウスやキーボードやタッチパネル等の入力装置（図示省略）と、ディスプレイなどの出力装置（図示省略）を含む計算機である。クライアント端末２は、アプリケーション４をテストするソフトウェアとして、例えば、ブラウザを実行する。
【００１９】
なお、本実施例のテストケースとは、アプリケーション４の機能をテストする単位を示す。ひとつのテストケースには、アプリケーション４の１以上の機能をテストする処理が含まれる。テストの処理内容としては、例えば、アプリケーション４に対する指令や、アプリケーション４がＤＢ７のテーブルに読み書きする情報等が含まれる。本実施例のソフトウェアのテストでは、複数のクライアント端末２が、アプリケーション４のひとつの機能を並列的に使用してテストを実行することが許容される。
【００２０】
図２は、設計情報管理サーバ１の一例を示すブロック図である。設計情報管理サーバ１は、プロセッサ１１と、メモリ１２と、ストレージ装置１３と、ネットワークインタフェース１４と、入出力装置１５を含む。
【００２１】
ストレージ装置１３には、データやプログラムが格納される。ネットワークインタフェース１４はネットワーク８に接続される。入出力装置１５は、マウスやキーボードやタッチパネル等の入力装置と、ディスプレイなどの出力装置が含まれる。
【００２２】
メモリ１２には、テストケース実行順序生成部２０がロードされてプロセッサ１１によって実行される。また、メモリ１２には、テストケース実行順序生成部２０が利用する設計情報３０として、ＣＲＵＤ図３１と、テストケース記述書３２と、テストケース／テーブル処理情報３３が格納される。
【００２３】
また、メモリ１２には、テストケース実行順序生成部２０が利用する作業用領域として、削除リスト４１と、読込更新リスト４２と、生成テーブルリスト４３と、生成済みリスト４４と、生成読込更新テーブルリスト４５が生成される。
【００２４】
テストケース実行順序生成部２０はプログラムとしてメモリ１２にロードされる。プロセッサ１１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ１１は、テストケース実行順序生成プログラムに従って処理することでテストケース実行順序生成部２０として機能する。他のプログラムについても同様である。さらに、プロセッサ１１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００２５】
テストケース実行順序生成部２０の各機能を実現するプログラム、テーブル等の情報は、ストレージ装置１３や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００２６】
図３は、設計情報管理サーバ１で行われる処理の一例を示す図である。設計情報管理サーバ１のテストケース実行順序生成部２０は、図３に示すテストケース／テーブル処理情報出力部２１と、テストケース実行順序出力部２２と、テスト実行フロー出力部２３と、を含む。
【００２７】
テストケース実行順序生成部２０は、まず、テストケース／テーブル処理情報出力部２１で設計書取込画面１００を生成してクライアント端末２へ送信する。クライアント端末２では、設計書取込画面１００を介してテスト対象のアプリケーション４のＣＲＵＤ図３１と、テストケース記述書３２を選択して、設計情報管理サーバ１へ送信する。
【００２８】
テストケース実行順序生成部２０のテストケース／テーブル処理情報出力部２１は、図４に示すテストケース記述書１０１及び図５に示すＣＲＵＤ図３１を入力することで、図６に示すテストケース／テーブル処理情報３３を出力する。
【００２９】
図４は、テストケース記述書３２の一例を示す図である。テストケース記述書３２は、アプリケーション４のテスト計画段階で人手により生成される情報である。
【００３０】
テストケース記述書３２は、番号３２１と、各テストケースの識別子を納するテストケースＩＤ３２２と、テスト対象機能３２３と、確認日（各テストケースを実行した日付）３２４と、担当者（各テストケースの実行担当者）３２５と、結果（テスト結果のＯＫ／ＮＧ）３２６をひとつのエントリに含む。
【００３１】
テスト対象機能３２３は、アプリケーション４の機能のうち、テストを行う機能が定義される。ひとつのテストケースＩＤ３２２には、複数の機能を設定することができる。また、複数の機能を含むテスト対象機能３２３では、図中上方から下方へ向かう順序でテストを実施するものとする。また、番号３２１は、テストケース／テーブル処理情報出力部２１が付与したシリアル値である。
【００３２】
例えば、番号３２１＝４のテストケースでは、テスト対象機能３２３として複数の機能が含まれており、上段に「顧客登録」が格納され、下段に「顧客削除」が含まれる。この例では、図中上方の「顧客登録」を実行してから、図中下方の「顧客削除」を実行することを示す。
【００３３】
図５は、ＣＲＵＤ図３１の一例を示す図である。ＣＲＵＤ図３１はテスト対象のアプリケーション４の設計フェーズにて人手で生成される情報である。ＣＲＵＤ図３１は、アプリケーション４が有する各機能と、各機能がアクセスするＤＢ７のテーブル名（または識別子）と、各機能がテーブルに対して実施する操作の内容を予め設定した情報である。
【００３４】
ＣＲＵＤ図３１は、対象機能３１１と、顧客マスタ３１２と、商品マスタ３１３と、注文テーブル３１４をひとつのエントリに含む。対象機能３１１は、アプリケーション４の機能と、ＤＢ７のテーブルに対する操作を、Ｃ（Create）：生成、Ｒ（Read）：読込、Ｕ（Update）：更新、Ｄ（Delete）：削除で示す。
【００３５】
図示の例では、３つのテーブル（顧客マスタ３１２〜注文テーブル３１４）に対してアクセスする例を示したが、アプリケーション４がアクセスするＤＢ７のテーブルの数に応じてＣＲＵＤ図３１のカラムを設定することができる。顧客マスタ３１２〜注文テーブル３１４のフィールドがブランクの場合は、該当する対象機能３１１によるアクセスがないことを示す。
【００３６】
また、図示の例では、顧客マスタ３１２のテーブルＩＤが「００１」、商品マスタ３１３のテーブルＩＤが「００２」、注文テーブル３１４のテーブルＩＤが「００３」の例を示す。
【００３７】
テストケース／テーブル処理情報出力部２１は、後述するように、図７に示すフローチャートを実行して図６に示すテストケース／テーブル処理情報３３を出力する。
【００３８】
図６は、テストケース／テーブル処理情報３３の一例を示す図である。テストケース／テーブル処理情報３３は、Ｎｏ．３３１と、テストケースＩＤ３３２と、テーブル処理情報３３３をひとつのエントリに含む。
【００３９】
Ｎｏ．３３１は、テストケース／テーブル処理情報出力部２１が付与したシリアル値（整数）である。テストケースＩＤ３３２は、テストケース記述書３２に記載されたテストケースＩＤ３２２が対応する。
【００４０】
テーブル処理情報３３３は、テストケース毎に使用するＤＢ７のテーブルのＩＤと、ＤＢ７のテーブルに対する操作の種類を「Ｃ」、「Ｒ」、「Ｕ」、「Ｄ」で示す。ひとつのテストケースＩＤ３２２には、複数のテーブルのＩＤと操作の種類を格納することができる。
【００４１】
図３において、テストケース実行順序生成部２０のテストケース実行順序出力部２２は、テストケース／テーブル処理情報３３を入力して、後述する図９〜図１１のフローチャートの処理を実行し、テストケースＩＤ毎に実行順序を生成する。
【００４２】
そして、テストケース実行順序生成部２０のテスト実行フロー出力部２３は、テストケース実行順序出力部２２からの実行順序に基づいて図１２に示すテスト実行フロー表示画面１１０を生成してクライアント端末２へ送信する。
【００４３】
クライアント端末２では、設計情報管理サーバ１から受信したテスト実行フロー表示画面１１０を出力装置に表示して、担当者にアプリケーション４のテストの順序を通知することができる。
【００４４】
図８は、テストケース／テーブル処理情報出力部２１がクライアント端末２へ送信する設計書取込画面１００の一例を示す図である。クライアント端末２では、図８に示す設計書取込画面１００にてテーブル処理情報出力部２１に取り込むＣＲＵＤ図３１及びテストケース記述書３２を指定する。
【００４５】
設計書取込画面１００にはテストケース記述書３２及びＣＲＵＤ図３１が保存されているディレクトリの絶対パスを指定するフィールド１００１、１００２が表示され、クライアント端末２の担当者が、取込ボタン１００３を押下することでテーブル処理情報出力部２１へテストケース記述書３２及びＣＲＵＤ図３１が送信される。
【００４６】
図７は、テストケース／テーブル処理情報出力部２１で行われる処理の一例を示すフローチャートである。この処理は、設計書取込画面１００で指定されたテストケース記述書１０１及びＣＲＵＤ図３１が設計情報管理サーバ１へ入力されたときに実行される。
【００４７】
テストケース記述書３２及びＣＲＵＤ図３１が入力された後、テストケース／テーブル処理情報出力部２１は、テストケース記述書３２を解析して、テストケースＩＤ３２２と各テストケースＩＤのテスト対象機能３２３の一覧を取得する（ステップＳ１０１）。
【００４８】
テストケース／テーブル処理情報出力部２１は、取得したテスト対象機能３２３でＣＲＵＤ図３１を検索し、ヒットした対象機能３１１が処理するテーブルＩＤと処理内容を取得する（ステップＳ１０２）。
【００４９】
テストケース／テーブル処理情報出力部２１は、ＣＲＵＤ図３１から取得したテーブルＩＤと処理内容を基にテストケース／テーブル処理情報３３を生成する（ステップＳ１０３）。
【００５０】
例として、図４のテストケース記述書３２からテストケースＩＤ：ＪＫＫＡ０００１ＧＩＴＡ００１は「顧客登録」の機能をテストする。図５に示すＣＲＵＤ図３１から「顧客登録」の機能はテーブルＩＤ：００１でレコードを生成（Ｃ）している。
【００５１】
以上の情報からテストケース／テーブル処理情報出力部２１は、テストケースＩＤ：ＪＫＫＡ０００１ＧＩＴＡ００１のテストケース／テーブル処理情報３３のテーブル処理情報３３３として「００１＿Ｃ」を出力する。
【００５２】
テストケース／テーブル処理情報出力部２１は、以上の処理を図４のテストケース記述書３２に記載されている各テストケースＩＤ３２２に対して行い、図６のテストケース／テーブル処理情報３３を出力する。
【００５３】
テストケース実行順序出力部２２は、テーブル処理情報出力部２１から出力されたテストケース／テーブル処理情報３３を入力としてテストケース／テーブル処理情報３３に記載されているテストケースＩＤ３２２に、テストの実行番号を付与する。
【００５４】
図９〜図１１は、テストケース実行順序出力部２２で行われる処理の一例を示すフローチャートである。この処理は、テストケース／テーブル処理情報３３が入力されると開始される（ステップＳ２０１）。
【００５５】
テストケース実行順序出力部２２は、処理の開始時に作業領域となる削除リスト４１、読込更新リスト４２、生成テーブルリスト４３、生成済みリスト４４及び生成読込更新テーブルリスト４５を生成する。
【００５６】
テストケース実行順序出力部２２は、変数ｘ，ｙにｘ＝１，ｙ＝１を代入する（ステップＳ２０２）。なお、変数ｘは、テストケース/テーブル処理情報３３のＮｏ．３３１を指し示す。また、変数ｙは、テストケースＩＤ３３２の実行番号（または実行順序）を示す。
【００５７】
テストケース実行順序出力部２２は、入力されたテストケース／テーブル処理情報３３で変数ｘに対応するＮｏ．３１１の行（図中Ｎｏ．ｘ）のテーブル処理情報３３３に削除（Ｄ）が含まれるか否かを判定する（ステップＳ２０３）。削除（Ｄ）が含まれる場合には、ステップＳ２０４へ進みそうでない場合には、ステップＳ２１１へ進む。ステップＳ２０４ではテストケース実行順序出力部２２が、削除リスト４１に変数ｘを登録する（ステップＳ２０４）。
【００５８】
テストケース実行順序出力部２２は、削除リスト４１にｘを登録した後、図１０のステップＳ２０５へ進み、変数ｘの値がテストケース／テーブル処理情報３３のＮｏ．３３１の最大値でなければ、変数ｘに１を加算して（ステップＳ２０６）、次のＮｏ．３３１を設定してから図９のステップＳ２０３へ戻る。
【００５９】
テストケース実行順序出力部２２は、ステップＳ２０４で削除リスト４１に変数ｘを登録した後、図１０のステップＳ２０５の判定で、変数ｘがテストケースＩＤ／テーブル処理情報３３のＮｏ．３３１の最大値であればステップＳ２０７へ進む。Ｎｏ．３３１の最大値は、テストケースＩＤ／テーブル処理情報３３の最後の行に対応する。
【００６０】
テストケース実行順序出力部２２は、生成済みリスト４４と、読込更新リスト４２と、削除リスト４１に登録されている整数を取得してテストケース／テーブル処理情報３３のＮｏ．３１１と全て重複するか否かを判定する（ステップＳ２０７）。
【００６１】
テストケース実行順序出力部２２は、ステップＳ２０７の判定の結果、Ｎｏ．３１１と各リストの値が全て重複する場合、図１１のステップＳ２０８、ステップＳ２０９、ステップＳ２２３を実行した後、処理を終了する。
【００６２】
ステップＳ２０８では、テストケース実行順序出力部２２が、読込更新リスト４２に登録されている整数を、テストケース／テーブル処理情報のＮｏ．３１１に対応するテストケースＩＤ３３２に実行番号ｙ＝ｙ＋２を付与する。
【００６３】
ステップＳ２０９では、テストケース実行順序出力部２２が、削除リスト４１に登録されている整数を、テストケース／テーブル処理情報３３のＮｏ．３３１に対応するテストケースＩＤ３３２に実行番号ｙ＝ｙ＋３を付与する。
【００６４】
ステップＳ２２３では、テストケース実行順序出力部２２が、実行番号ｙ毎に割り当てたられたテストケースＩＤ３３２をテストケース／実行順序情報としてテスト実行フロー出力部２３に出力する（ステップＳ２２３）。その後、テストケース実行順序出力部２２は、処理を終了する。なお、テストケース／実行順序情報は、図１２に示すテスト実行フロー表示画面１１０と同じ内容である。
【００６５】
一方、ステップＳ２０７の判定の結果、重複しない整数が存在する場合、テストケース実行順序出力部２２は、重複しない整数のうち、最小の整数を変数ｘへ代入（ステップＳ２１０）した後に、ステップＳ２０３へ戻って上記処理を繰り返す。
【００６６】
図９のステップＳ２０３の判定の結果、変数ｘに対応するＮｏ．３１１のテーブル処理情報３３３に削除（Ｄ）が含まれない場合には、ステップＳ２１１へ進む。ステップＳ２１１では、テストケース実行順序出力部２２が、変数ｘに対応するＮｏ．３１１のテーブル処理情報３３３に読込（Ｒ）または更新（Ｕ）が含まれるか否かを判定する（ステップＳ２１１）。
【００６７】
ステップＳ２１１の判定の結果、変数ｘに対応するＮｏ．３１１のテーブル処理情報３３３が読込（Ｒ）若しくは更新（Ｕ）を含んでいなかった場合、テストケース実行順序出力部２２は、生成（Ｃ）のみであると判定してステップＳ２１２へ進む。
【００６８】
ステップＳ２１２では、テストケース実行順序出力部２２が変数ｘに対応するＮｏ．３１１のテストケースＩＤ３２２に実行番号１を付与する。次に、テストケース実行順序出力部２２は、変数ｘを生成済みリスト４４に登録する（ステップＳ２１３）。その後、テストケース実行順序出力部２２がステップＳ２１４を実行して変数ｙに１を加算する。次に図１０のステップＳ２０５の処理へ進む。
【００６９】
一方、図９のステップＳ２１１の判定の結果、変数ｘに対応するＮｏ．３１１のテーブル処理情報３３３が読込若しくは更新を含んでいた場合、テストケース実行順序出力部２２は、ステップＳ２１５に進んで、生成（Ｃ）を含むか否かを判定する。
【００７０】
ステップＳ２１５の判定の結果、変数ｘに対応するＮｏ．３１１のテーブル処理情報３３３が生成（Ｃ）を含んでいなかった場合、テストケース実行順序出力部２２はステップＳ２１６に進んで、変数ｘを読込更新リスト４２へ登録する。その後テストケース実行順序出力部２２は、ステップＳ２０５を実行する。
【００７１】
一方、ステップＳ２１５の判定の結果、変数ｘに対応するＮｏ．３１１のテーブル処理情報３３３が生成（Ｃ）を含む場合には、テストケース実行順序出力部２２がステップＳ２１７を実行する。
【００７２】
ステップＳ２１７では、テストケース実行順序出力部２２が、先ず変数ｙ以下の実行番号を付与されたテストケースＩＤ３３２のテーブル処理情報３３３を取得する。次に、テストケース実行順序出力部２２は、取得したテーブル処理情報３３３の中で生成（Ｃ）の対象となるＤＢ７のテーブルＩＤを取得し、生成テーブルリスト４３に書き込む。
【００７３】
生成テーブルリスト４３には、アプリケーション４がレコードを生成するＤＢ７のテーブルＩＤが登録される。なお、生成テーブルリスト４３が削除されていた場合には、テストケース実行順序出力部２２が生成テーブルリスト４３を生成する。
【００７４】
次に、ステップＳ２１８では、テストケース実行順序出力部２２が、変数ｘに対応するＮｏ．３１１のテーブル処理情報３３３を取得し、読込（Ｒ）または更新（Ｕ）されるＤＢ７のテーブルＩＤを、生成読込更新テーブルリスト４５に書き込む。なお、生成読込更新テーブルリスト４５が削除されていた場合には、テストケース実行順序出力部２２が生成読込更新テーブルリスト４５を生成する。
【００７５】
次に、図１０のステップＳ２１９では、テストケース実行順序出力部２２が、生成読込更新テーブルリスト４５内の全テーブルＩＤが生成テーブルリスト４３内に存在するか否かを判定する。
【００７６】
ステップＳ２１９の判定の結果がｎｏであった場合、ステップＳ２０５を実行する。一方、ステップＳ２１９の判定の結果がｙｅｓであった場合、テストケース実行順序出力部２２は、変数ｘに対応するＮｏ．３１１のテストケースＩＤ３３２に実行番号ｙ＝ｙ＋１を付与し、変数ｘを生成済みリスト４４に登録（ステップＳ２２０）し、変数ｙに１加算した後（ステップＳ２２１）、実行順序が確定した生成読込更新テーブルリスト４５及び生成テーブルリストを削除する（ステップＳ２２２）。その後、テストケース実行順序出力部２２は、ステップＳ２０５を実行する。
【００７７】
以上の図９〜図１１の処理によって、テストケース実行順序出力部２２は、テストケースＩＤ／テーブル処理情報３３のテーブル処理情報３３３に含まれるテーブルへの操作（Ｃ、Ｒ、Ｕ、Ｄ）に応じて各リスト（削除リスト４１〜生成読込更新テーブルリスト４５）を生成する。そして、テストケース実行順序出力部２２は、操作の種類に応じて分類した各リスト内のテストケースＩＤ３３２に実行番号ｙを割り当てて、テストケースの実行順序を決定してテストケース／実行順序情報を出力する。
【００７８】
テストケース実行順序出力部２２は、ひとつの実行番号ｙに複数のテストケースＩＤ３３２を割り当てることができるので、ＤＢ７上のテストデータが不足せず、かつ並列実行可能なテストケースの実行手順を生成することが可能となる。
【００７９】
次に、図３に示すテスト実行フロー出力部２３ではテストケース実行順序出力部２２が出力したテストケース／実行順序情報を入力として、図１２に示すテスト実行フロー表示画面１１０を生成してクライアント端末２へ送信する。
【００８０】
図１２は、テスト実行フロー表示画面１１０の一例を示す図である。テスト実行フロー表示画面１１０は、実行番号を表示する領域１１０１と、実行番号に対応するテストケースＩＤを表示する領域１１０２を含む。クライアント端末２の出力装置には、テスト実行フロー表示画面１１０が表示される。
【００８１】
テスト実行フロー表示画面１１０の領域１１０２で各枠にはテストケース実行順序出力部２２にて等しい実行順序を付与されたテストケースＩＤが表示されている。領域１１０２では、上から順に実行順序の小さいテストケースＩＤが表示されている。同じ実行番号に表示されているテストケースＩＤは並列実行可能であるテストケースＩＤである。
【００８２】
テスト実行フロー表示画面１１０では、テストケースＩＤの実行順序の上部に設計書取込日が表示される。この設計書取込日は、テストケース／テーブル処理情報が出力された日付が表示される。
【００８３】
クライアント端末２の担当者は、テスト実行フロー表示画面１１０の実行番号毎に割り当てられたテストケースＩＤのテストを並列的に実行することができる。テスト実行フロー表示画面１１０に表示されるテストケースＩＤの実行順序は、ＤＢ７のテーブルにデータを生成するテストケースＩＤを実行してから、当該テーブルを参照するテストケースＩＤを実行するようにスケジュールされる。
【００８４】
例えば、実行番号＝２のテストケースＩＤ＝ＪＫＫＡ０００１ＧＩＴＡ００７では、テーブルＩＤ＝００２にレコードを生成してから、テーブルＩＤ＝００１と００２を読み込んでテーブルＩＤ＝００３にレコードを生成する。テーブルＩＤ＝００１は、実行番号＝１のテストで既に生成されているので、ＤＢ７のテストデータが不足することはない。
【００８５】
そして、実行番号＝１や実行番号＝３では、複数のテストケースＩＤを並列的に実行するようスケジュールされる。これにより、アプリケーション４の機能を複数のクライアント端末２で並列的にテストすることが可能となって、テストの作業効率を向上させることが可能となる。
【００８６】
なお、本実施例では、クライアント端末２の利用者が、設計情報管理サーバ１から受信した実行順序に従ってテストケースを実行する例を示したが、これに限定されるものではなく、設計情報管理サーバ１がテストケースのスケジュールを生成してクライアント端末２へ通知してもよい。あるいは、設計情報管理サーバ１がテストケースの実行順序に従ったスクリプトを生成して各クライアント端末２へ配信しても良い。
【００８７】
また、上記実施例では、クライアント端末２がアプリケーション４についてテストを実施する例を示したが、これに限定されるものではなく、ミドルウェアなどに適用してもよい。
【００８８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【００８９】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００９０】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９１】
１  設計情報管理サーバ
２  クライアント端末
３  アプリケーションサーバ
４  アプリケーション
５  ＤＢサーバ
６  ＤＢＭＳ
７  ＤＢ
１１  プロセッサ
１２  メモリ
１３  ストレージ装置
２０  テストケース実行順序生成部
２１  テストケースＩＤ／テーブル処理情報出力部
２２  テストケース実行順序出力部
２３  テスト実行フロー出力部
３１  ＣＲＵＤ図
３２  テストケース記述書
３３  テストケースＩＤ／テーブル処理情報
【図１】
2019125042.tif 000003
【図２】
2019125042.tif 000004
【図３】
2019125042.tif 000005
【図４】
2019125042.tif 000006
【図５】
2019125042.tif 000007
【図６】
2019125042.tif 000008
【図７】
2019125042.tif 000009
【図８】
2019125042.tif 000010
【図９】
2019125042.tif 000011
【図１０】
2019125042.tif 000012
【図１１】
2019125042.tif 000013
【図１２】
2019125042.tif 000014