(57)【特許請求の範囲】
【請求項１】
テスト対象システムの動作確認テストの実行および管理を行うコンピュータにより構成されたテスト管理システムであって、
前記テスト対象システムに格納若しくは配置するテストデータおよびテスト内容を指定したテストシナリオを記憶するテスト資源記憶手段と、
このテスト資源記憶手段に記憶された前記テストデータを前記テスト対象システムに格納若しくは配置するテスト環境構築ジョブ、および前記テスト資源記憶手段に記憶された前記テストシナリオを用いてテストを実行するテストジョブを含む複数のジョブを組み合わせてこれらのジョブの実行順序を指定して形成されたジョブネットを記憶するジョブ記憶手段と、
このジョブ記憶手段に記憶された前記ジョブネットで指定されている実行順序に従って前記複数のジョブを連続実行するジョブ実行処理、前記複数のジョブのそれぞれを示す複数の図形を実行順序の通りに並べて画面表示するとともに各図形の中若しくはその近傍にジョブの名称および／またはジョブの内容を簡単に示す説明文を表示するジョブ図形表示処理、並びに、前記複数の図形を用いて実行中のジョブを示すテスト進捗表示処理を実行するジョブ実行手段と
を備えたことを特徴とするテスト管理システム。
【請求項２】
前記ジョブ記憶手段に記憶された前記ジョブネットのうち自動実行の対象として予め指定されているジョブネットの構成ジョブについて、前記テスト資源記憶手段に記憶された前記構成ジョブの実行に用いられる前記テストデータまたは前記テストシナリオが更新されたか否かを監視し、更新されたと判断した場合には、前記ジョブ実行手段による前記ジョブ実行処理を開始させる処理を実行するテスト自動実行手段を備えたことを特徴とする請求項１に記載のテスト管理システム。
【請求項３】
前記ジョブ記憶手段に記憶された前記ジョブネットをタイマー起動により実行するためのタイマー実行時刻を、前記ジョブネットの識別情報と関連付けて記憶する設定情報記憶手段と、
この設定情報記憶手段に記憶された前記タイマー実行時刻が到来したか否かを監視し、到来したと判断した場合には、到来した前記タイマー実行時刻に係る前記ジョブネットについて前記ジョブ実行手段による前記ジョブ実行処理を開始させる処理を実行するタイマー実行手段と
を備えたことを特徴とする請求項１または２に記載のテスト管理システム。
【請求項４】
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、前記テスト結果データとして前記テスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
前記テスト結果記憶手段に蓄積記憶された複数の前記テスト結果データを用いて、テスト時間帯および／またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果を画面表示若しくは印刷するか、または前記分析結果を保存した分析結果ファイルを、電子メールでテスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えたことを特徴とする請求項１〜３のいずれかに記載のテスト管理システム。
【請求項５】
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、前記テスト結果データとして前記テスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
前記テスト結果記憶手段に蓄積記憶された複数の前記テスト結果データを用いて、テスト時間帯および／またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、前記テスト自動実行手段により実行されるか、または前記テスト自動実行手段による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブの中で指定されている前記テスト自動実行手段による自動実行の対象とするための選択情報を解除するか、若しくは前記テスト自動実行手段による自動実行の対象として設定情報記憶手段に記憶されているジョブネット若しくはその構成ジョブの識別情報を無効にするか、または、前記テスト自動実行手段による自動実行の時間帯を避けた手動実行を指示する電子メール、若しくは前記テスト自動実行手段による実行で不具合が発生する旨を知らせて前記ジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えたことを特徴とする請求項２に記載のテスト管理システム。
【請求項６】
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、前記テスト結果データとして前記テスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
前記テスト結果記憶手段に蓄積記憶された複数の前記テスト結果データを用いて、テスト時間帯および／またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、前記タイマー実行手段により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブについて当該テスト担当者がタイマー設定を行おうとした際若しくは前記特定の夜間の時間帯へのタイマー設定を行おうとした際に、不具合が発生する旨を警告するタイマー設定時警告対象者情報として、当該テスト担当者の識別情報を前記設定情報記憶手段に記憶させるか、または、タイマー設定をせずに手動実行を指示する電子メール、若しくは前記タイマー実行手段による実行で不具合が発生する旨を知らせて前記ジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えたことを特徴とする請求項３に記載のテスト管理システム。
【請求項７】
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段により失敗と判定されたテストについての失敗の詳細情報を、ジョブネット若しくはその構成ジョブの識別情報と関連付けて課題記憶手段に記憶させる処理を実行する課題登録手段と、
失敗したテストに係るジョブネット若しくはその構成ジョブの実行に用いられる前記テストデータ若しくは前記テストシナリオを作成したアプリケーション開発者、および／または、失敗したテストに係るジョブネット若しくはその構成ジョブを作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを送信する処理を実行するテスト結果伝達手段と、
前記アプリケーション開発者の操作する開発者端末からネットワークを介して送信されてくる失敗原因の解析のための閲覧要求信号を受信し、閲覧要求に係るジョブネット若しくはその構成ジョブにより実行されたテストについての失敗の詳細情報を前記開発者端末に画面表示する処理を実行する課題管理手段と
を備えたことを特徴とする請求項１〜６のいずれかに記載のテスト管理システム。
【請求項８】
前記ジョブ記憶手段には、
複数のジョブを同時並行的に実行することを含むジョブの実行順序を指定して形成された並列処理を含むジョブネットが記憶され、
前記ジョブ実行手段は、
前記並列処理を含むジョブネットを実行する場合には、前記ジョブ実行処理として、前記並列処理の対象の複数のジョブを同時並行的に実行し、前記ジョブ図形表示処理として、前記並列処理の対象の複数のジョブを示す各図形をジョブネットの全体の流れを分岐させる状態で画面上に配置し、前記テスト進捗表示処理として、前記並列処理中の複数のジョブについて同時並行的に実行中であることを示す構成とされている
ことを特徴とする請求項１〜７のいずれかに記載のテスト管理システム。
【請求項９】
前記ジョブ実行手段は、
前記テスト進捗表示処理として、ジョブを示す図形の中またはその近傍に、当該ジョブの実行を開始した場合のジョブの実施時刻、当該ジョブの実行を終了した場合のジョブの実行に要した実行時間のうちの少なくとも一方を表示する構成とされている
ことを特徴とする請求項１〜８のいずれかに記載のテスト管理システム。
【請求項１０】
請求項１〜９のいずれかに記載のテスト管理システムとして、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト対象システムの動作確認テストの実行および管理を行うコンピュータにより構成されたテスト管理システムおよびプログラムに係り、例えば、分散系アプリケーションシステムの開発において継続的に実行されるテスト等に利用できる。
【背景技術】
【０００２】
一般に、分散系アプリケーションシステム等のような複雑または大規模なシステムの開発においては、ビルドやデプロイを含むテストを繰り返し行う継続的インテグレーション（ＣＩ：continuous integration）が実践されている。
【０００３】
従来、このような継続的インテグレーションを実現するために、一部のテストについては、テストツールを用いてテストの自動化を行っていた。また、テスト手順書を作成し、それに従ってテストを行うことにより、テスト担当者毎の手順のばらつきを抑え、テストの品質の均一化、テストの信頼性の向上を図っていた。
【０００４】
さらに、テストが失敗した場合には、失敗原因を解析するため、失敗の情報を人手により課題管理表に登録し、アプリケーションの修正等に役立てていた。
【０００５】
また、非常に多くのテスト結果（例えば、数千から数万のテスト結果）を用いて、テストの実行時間の分布解析やテストの成功率の算出等の分析を人手により行い、テスト結果を検証していた。そして、各テストの際に使用したテストデータや、テスト手順書等のドキュメント類の管理も人手により行っていた。
【０００６】
一方、近年では、継続的インテグレーションをサポートするソフトウェア（以下、ＣＩツールという。）を使用する傾向も強まってきている。例えば、ジェンキンス（Jenkins）と呼ばれるオープンソースのＣＩツールが開発されている。また、一部のテストの実行を自動化したツールも存在する（非特許文献１，２参照）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】日本ヒューレット・パッカード株式会社、“Quick Test Professional マニュアル”、［online］、同社ホームページ、［平成２７年５月２５日検索］、インターネット＜ＵＲＬ：http://h50146.www5.hp.com/doc/manual/openview/qtp.html＞
【非特許文献２】株式会社野村総合研究所、“Test Platform Package「てぷらぱ」”、［online］、同社ホームページ、［平成２７年５月２５日検索］、インターネット＜ＵＲＬ：http://teplapa.nri.co.jp/＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述したように、従来、一部のテストについては、テストツールを用いてテストの自動化を行っていたが、各テストツールは、単一のテストに対応したものであり、複数のテストを自動的に連続実行することはできなかった。従って、テストが完全に自動化されておらず、手作業で実行・確認をしているため、いわゆるヒューマンエラーが一定の確率で発生していた。また、それに伴う手戻りが発生し、開発対象のシステムの納期の遅延に繋がっていた。さらに、人手による作業であるため、一連のテストを繰り返し行うには、膨大な時間が必要であり、開発の全所要期間に対してテストの所要時間が占める割合は、かなり大きいものであった。そして、手動でテストを行っているので、時間や予算の都合上、十分なテストを行うことができないことも多々あった。
【０００９】
また、テスト手順書を作成し、これに従い、テストを実施していたが、人手による作業であるため、属人化が発生し、個人の技量によりテスト手順が異なってくる場合もあった。これに伴い、テストの品質や信頼性、さらにはシステムの開発効率が、複数のテスト担当者の個々人で異なってくることもあった。そして、人手による作業であるため、人事異動があるたびに、教育コストが発生するとともに、異動直後には、様々なトラブルが発生する傾向にあった。
【００１０】
さらに、テストが失敗した場合には、その都度、失敗の情報を人手により課題管理表に登録し、解析を行い、解析で得られた失敗事由を記載していたが、テストフェーズの前半では、多くの失敗が発生するため、膨大な件数の失敗の情報を手作業で課題管理していた。また、関連するエラーログ等を、課題登録とは別途にファイルサーバに配置し、紐付けを行っていた。しかし、課題登録や関連するエラーログ等の紐づけは負荷の高い作業であるため、十分に行われておらず、失敗事由の解析に時間がかかっていた。また、失敗に関する情報不足により解析できないケースも多々あった。
【００１１】
また、非常に多くのテスト結果（例えば、数千から数万のテスト結果）を用いて統計分析を行い、テスト結果を検証していたが、人手による分析作業であるため、負荷が高かった。そして、負荷が高い作業であるため、分析が行われないこともあった。さらに、各テストの際に使用したテストデータや、テスト手順書等のドキュメント類の管理も人手により行っていたので、各テストまたはそれらの成功・失敗の情報と、各テストの際に使用したテストデータやドキュメント類の紐付けが十分に行われていなかった。また、いつ、誰がテストを行ったのかも人手による管理となっていたので、同様に紐付けが十分に行われていなかった。このため、効果的な分析ができない、あるいは分析が十分に活かされないという事情があった。
【００１２】
本発明の目的は、テスト品質の均一化、納期の短縮、テスト担当者の作業負担の軽減を図ることができるテスト管理システムおよびプログラムを提供するところにある。
【課題を解決するための手段】
【００１３】
本発明は、テスト対象システムの動作確認テストの実行および管理を行うコンピュータにより構成されたテスト管理システムであって、
テスト対象システムに格納若しくは配置するテストデータおよびテスト内容を指定したテストシナリオを記憶するテスト資源記憶手段と、
このテスト資源記憶手段に記憶されたテストデータをテスト対象システムに格納若しくは配置するテスト環境構築ジョブ、およびテスト資源記憶手段に記憶されたテストシナリオを用いてテストを実行するテストジョブを含む複数のジョブを組み合わせてこれらのジョブの実行順序を指定して形成されたジョブネットを記憶するジョブ記憶手段と、
このジョブ記憶手段に記憶されたジョブネットで指定されている実行順序に従って複数のジョブを連続実行するジョブ実行処理、複数のジョブのそれぞれを示す複数の図形を実行順序の通りに並べて画面表示するとともに各図形の中若しくはその近傍にジョブの名称および／またはジョブの内容を簡単に示す説明文を表示するジョブ図形表示処理、並びに、複数の図形を用いて実行中のジョブを示すテスト進捗表示処理を実行するジョブ実行手段と
を備えたことを特徴とするものである。
【００１４】
ここで、「ジョブ記憶手段」は、ジョブネットを記憶し、「ジョブ実行手段」は、ジョブネットを構成する複数のジョブを連続実行する旨が記載されているが、本発明は、単体のジョブの記憶や実行を排除するものではなく、要するに、ジョブネットを記憶し、実行することができるようになっていればよい趣旨である。
【００１５】
このような本発明のテスト管理システムにおいては、ジョブ記憶手段により、ジョブネットを記憶することができ、ジョブ実行手段により、そのジョブネットを実行することができるので、テスト環境構築ジョブおよびテストジョブを含む複数のジョブを、指定した実行順序に従って連続実行することが可能となる。
【００１６】
このため、一連のテストについて、手作業が少なくなり、いわゆるヒューマンエラーの発生確率が抑制されるので、納期の短縮や、テスト担当者の作業負担の軽減を図ることが可能となる。
【００１７】
また、従来は手作業が多いことから、時間や予算の都合上、十分なテストを行うことができない場合も多々あったが、ジョブネットの構成ジョブの連続実行の実現により、そのような事態を回避可能となり、テストの品質や信頼性を高めることが可能となる。
【００１８】
さらに、従来のテストは、テスト手順書に従って行う人手による作業が多かったため、属人化が発生し、個人の技量によりテスト手順が異なってくる場合もあったが、ジョブネットの構成ジョブの連続実行の実現により、そのような属人化が抑制されるので、テストの品質や信頼性についての均質化が図られ、さらにはシステムの開発効率について個人間の差異が少なくなり、均一化が図られる。そして、人手による作業が少なくなることから、人事異動があるたびに教育コストが発生する、あるいは異動直後に様々なトラブルが発生するといった諸問題も解決することが可能となる。
【００１９】
また、ジョブ実行手段により、ジョブ図形表示処理、およびテスト進捗表示処理が行われるので、この可視化により、テスト担当者は、実行手順を含めたテストの全体的内容や、テストの進捗を画面上で容易に把握し、理解することが可能となるため、テスト担当者の確認や監視の負担が減り、これによってもテスト担当者の作業負担の軽減が図られる。
【００２０】
さらに、テストで使用するテストデータやテストシナリオは、テスト資源記憶手段に記憶され、ジョブ実行手段は、そこに記憶されたテストデータやテストシナリオを使用してテストを実施するので、従来のように特定のテスト担当者やアプリケーション開発者が、自分に関係するテストデータやテストシナリオを自分で保存・管理するという状況を解消することができる。このため、他の者、例えば、テスト担当やアプリケーション開発を引き継いだ者、一時的に交替する者等が、テスト資源記憶手段に記憶されているテストデータやテストシナリオを再利用して次回テストを実施することや、それらの更新作業を行うことが可能となるので、テスト準備にかかる時間と手間を大幅に削減することができ、テストの品質の標準化、信頼性の向上を図ることができるようになる。
【００２１】
そして、従来、一連のテストのうちの一部の工程について、テスト担当者が人手による操作で個別に起動して使用していた１つまたは複数のテストツール（単機能のテストロボット）を、ジョブネットを構成する１つまたは複数のテストジョブの実行により自動的に呼び出して起動させれば、任意の数の既存または新設のテストツールの自動連携を実現することが可能となる。
【００２２】
また、テスト管理システムを通してテストツール（単機能のテストロボット）を利用することで、実行したテストにおいて、どのテストツールを利用したのかをビルドの情報として記録しておけば、テスト管理システムにおける各テストツールの稼働状況を把握することが可能となる。このため、経済効果、投資対効果の測定が可能になり、その結果、利用状況に応じたテストツールの強化・改善等を行うことができるようになり、これらにより前記目的が達成される。
【００２３】
また、前述したテスト管理システムにおいて、
ジョブ記憶手段に記憶されたジョブネットのうち自動実行の対象として予め指定されているジョブネットの構成ジョブについて、テスト資源記憶手段に記憶された構成ジョブの実行に用いられるテストデータまたはテストシナリオが更新されたか否かを監視し、更新されたと判断した場合には、ジョブ実行手段によるジョブ実行処理を開始させる処理を実行するテスト自動実行手段を備えていることが望ましい。
【００２４】
このようにテスト自動実行手段を備えた構成とした場合には、アプリケーション等の更新に伴い、テストを自動実行することができるので、時間的制約や失念等によるテストの不実施を回避でき、十分なテストを行うことができるようになる。そして、この自動実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができるので、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができるようになる。
【００２５】
さらに、前述したテスト管理システムにおいて、
ジョブ記憶手段に記憶されたジョブネットをタイマー起動により実行するためのタイマー実行時刻を、ジョブネットの識別情報と関連付けて記憶する設定情報記憶手段と、
この設定情報記憶手段に記憶されたタイマー実行時刻が到来したか否かを監視し、到来したと判断した場合には、到来したタイマー実行時刻に係るジョブネットについてジョブ実行手段によるジョブ実行処理を開始させる処理を実行するタイマー実行手段と
を備えた構成とすることが望ましい。
【００２６】
このようにタイマー実行手段を備えた構成とした場合には、タイマー実行時刻の設定により、例えば、夜間等の就業時間外や、自己の外出時間帯等にテストを実施することが可能となる。また、このタイマー実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができる。このため、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができるようになる。
【００２７】
また、前述したテスト管理システムにおいて、
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、テスト結果データとしてテスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
テスト結果記憶手段に蓄積記憶された複数のテスト結果データを用いて、テスト時間帯および／またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果を画面表示若しくは印刷するか、または分析結果を保存した分析結果ファイルを、電子メールでテスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えた構成とすることが望ましい。
【００２８】
このようにテスト結果の統計分析を行い、その分析結果を表示、印刷、またはメール送信する構成とした場合には、従来のように非常に多くのテスト結果（例えば、数千から数万のテスト結果）について人手による分析作業を行う場合に比べ、作業負荷が減るので、十分な分析を行うことが可能となり、精度の高いテスト結果の検証を実現することができるようになる。
【００２９】
また、テスト結果登録手段により、テストの成否判定結果が、ビルドの情報（テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含む。）またはビルドの識別情報（ビルドの情報を紐付けるための情報）とともに、テスト結果データとしてテスト結果記憶手段に保存されるので、従来のように各テストの際に使用したテストデータやテスト手順書等のドキュメント類の管理を人手により行っていた場合に比べ、各テストまたはそれらの成功・失敗の情報と、各テストの際に使用したテストデータやテストシナリオとの紐付けを十分に行うことができるようになる。また、いつ、誰がテストを行ったのかについても、従来のように人手により管理していた場合に比べ、紐付けを十分に行うことができるようになる。このため、効果的な分析を実現し、分析結果を十分に活かすことが可能となる。
【００３０】
さらに、テスト結果記憶手段に記憶させるテスト結果データは、テスト結果登録手段により自動的に作成され、登録されるものであり、人手によるデータ登録作業ではないので、登録内容について各テスト担当者間のばらつきや毎回のばらつきが生じることはなく、一様な表現が可能となり、標準化することが可能となる。このため、テスト網羅性の向上やレビュー精度の向上が期待できるようになる。また、テスト結果登録手段によるテスト結果データの自動登録により、テスト担当者が人手による登録作業を行う場合の手間や時間を省略することが可能となる。
【００３１】
また、前述したテスト自動実行手段を備えた構成とした場合において、
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、テスト結果データとしてテスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
テスト結果記憶手段に蓄積記憶された複数のテスト結果データを用いて、テスト時間帯および／またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、テスト自動実行手段により実行されるか、またはテスト自動実行手段による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブの中で指定されているテスト自動実行手段による自動実行の対象とするための選択情報を解除するか、若しくはテスト自動実行手段による自動実行の対象として設定情報記憶手段に記憶されているジョブネット若しくはその構成ジョブの識別情報を無効にするか、または、テスト自動実行手段による自動実行の時間帯を避けた手動実行を指示する電子メール、若しくはテスト自動実行手段による実行で不具合が発生する旨を知らせてジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えた構成としてもよい。
【００３２】
このようにテスト結果の統計分析を行い、その分析結果をテスト自動実行手段による処理に結び付ける構成とした場合には、分析結果を、より一層、十分に活かすことが可能となる。そして、テスト自動実行手段が、アプリケーション等の更新の監視を定期的に行うものであれば、そこに時間的な要素が生じるので、時間帯に関する統計分析との結び付きが強固なものとなる。
【００３３】
さらに、前述したタイマー実行手段を備えた構成とした場合において、
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、テスト結果データとしてテスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
テスト結果記憶手段に蓄積記憶された複数のテスト結果データを用いて、テスト時間帯および／またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、タイマー実行手段により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブについて当該テスト担当者がタイマー設定を行おうとした際若しくは特定の夜間の時間帯へのタイマー設定を行おうとした際に、不具合が発生する旨を警告するタイマー設定時警告対象者情報として、当該テスト担当者の識別情報を設定情報記憶手段に記憶させるか、または、タイマー設定をせずに手動実行を指示する電子メール、若しくはタイマー実行手段による実行で不具合が発生する旨を知らせてジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えた構成としてもよい。
【００３４】
このようにテスト結果の統計分析を行い、その分析結果をタイマー実行手段による処理に結び付ける構成とした場合には、分析結果を、より一層、十分に活かすことが可能となる。そして、タイマー実行手段は、設定されたタイマー実行時刻にジョブネットを起動するものであるが、通常、特定の夜間の時間帯にタイマー実行時刻が設定されることが多いので、時間帯に関する統計分析との結び付きは強固なものとなる。
【００３５】
また、以上に述べたテスト管理システムにおいて、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段により失敗と判定されたテストについての失敗の詳細情報を、ジョブネット若しくはその構成ジョブの識別情報と関連付けて課題記憶手段に記憶させる処理を実行する課題登録手段と、
失敗したテストに係るジョブネット若しくはその構成ジョブの実行に用いられるテストデータ若しくはテストシナリオを作成したアプリケーション開発者、および／または、失敗したテストに係るジョブネット若しくはその構成ジョブを作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを送信する処理を実行するテスト結果伝達手段と、
アプリケーション開発者の操作する開発者端末からネットワークを介して送信されてくる失敗原因の解析のための閲覧要求信号を受信し、閲覧要求に係るジョブネット若しくはその構成ジョブにより実行されたテストについての失敗の詳細情報を開発者端末に画面表示する処理を実行する課題管理手段と
を備えた構成とすることが望ましい。
【００３６】
このように課題登録手段を備えた構成とした場合には、失敗の詳細情報が課題記憶手段に自動的に記憶されるので、膨大な件数の失敗の情報を、効率的に管理することが可能となる。このため、従来のように失敗の情報を人手により課題管理表に登録し、解析を行い、解析で得られた失敗事由を記載していた場合に比べ、作業負荷の軽減、失敗事由の解析時間の短縮、原因究明の容易化・早期化が図られるうえ、失敗に関する情報不足により解析できないといったケースの発生を未然に防ぐことも可能となる。
【００３７】
また、以上に述べたテスト管理システムにおいて、
ジョブ記憶手段には、
複数のジョブを同時並行的に実行することを含むジョブの実行順序を指定して形成された並列処理を含むジョブネットが記憶され、
ジョブ実行手段は、
並列処理を含むジョブネットを実行する場合には、ジョブ実行処理として、並列処理の対象の複数のジョブを同時並行的に実行し、ジョブ図形表示処理として、並列処理の対象の複数のジョブを示す各図形をジョブネットの全体の流れを分岐させる状態で画面上に配置し、テスト進捗表示処理として、並列処理中の複数のジョブについて同時並行的に実行中であることを示す構成とされていることが望ましい。
【００３８】
このように複数のジョブの並列処理を行うことができる構成とした場合には、ジョブネット全体の処理時間の短縮を図ることが可能となる。
【００３９】
さらに、以上に述べたテスト管理システムにおいて、
ジョブ実行手段は、
テスト進捗表示処理として、ジョブを示す図形の中またはその近傍に、当該ジョブの実行を開始した場合のジョブの実施時刻、当該ジョブの実行を終了した場合のジョブの実行に要した実行時間のうちの少なくとも一方を表示する構成とされていることが望ましい。
【００４０】
このようにテスト進捗表示処理として、図形の中またはその近傍にジョブの実施時刻または実行時間の表示を行う構成とした場合には、その文字（数字を含む。）の表示の有無によるテスト進捗表示を実現することができるうえ、その文字（数字を含む。）の有する意味内容を、テスト担当者に伝達することも可能となる。
【００４１】
そして、本発明のプログラムは、以上に述べたテスト管理システムとして、コンピュータを機能させるためのものである。
【００４２】
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク（ＭＯ）、コンパクトディスク（ＣＤ）を利用した読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）、デジタル・バーサタイル・ディスク（ＤＶＤ）を利用した読出し専用メモリ（ＤＶＤ−ＲＯＭ）、ＤＶＤを利用したランダム・アクセス・メモリ（ＤＶＤ−ＲＡＭ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去および書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ＬＡＮ、ＭＡＮ、ＷＡＮ、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【００４３】
以上に述べたように本発明によれば、テスト環境構築ジョブおよびテストジョブを含む複数のジョブを、指定した実行順序に従ってジョブネットとして連続実行することができるので、テスト品質の均一化、納期の短縮、テスト担当者の作業負担の軽減を図ることができるという効果がある。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態のテスト管理システムの全体構成図。
【図２】前記実施形態のテスト管理システムによるテストの実行および管理の流れを示すフローチャートの図。
【図３】前記実施形態のジョブ図形表示処理およびテスト進捗表示処理の一例を示す図。
【図４】前記実施形態のジョブ図形表示処理およびテスト進捗表示処理に並列処理が含まれる場合の一例を示す図。
【発明を実施するための形態】
【００４５】
以下に本発明の一実施形態について図面を参照して説明する。図１には、本実施形態のテスト管理システム１０の全体構成が示されている。図２には、テスト管理システム１０によるテストの実行および管理の流れがフローチャートで示されている。また、図３および図４には、テスト管理システム１０によるジョブ図形表示処理およびテスト進捗表示処理の一例が示されている。
【００４６】
図１において、テスト管理システム１０は、テスト対象システム２００の動作確認テストの実行および管理を行うシステムである。本実施形態では、一例として、テスト対象システム２００は、ウェブ（Ｗｅｂ）による分散系アプリケーションシステムとし、社内ＬＡＮやイントラネット等のネットワーク２０１で接続されたウェブサーバ２１０、アプリケーションサーバ２２０、テータベースサーバ２３０により構成され、それぞれ開発環境下に置かれているものとする。アプリケーションサーバ２２０は、ウェブアプリケーションサーバ、バッチサーバの総称であり、テータベースサーバ２３０は、テータベース２３１およびリレーショナルデータベース管理システム（ＲＤＢＭＳ）を備えているものとする。
【００４７】
テスト管理システム１０は、テスト統括管理サーバ２０と、レポジトリサーバ５０と、課題管理サーバ６０と、ユーザ情報管理サーバ７０と、打鍵テストマシン８０と、テスト担当者が操作するテスト担当者端末９０とを備え、これらは、社内ＬＡＮやイントラネット等のネットワーク１で接続されてＷｅｂシステムとして構成されている。また、ネットワーク１には、アプリケーション開発者（プログラマ）が操作する開発者端末１００、メールサーバ１１０が接続されている。なお、メールサーバ１１０は、外部に設置し、インターネット等の外部ネットワークを介して接続するようにしてもよい。
【００４８】
さらに、テスト管理システム１０とテスト対象システム２００とは、インターネットやイントラネット等のネットワーク２で接続されている。なお、このネットワーク２と、テスト管理システム１０を構築するためのネットワーク１と、テスト対象システム２００を構築するためのネットワーク２０１とは、システム構成上、異なる符号を付して分けて記載しているが、共用のネットワークとしてもよい。但し、打鍵テストマシン８０からテスト対象システム２００に至る通信経路およびテスト対象システム２００内の通信経路は、本番環境と同じ状態にしておくことが望ましい。また、ネットワーク１，２，２０１のいずれについても、有線であるか、無線であるか、有線および無線の混在型であるかは問わない。
【００４９】
テスト統括管理サーバ２０は、１台または複数台のコンピュータにより構成され、テストの実行および管理に必要な各種処理を実行する処理手段２０Ａと、この処理手段２０Ａに接続されてテストの実行および管理に必要な各種データを記憶する設定情報記憶手段４１、ジョブ記憶手段４２、テスト結果記憶手段４３、プロジェクト情報記憶手段４４、ビルド履歴記憶手段４５、および分析結果記憶手段４６とを含んで構成されている。
【００５０】
処理手段２０Ａは、設定手段２１と、ジョブ作成手段２２と、ジョブ実行手段２３と、タイマー実行手段２４と、テスト自動実行手段２５と、テスト成否判定手段２６と、テスト結果登録手段２７と、課題登録手段２８と、テスト結果伝達手段２９と、テスト結果分析手段３０と、分析結果出力手段３１とを含んで構成されている。この処理手段２０Ａは、既存のＣＩツールを利用して構築してもよく、新たに構築してもよく、既存のＣＩツールを利用する場合には、例えばジェンキンスの改良およびジェンキンスへのプラグイン等により構築することができる。
【００５１】
設定手段２１は、テスト担当者端末９０からの送信要求に応じ、設定画面の表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信するとともに、テスト担当者端末９０からネットワーク１を介して送信されてくる設定情報（設定画面を用いてテスト担当者により入力された設定情報）を受信し、受信した設定情報を、設定情報記憶手段４１に記憶させる処理を実行するものである。なお、本実施形態では、設定情報を設定ファイルに保存して所定のフォルダ（設定情報記憶手段４１を構成するハードディスク等の記録媒体）に格納する。
【００５２】
ここで、設定情報としては、例えば、ジョブや複数のジョブからなるジョブネットをタイマー実行手段２４によりタイマー実行するためのタイマー実行時刻（年月日および時刻）等がある。本実施形態では、タイマー実行時刻と、そのタイマー実行の対象となるジョブやジョブネットの識別情報（例えば名称）とが関連付けられて設定ファイルに保存されている。設定ファイルには、ジョブやジョブネットの識別情報（例えば名称）とタイマー実行時刻とを複数組保存してもよく、あるいは各組毎に別々の設定ファイルを用意してもよい。なお、ジョブネットの識別情報（例えば名称）は、ジョブネットを構成する複数のジョブのうちの先頭のジョブの識別情報（例えば名称）で代用することができる。
【００５３】
また、設定情報として、テスト自動実行手段２５によるアプリケーション等の更新に伴う自動実行の対象にされるジョブ（ジョブネットの構成ジョブを含む。）の識別情報（例えば名称）を設定ファイルに保存してもよい。なお、アプリケーション等の更新に伴う自動実行の対象にされるか否かは、ジョブファイルに保存してもよい。
【００５４】
ジョブ作成手段２２は、テスト担当者端末９０からの送信要求に応じ、ジョブやジョブネットの新規作成・編集・修正・削除等を行うためのジョブ作成画面の表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信するとともに、テスト担当者端末９０からネットワーク１を介して送信されてくるジョブやジョブネット（ジョブ作成画面を用いてテスト担当者により新規作成・編集・修正等されたジョブやジョブネット）を受信し、受信したジョブやジョブネットを、ジョブ記憶手段４２に記憶させる処理を実行するものである。なお、本実施形態では、新規作成・編集・修正等されたジョブ（ジョブネットを構成するジョブを含む）を、ジョブファイルに保存して所定のフォルダ（ジョブ記憶手段４２を構成するハードディスク等の記録媒体）に格納する。
【００５５】
ここで、ジョブは、テスト（準備を含む。）を実行するために所定の言語で記述された命令群であり、例えば、ジェンキンスのジョブは、ＸＭＬというマークアップ言語で記述されている。ジョブファイルには、例えば、テスト手順（ジョブを構成する命令自体およびそれを文章で説明するテキストデータ）、テストの実施内容（ジョブを構成する命令自体およびそれを文章で説明するテキストデータ）、テストで使用するテストデータやテストシナリオ（これらの名称やレポジトリサーバ５０内の格納場所（ＵＲＬ等））、テストで使用（実際に展開）したテストデータやテストシナリオのバージョン情報、テスト担当者（ジョブ作成者であり、テスト失敗時等の電子メールの自動送信先となる。）、アプリケーション開発者（テストに係る開発プロジェクトに関与するプログラマであり、テスト失敗時等の電子メールの自動送信先となる。）等が登録保存されている。なお、開発プロジェクトに関与する者の一覧が、プロジェクト情報記憶手段４４に格納されたプロジェクト情報ファイル内に記憶されているので、テスト担当者（ジョブ作成者）は、その一覧の中から、アプリケーション開発者を選択してジョブファイルに登録保存しておく。
【００５６】
ジョブ記憶手段４２に登録するジョブとしては、例えば、（１）単体テスト、画面打鍵テスト、データベース（ＤＢ）のデータ突合といった、様々なテストを実行してその結果を出力する「テストジョブ」、（２）ＤＢの準備、アプリケーションサーバの設定といった、テストを実行する際に必要となるテスト環境を構築する「テスト環境構築ジョブ」、（３）ソースコードからバイナリを作成する「ビルドジョブ」等がある。
【００５７】
また、ジョブネットは、複数のジョブを組み合わせてこれらのジョブの実行順序を指定して形成されるものであるが、ジョブネットの作成方法は、次のように、４通りある。
【００５８】
＜ジョブネットの第１の作成方法＞ジョブＡ、ジョブＢをこの順序で実行するジョブネットを作成する場合に、呼び出し元のジョブＡに、次に実行させるジョブＢを記述して指定しておく方法がある。
【００５９】
この場合、ジョブＡを実行すると、ジョブＢが自動的に実行されるので、ジョブＡを単体で実行したい場合は、ジョブＢの記述指定のないジョブＡを別に用意しておく必要がある。また、ジョブＡを実行した後に、ジョブＢおよびジョブＣ（複数のジョブ）を同時並行的に実行する並列処理を行う際には、呼び出し元のジョブＡに、次に実行させるジョブＢおよびジョブＣの双方（複数のジョブ）を記述して指定しておけばよい。
【００６０】
この第１の作成方法により作成されたジョブネット全体の実行は、最初（先頭ということもある。）のジョブＡの実行指令を出すだけで実現することができる。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、最初のジョブへの実行指令を出す旨の記載で代用する場合がある。また、ジョブネットの途中からの実行も可能であり、例えば、２番目のジョブＢの実行指令を出せば、それ以降のジョブＣ，Ｄ，…を連続実行することができる。
【００６１】
＜ジョブネットの第２の作成方法＞ジョブＡ、ジョブＢをこの順序で実行するジョブネットを作成する場合に、呼び出される側のジョブＢに、どのような場合（ジョブＡが実行された場合）に自身（ジョブＢ）が呼び出されるのかを記述しておく方法がある。
【００６２】
この場合、ジョブＡを実行すると、ジョブＢが自動的に実行されてしまうので、ジョブＡを単体で実行したい場合には、ジョブＢを別の場所に退避させるか、削除する必要がある。また、ジョブＡを実行した後に、ジョブＢおよびジョブＣ（複数のジョブ）を同時並行的に実行する並列処理を行う際には、呼び出される側のジョブＢおよびジョブＣの双方（複数のジョブの全て）に、どのような場合（ジョブＡが実行された場合）に自身（ジョブＢまたはジョブＣ）が呼び出されるのかを記述しておけばよい。
【００６３】
なお、ジョブＡが実行されたときに、それにより呼び出されるジョブＢを探さなければならない（ジョブＡ以外のジョブについて、それらがジョブＡの実行により呼び出されるジョブであるか否かを判断しなければならない）ので、関係するジョブが多い場合には、時間がかかることになる。また、並列処理を行う場合は、ジョブＡが実行されたときに、それにより呼び出される複数のジョブＢ，Ｃ，…を探さなければならないので、ジョブＡの実行により呼び出される可能性のある全てのジョブについて、ジョブＡの実行により呼び出されるジョブであるか否かを判断しなければならず、ジョブＡの実行により呼び出されるジョブを１つまたは幾つか見つければよいというものではない。要するに、幾つか見つけたとしても、まだ存在するかもしれないので、結局、残り全部についても判断することになる。
【００６４】
この第２の作成方法により作成されたジョブネット全体の実行は、最初（先頭ということもある。）のジョブＡの実行指令を出すだけで実現することができる。前述した第１の作成方法の場合と同様である。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、最初のジョブへの実行指令を出す旨の記載で代用する場合がある。また、ジョブネットの途中からの実行も可能であり、例えば、２番目のジョブＢの実行指令を出せば、それ以降のジョブＣ，Ｄ，…を連続実行することができる。この点も、前述した第１の作成方法の場合と同様である。
【００６５】
＜ジョブネットの第３の作成方法＞ジョブＡ、ジョブＢをこの順序で実行するジョブネットを作成する場合に、ジョブＡ、ジョブＢをこの順序で呼び出して実行させるスケジューリング用の実行順序管理ジョブを作成し、この実行順序管理ジョブを保存したジョブファイルを用意しておく方法がある。従って、ジョブＡのジョブファイルおよびジョブＢのジョブファイルに加え、ジョブネット形成用の実行順序管理ジョブのジョブファイルが存在することになる。
【００６６】
この場合、実行順序管理ジョブを実行することにより、ジョブＡ、ジョブＢが自動的に連続実行されるので、ジョブＡを単体で実行したい場合は、実行順序管理ジョブを使用せずに、単純にジョブＡを実行するだけでよい。また、ジョブＡ、ジョブＢをこの順序で連続実行するときには、ジョブＡの終了を条件として、ジョブＢの実行に進むが、ジョブＡを実行した後に、ジョブＢおよびジョブＣ（複数のジョブ）を同時並行的に実行する並列処理を行う際には、ジョブＡの終了を条件として、ジョブＢ，Ｃの実行に進むので、ジョブＣの実行には、ジョブＢの終了を条件としないようにし、また、ジョブＢの実行にも、ジョブＣの終了を条件としないようにしておけばよい。
【００６７】
なお、前述したジョブネットの第１、第２の作成方法では、一番最初に実行するジョブＡは、１つだけ存在し、その次のジョブＢ，Ｃ，Ｄ，…から並列処理を行うことが可能であるが、第３の作成方法では、スケジューリング用の実行順序管理ジョブを実行するので、最初から複数のジョブ（実行順序管理ジョブはスケジューリング用なので含めない。）を同時並行的に実行する並列処理を実現することができる。
【００６８】
この第３の作成方法により作成されたジョブネット全体の実行は、実行順序管理ジョブの実行指令を出すだけで実現することができる。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、実行順序管理ジョブへの実行指令を出す旨の記載で代用する場合がある。また、以下では、ジョブネット全体を選択・指定・実行・起動等するときに、前述した第１、第２の作成方法により作成されたジョブネットを念頭に、「最初（先頭）のジョブ」を選択・指定・実行・起動等するという記載があるが、その記載は、実行順序管理ジョブの選択・指定・実行・起動等と等価であり、置き換えることができる。なお、ジョブネットの途中からの実行を行う場合は、途中からのスケジューリングを記述した別の実行順序管理ジョブを用意するのが簡単であるが、実行順序管理ジョブの中にその実行開始後に、開始ジョブ（最初のジョブから実行開始か、途中のいずれかのジョブから実行開始か）を選択できる機能を用意しておいてもよい。
【００６９】
＜ジョブネットの第４の作成方法＞ジョブＡ、ジョブＢをこの順序で実行するジョブネットを作成する場合に、ジョブＡ、ジョブＢがこの順序で実行されるようにこれらのジョブを連結することにより、新たな結合ジョブを作成し、この結合ジョブを保存したジョブファイルを用意しておく方法がある。従って、ジョブＡのジョブファイルおよびジョブＢのジョブファイルに加え、ジョブネットである結合ジョブのジョブファイルが存在することになる。換言すれば、結合ジョブは、あくまでも結合前の単体のジョブが存在することを前提としており、単体のジョブＡの実行や、単体のジョブＢの実行も可能であるとともに、ジョブネットである結合ジョブを実行したときのテスト担当者端末９０の画面上へのジョブ図形表示処理（図３、図４参照）では、結合前の単体のジョブであるジョブＡ、ジョブＢが、それぞれ独立したジョブとして表示されている状態になる。但し、単体のジョブＡや単体のジョブＢが呼び出されて実行されているわけではなく、表示上、そのように見えるだけであり、実行されているのは、あくまでも結合ジョブである。
【００７０】
この場合、いずれかのジョブが修正されると、それを含む結合ジョブも作成し直す必要がある。また、上述したように、ここでいう結合ジョブは、１つのジョブというより、複数のジョブの集合体であるから、多くの命令文が記述された非常に長いジョブを作成するというイメージではない。このため、１つ１つのジョブは、定められたルールに従った長さのものとすることができるので、粒度の異なるジョブが乱立するという事態は避けることができ、第１〜第３の作成方法の場合と同様に、適切なジョブの管理（ジョブの粒度の均一化・標準化、ジョブ作成のルール化、作成指導等を含む。）を行うことができる。
【００７１】
この第４の作成方法により作成されたジョブネット全体の実行は、結合ジョブの実行指令を出すだけで実現することができる。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、結合ジョブへの実行指令を出す旨の記載で代用する場合がある。また、以下では、ジョブネット全体を選択・指定・実行・起動等するときに、前述した第１、第２の作成方法により作成されたジョブネットを念頭に、「最初（先頭）のジョブ」を選択・指定・実行・起動等するという記載があるが、その記載は、結合ジョブの選択・指定・実行・起動等と等価であり、置き換えることができる。なお、ジョブネットの途中からの実行を行う場合は、途中からのジョブを結合した別の結合ジョブを用意するのが簡単であるが、結合ジョブの中にその実行開始後に、開始ジョブ（最初のジョブから実行開始か、途中のいずれかのジョブから実行開始か）を選択できる機能を用意しておいてもよい。
【００７２】
ジョブ実行手段２３は、テスト担当者端末９０からの送信要求に応じ、実行ジョブ選択画面の表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信するとともに、テスト担当者端末９０からネットワーク１を介して送信されてくる選択情報（実行ジョブ選択画面を用いてテスト担当者により選択された実行対象の単体のジョブやジョブネットの選択情報）を受信する「実行ジョブ選択受付処理」を行い、受信した選択情報で指定されている単体のジョブを示す図形を画面表示するか、または選択情報で指定されているジョブネットを構成する複数のジョブを示す各図形を実行順序の通りに並べて画面表示するための表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信する「ジョブ図形表示処理」（図３、図４参照）を行い、さらに、テスト担当者端末９０からネットワーク１を介して送信されてくる実行指令（画面表示された図形中またはその近傍に設けられた実行ボタンをテスト担当者がクリック操作することにより発信される単体のジョブやジョブネットの実行指令）を受信し、受信した実行指令に基づきジョブ記憶手段４２に記憶されたジョブファイルを用いて単体のジョブを実行するか、またはジョブネットで指定されている実行順序に従って複数のジョブを連続実行する「ジョブ実行処理」を行うとともに、この単体のジョブやジョブネットの実行と並行して、画面表示された図形を用いて実行中のジョブを示す「テスト進捗表示処理」（図３、図４参照）を行うものである。
【００７３】
ここで、ジョブ実行手段２３による実行ジョブ選択受付処理では、実行するジョブネットの選択を受け付ける際には、前述した第１、第２の作成方法でジョブネットが作成されている場合には、そのジョブネットを構成する複数のジョブのうちの先頭のジョブの選択を受け付ける。また、第３の作成方法でジョブネットが作成されている場合には、実行順序管理ジョブの選択を受け付け、第４の作成方法でジョブネットが作成されている場合には、結合ジョブの選択を受け付ける。
【００７４】
ジョブ実行手段２３によるジョブ図形表示処理では、ジョブを示す図形の中またはその近傍に、ジョブ名および／またはジョブの内容を簡単に示す説明文（この説明文のテキストデータは、ジョブファイル内に保存されている。）を表示する。図３の例では、画面３００上に表示された図形３０１の中に、「旧環境のバックアップ」という文字（ジョブ名でもよく、ジョブの内容を簡単に示す説明文でもよい。）が表示されている。なお、上述した実行ジョブ選択受付処理で受信した選択情報が単体のジョブの指定である場合には、そのジョブを示す図形の表示処理を省略してもよい。但し、ジョブを示す図形の表示処理を省略する場合でも、ジョブの実行を開始させるための実行ボタンは、画面表示する。
【００７５】
また、ジョブ実行手段２３によるジョブ図形表示処理では、上述した実行ジョブ選択受付処理で受信した選択情報がジョブネットの指定である場合には、そのジョブネットを構成する複数のジョブについての各ジョブファイルを参照して実行順序を解析し、複数のジョブを示す各図形を実行順序の通りに並べて画面表示するための表示用データを作成し、作成した表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信する。
【００７６】
このジョブ図形表示処理における実行順序の解析は、前述したジョブネットの第１〜第４の作成方法に応じて行う。例えば、第１の作成方法の場合には、最初のジョブＡの中から、２番目に実行するジョブＢを指定する記述を抽出し、続いて、ジョブＢの中から、３番目に実行するジョブＣを指定する記述を抽出するというような連鎖的な抽出処理を行う。第２の作成方法の場合には、最初のジョブＡが実行された場合に自身が呼び出されるという記述がある２番目のジョブを探し、それがジョブＢであったとすれば、次に、その２番目のジョブＢが実行された場合に自身が呼び出されるという記述がある３番目のジョブを探し、それがジョブＣであったとすれば、さらに、その３番目のジョブＣが実行された場合に自身が呼び出されるという記述がある４番目のジョブを探しというような連鎖的なサーチ処理を行う。第３の作成方法の場合には、実行順序管理ジョブにスケジューリングの記述があるので、その記述に従ってジョブ図形表示処理を行うが、実行順序管理ジョブ自体は、画面上への図形表示の対象ではない（図形表示してもよいが、必須ではない）。第４の作成方法の場合には、結合ジョブの中に、結合前の各構成ジョブについての命令文に加え、ジョブ名および／またはジョブの内容を簡単に示す説明文等の各種情報が含まれるとともに、実行順序の情報が含まれているので、それを用いてジョブ図形表示処理を行うが、結合ジョブ自体は、画面上への図形表示の対象ではない（図形表示してもよいが、必須ではない）。
【００７７】
図３の例では、画面３００上に、「旧環境のバックアップ」のジョブを示す図形３０１と、「テストデータのインポート」のジョブを示す図形３０２と、「画面打鍵テスト」のジョブを示す図形３０３と、「打鍵前後でのＤＢ突合」のジョブを示す図形３０４と、「環境戻し」のジョブを示す図形３０５とが、矢印図形により実行順序を示される状態で並べて表示されている。また、図４は、並列処理の場合の表示例であり、画面４００上に、「ＤＢデータバックアップ」のジョブを示す図形４０１が先頭ジョブとして表示され、ここから分岐し、第１の流れとして、「ＤＢデータのインポート（１）」のジョブを示す図形４０２と、「画面打鍵テスト（１）」のジョブを示す図形４０３とが並べて表示されるとともに、第２の流れとして、「ＤＢデータのインポート（２）」のジョブを示す図形４０４と、「画面打鍵テスト（２）」のジョブを示す図形４０５とが並べて表示されている。
【００７８】
さらに、ジョブ実行手段２３によるジョブ図形表示処理では、ジョブを示す図形の中またはその近傍に、ジョブやジョブネットの実行を開始させる実行指令を出すための実行ボタンを設ける処理を行う。図３、図４の例に示すように、ジョブネットの場合には、その先頭のジョブを示す図形３０１，４０１の中またはその近傍に、実行ボタン３０６，４０６が設けられる。本実施形態では、ジョブネットの途中のジョブを示す図形の中またはその近傍には、実行ボタンを設けていない。従って、ジョブネットの途中のジョブから実行を開始する場合には、前述した実行ジョブ選択受付処理で、その途中のジョブの選択を受け付け、その途中のジョブを新たな先頭ジョブとするジョブ図形表示処理を行い、その新たな先頭ジョブを示す図形の中またはその近傍に、実行ボタンを設ける。なお、図３、図４に示す画面３００，４００の例において、先頭のジョブを示す図形３０１，４０１以外の図形にも実行ボタンを設けることにより、途中のジョブからの実行開始を指示できるようにしてもよい。
【００７９】
ジョブ実行手段２３によるジョブ実行処理では、ジョブネットを実行する場合には、上述したジョブ図形表示処理で解析した実行順序を主メモリ等に一時的に記憶しておき、それを用いて複数のジョブの連続実行を行ってもよく、あるいは、ジョブネットを構成する各ジョブを実行しながら、その都度、次に実行するジョブを認識（サーチを含む。）していってもよい。タイマー実行やアプリケーション等の更新に伴う自動実行の場合には、ジョブ図形表示処理は行わないので、ジョブ図形表示のための実行順序の解析は行わないが、そのような場合でも、同様にして事前の実行順序の解析を行い、解析した実行順序を主メモリ等に一時的に記憶しておき、それを用いて複数のジョブの連続実行を行ってもよく、あるいは、ジョブネットを構成する各ジョブを実行しながら、その都度、次に実行するジョブを認識（サーチを含む。）していってもよい。また、各ジョブを実行していく過程で、各ジョブの実行開始や実行終了の情報（今開始、今終了というタイミング情報）、各ジョブの実施時刻（実行を開始した年月日および時刻）、各ジョブの実行時間（処理の所要時間）等を、下記のテスト進捗表示処理のルーチンに引き渡す。
【００８０】
ジョブ実行手段２３によるテスト進捗表示処理では、各ジョブを実行していく過程で得られる各ジョブの実行開始や実行終了の情報に基づき、実行開始や実行終了のタイミングに合わせて、テスト進捗表示を行うための表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信する。テスト進捗表示は、例えば、現在実行中のジョブを示す図形の色を、現在実行していないジョブを示す図形の色とは異なる色に変える色付けを行う、現在実行中のジョブを示す図形だけ点滅させる、現在実行中のジョブを示す図形だけ特別な枠（例えば赤枠や太枠等）で囲む、実行終了したジョブを示す図形の色を変えていく（例えば暗い色等に変えていく）といった色分け等により実現することができ、要するに、現在どのジョブが実行されているのかをテスト担当者が視覚的に把握できるようになっていればよい。図３、図４の例では、現在実行中のジョブを示す図形（図中において斜線のある図形）の色が変わっている。
【００８１】
また、ジョブ実行手段２３によるテスト進捗表示処理では、図３、図４の例に示すように、各ジョブの実行を開始した実施時刻（年月日および時刻）や各ジョブの実行に要した実行時間を、各ジョブを示す図形の中またはその近傍に表示するための表示用データを、実行開始や実行終了のタイミングに合わせて、ネットワーク１を介してテスト担当者端末９０へ送信する。これにより、上述した色付け、枠囲い、点滅、色分け等による文字（数字を含む）以外の視覚的識別処理に加え、文字（数字を含む）の有無による視覚的識別処理を実現することができる。さらに、文字（数字を含む）自体が有する意味内容（時刻や時間そのものが持つ遅早・長短の情報）を、テスト担当者に伝達することもできる。図３の例では、図形３０１の中に、ジョブの実施時刻「２０１５／０５／２５  １８：４７：４２」、ジョブの実行時間「０．５８秒」が表示されている。
【００８２】
このジョブ実行手段２３によるテスト進捗表示処理において、ジョブの実施時刻とジョブの実行時間とのうち、ジョブの実施時刻だけを表示するようにした場合には、ジョブの実施時刻が表示された図形のうちの最後の図形に対応するジョブが実行中のジョブであり、ジョブの実行時間だけを表示するようにした場合には、ジョブの実行時間が表示された図形のうちの最後の図形に対応するジョブの次のジョブが実行中のジョブであり、双方を表示するようにした場合には、ジョブの実施時刻が表示されていて、かつ、ジョブの実行時間が表示されていない図形に対応するジョブが実行中のジョブであると把握することができる。
【００８３】
また、本実施形態のジョブ実行手段２３は、本実施形態のテスト管理システム１０が打鍵テストマシン８０を備えているので、この打鍵テストマシン８０に、ジョブ実行に関する補助処理手段（図１では、図示は省略されている。）を設けることにより、テスト統括管理サーバ２０と打鍵テストマシン８０とに分散配置されている。例えば、ジェンキンスの場合には、打鍵テストマシン８０にジェンキンス・スレーブ・エージョントを搭載することにより、ジョブ実行手段２３の補助処理手段とすることができ、この場合、打鍵テストマシン８０は、テスト統括管理サーバ２０をマスターとするスレーブマシンとなる。このようなテスト統括管理サーバ２０とは別のマシン（スレーブマシン）に設ける補助処理手段は、テストの内容やテスト対象システム２００の構成等によっては、設けなくてもよい。
【００８４】
なお、ジョブ実行手段２３がネットワーク１を介してテスト担当者端末９０との通信を行うのは、テスト担当者が、テスト担当者端末９０を操作し、ジョブやジョブネットを手動実行する場合である。従って、ジョブ実行手段２３は、タイマー実行手段２４によるタイマー実行を行う場合や、テスト自動実行手段２５によるアプリケーション等の更新に伴う自動実行を行う場合には、テスト担当者の操作による手動実行ではないので、テスト担当者端末９０への画面表示のための各種処理は行わない。
【００８５】
タイマー実行手段２４は、設定情報記憶手段４１に記憶されたタイマー実行時刻が到来したか否かを監視し、到来したと判断した場合には、到来したタイマー実行時刻に係るジョブやジョブネットについてジョブ実行手段２３によるジョブ実行処理を開始させる処理を実行するものである。なお、このタイマー実行の場合には、テスト担当者端末９０との通信はない。
【００８６】
より具体的には、タイマー実行手段２４は、例えば、設定情報記憶手段４１に記憶された設定ファイル内に保存されている１組または複数組のジョブ名（ジョブネットを構成する先頭ジョブのジョブ名を含む。）およびそのジョブの実行を開始させるためのタイマー実行時刻を所定時間間隔で読み込んで主メモリに配置し、読み込んだ１つまたは複数のタイマー実行時刻が到来した否かを、より短い時間間隔で判断する監視処理を実行し、タイマー実行時刻が到来したジョブ（ジョブネットを構成する先頭ジョブを含む。）があった場合には、そのジョブ名（ジョブの識別情報）を、実行対象ジョブのジョブ名としてジョブ実行手段２３に引き渡し、ジョブ実行処理を開始させる。
【００８７】
テスト自動実行手段２５は、テスト資源記憶手段５２に記憶されたテストデータ（アプリケーションを含む。）またはテストシナリオ（ジョブ記憶手段４２に記憶されたジョブやジョブネットのうち、監視対象として指定されたジョブやジョブネットの実行に用いられるテストデータやテストシナリオ）が更新されたか否かを監視し、更新されたと判断した場合には、ジョブ実行手段２３によるジョブ実行処理を開始させる処理を実行するものである。なお、この更新に伴う自動実行の場合には、テスト担当者端末９０との通信はない。
【００８８】
より具体的には、例えば、テスト自動実行手段２５は、次のような処理を行う。先ず、アプリケーション開発者は、テストデータ（アプリケーションを含む。）またはテストシナリオを修正した場合は、自己の開発者端末１００を操作し、修正したアプリケーション（ここでは、ソースコードのプログラムである。）等をテスト資源記憶手段５２に記憶登録させる。この際、登録されるアプリケーション（ソースコードのプログラム）等は、テスト資源管理手段５１によりバージョン情報を含めて登録され、バージョン管理される。一方、テスト担当者は、ジョブやジョブネットを作成する際に、そのジョブやジョブネットをテスト自動実行手段２５によるアプリケーション等の更新に伴う自動実行の対象にするか否かの選択情報を、ジョブファイル（ジョブネットの構成ジョブのジョブファイルを含む。）に設定保存しておくか、あるいは、タイマー実行時刻（年月日および時刻）の設定の場合と同様に、設定手段２１により、アプリケーション等の更新に伴う自動実行の対象にするジョブやジョブネットの識別情報（例えば名称）を設定ファイルに保存し、設定情報記憶手段４１に記憶させておく。ジョブ記憶手段４２に、多くのジョブファイルが記憶されている場合には、後者の場合のように、設定ファイルに保存した方が、処理時間が短くなる。なお、ジョブネットの場合には、先頭ジョブ以外のジョブで使用されるテストデータ（アプリケーションを含む。）やテストシナリオが修正される場合もあるので、先頭ジョブだけではなく、必要な場合には、構成ジョブの全てについて、監視対象とする設定を行う。
【００８９】
テスト自動実行手段２５は、このようにテスト担当者によりアプリケーション等の更新に伴う自動実行の対象にするジョブ（ジョブネットの構成ジョブを含む。）の設定が行われている状態で、定期的（例えば１日２回等）に、そのような監視対象のジョブがあるか否かをサーチする処理を行う。このサーチ処理では、上述したように、ジョブ記憶手段４２に記憶されたジョブファイルを読み込んで探してもよく、設定情報記憶手段４１に記憶された設定ファイルを読み込んで探してもよい。そして、監視対象とされているジョブ（ジョブネットの構成ジョブを含む。）のジョブファイルの中から、前回のテストで使用（展開）したテストデータ（アプリケーションを含む。）やテストシナリオのバージョン情報を取得する。例えば、それがバージョン４であったとする。それから、テスト自動実行手段２５は、ネットワーク１を介してレポジトリサーバ５０に、そのテストデータ（アプリケーションを含む。）やテストシナリオの最新バージョンは何かを問い合わせる。レポジトリサーバ５０では、テスト資源管理手段５１により、その問い合わせを受け付けると、テスト資源記憶手段５２を参照し、そのテストデータ（アプリケーションを含む。）やテストシナリオの最新バージョンを取得し、取得したバージョン情報を、ネットワーク１を介してテスト統括管理サーバ２０に送信する。例えば、それがバージョン５であったとする。テスト統括管理サーバ２０では、テスト自動実行手段２５により、最新バージョンがバージョン５であるという情報を受け取ると、前回のテストで使用（展開）したそのテストデータ（アプリケーションを含む。）やテストシナリオはバージョン４であるということを認識しているので、更新（バージョンアップ）が行われたと判断することができる。そして、更新があったと判断した場合には、ジョブ実行手段２３によるジョブ実行処理（ジョブネットの構成ジョブの場合には、その構成ジョブを含むジョブネットの実行処理）を自動的に開始させる（すなわち、レポジトリサーバ５０からバージョン５を取得して展開する。）とともに、今回のテストで使用（展開）するテストデータ（アプリケーションを含む。）やテストシナリオはバージョン５であるから、そのバージョン５をジョブファイルに記録する。一方、レポジトリサーバ５０への最新バージョンの問い合わせに対し、レポジトリサーバ５０からの応答がバージョン４であったとすると、テスト自動実行手段２５は、更新（バージョンアップ）は行われていないと判断することができるので、ジョブ実行手段２３によるジョブ実行処理（自動実行）は行わない。
【００９０】
なお、以上を実現するために、ジョブファイルの中には、一番最近のテストで使用（展開）したテストデータ（アプリケーションを含む。）やテストシナリオのバージョン情報が記録されているとともに、レポジトリサーバ５０から最新バージョンのテストデータ（アプリケーションを含む。）やテストシナリオを取得し、テスト対象システム２００に展開するという記述と、使用するテストデータ（アプリケーションを含む。）やテストシナリオが更新されていないかどうかをレポジトリサーバ５０に確認するという記述がジョブの中にある。
【００９１】
テスト成否判定手段２６は、ジョブ実行手段２３によるテスト（タイマー実行手段２４によりタイマー実行された場合や、テスト自動実行手段２５により自動実行された場合のテストを含む。）の成功・失敗を判定する処理を実行するものである。例えば、打鍵テストの場合には、テスト対象システム２００からテストの実行結果が打鍵テストマシン８０を介してテスト統括管理サーバ２０に返信されてくるので、テスト成否判定手段２６は、その実行結果を参照し、テストの成功・失敗を判定する。より具体的には、例えば、顧客による普通預金口座への振込処理のテストの場合には、打鍵テストマシン８０は、仮想的な顧客端末であるため、銀行システムであるテスト対象システム２００から打鍵テストマシン８０へ送信されてくる実行結果は、顧客に対して振込処理の不具合発生を報告するメッセージ情報等となるので、そのメッセージ情報等の内容に基づき、テストの成功・失敗を判定する。なお、１つの打鍵が１つのテストシナリオであり、１つのテストシナリオに対して、１つの成功または失敗がある。そして、１回のジョブ実行により、多数のテストシナリオ（打鍵用の入力データを含む。）が使用されるが、そのジョブで使用される多数のテストシナリオのうち１つでも失敗が発生すれば、そのジョブは失敗したことになる。
【００９２】
テスト結果登録手段２７は、テスト成否判定手段２６による成否判定結果を、ビルドの識別情報（例えば、ジョブ実行を繰り返すと１ずつ増番していくビルド番号）とともに、テスト結果データとしてテスト結果記憶手段４３に記憶させる処理を実行するものである。本実施形態では、１回のテスト（１回のビルド）についてのテスト結果データを、１つのテスト結果ファイルに収め、所定のフォルダ（テスト結果記憶手段４３を構成するハードディスク等の記録媒体）に格納する。従って、テスト（ビルド）を繰り返すと、複数のテスト結果ファイルが、テスト結果記憶手段４３に記憶される。なお、毎回のテスト（ビルド）の都度に、その時のテスト結果データを、同じテスト結果ファイルに追加していってもよく、その場合には、同種のテストについては、１つのテスト結果ファイルが、テスト結果記憶手段４３に記憶されていることになる。
【００９３】
また、テスト結果登録手段２７は、１回１回のテスト（１回１回のビルド）について、テスト担当者（ジョブ作成者）の識別情報（名前、従業員コード等）、処理に要したテスト実行時間（ジョブ実行時間であり、ジョブネットの場合には、各構成ジョブのジョブ実行時間またはそれに加えてジョブネット全体の実行時間）、テスト実施時刻（ジョブを起動した年月日および時刻であり、ジョブネットの場合には、各構成ジョブの実施時刻）、実際に使用（展開）したテストデータ（アプリケーションを含む。）やテストシナリオおよびそれらのバージョン情報等のビルド（ジョブ実行）の情報を、ビルドの識別情報（例えばビルド番号）と関連付けてビルド履歴記憶手段４５に記憶させる処理も実行する。テスト担当者（ジョブ作成者）の識別情報は、ジョブファイル内に保存されている。本実施形態では、繰り返された複数回のテスト（複数回のビルド）についてのビルドの情報を、ビルド履歴として１つのビルド履歴ファイルに収め、所定のフォルダ（ビルド履歴記憶手段４５を構成するハードディスク等の記録媒体）に格納する。従って、ビルド（ジョブ実行）を行う都度に、毎回、最新のビルドの情報を同じビルド履歴ファイルに追加していく。なお、１回１回のテスト毎（１回１回のビルド毎）に、個々のビルドファイルを作成し、所定のフォルダに格納してもよい。
【００９４】
なお、テスト結果登録手段２７は、本実施形態では、前述したように、テスト成否判定手段２６による成否判定結果を、ビルドの識別情報（例えばビルド番号）とともに、テスト結果データとしてテスト結果記憶手段４３に記憶させるようになっているが、テスト成否判定手段２６による成否判定結果を、ビルド履歴記憶手段４５に記憶されたビルドの情報そのもの（テスト担当者の識別情報、テスト実行時間、テスト実施時刻等）とともに、テスト結果データとしてテスト結果記憶手段４３に記憶させるようにしてもよい。
【００９５】
課題登録手段２８は、テスト成否判定手段２６により失敗と判定されたテストについての失敗の詳細情報を、ジョブ（ジョブネットの場合には、構成ジョブ）の識別情報（例えばジョブ名）と関連付けて課題管理サーバ６０の課題記憶手段６２に記憶させる処理を実行するものである。ここで、失敗の詳細情報とは、アプリケーション開発者が失敗原因を特定するための情報であり、エラーコード等である。なお、失敗の詳細情報には、失敗したテストシナリオについての識別情報（ファイル名、シナリオ名等）、バージョン番号、レポジトリサーバ５０のテスト資源記憶手段５２内の格納場所（ディレクトリ）も含まれている。この課題登録手段２８は、テストが失敗した場合の課題登録を行うのに対し、前述したテスト結果登録手段２７は、統計分析に供するために失敗・成功の双方の情報について登録する。
【００９６】
テスト結果伝達手段２９は、失敗したジョブ（ジョブネットの場合には、構成ジョブ）で使用されるテストデータ（アプリケーションを含む。）やテストシナリオを作成したアプリケーション開発者、および／または、失敗したジョブ（ジョブネットの場合には、構成ジョブ）を作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを自動送信する、すなわちネットワーク１を介してメールサーバ１１０に自動送信する処理を実行するものである。
【００９７】
これらの宛先となるアプリケーション開発者やテスト担当者（ジョブ作成者）の識別情報（名前、従業員コード等）は、失敗したジョブのジョブファイルの中で指定されている。なお、本実施形態では、ジョブファイルの中に、アドレスが直接に保存されているのではなく、アプリケーション開発者やテスト担当者（ジョブ作成者）の識別情報（名前、従業員コード等）を用いて、ユーザ情報管理サーバ７０のユーザ情報記憶手段７２から、これらの者のメールアドレスを取得し、そこに宛てて電子メールを自動送信するが、ジョブファイルの中に、メールアドレスを直接に保存しておいてもよい。
【００９８】
テスト結果分析手段３０は、テスト結果記憶手段４３に蓄積記憶された複数のテスト結果データ（テスト結果ファイルに収められている。）を用いて、テスト時間帯および／またはテスト担当者（ジョブ作成者）に関する傾向分析を含む各種の統計処理を行い、得られた分析結果データを、分析結果ファイルに収めて分析結果記憶手段４６に記憶させる処理を実行するものである。
【００９９】
このテスト結果分析手段３０による自動分析の実行タイミングについては、例えば、図示されない管理者端末（テスト担当者端末９０と同様な機能・配置状況を有する端末）からの人手による操作で自動分析を開始してもよく、夜間バッチ処理等で毎日あるいは定期的に行うようにしてもよく、テストが実施され、新たなテスト結果データ（テスト結果ファイル）が生成される都度に行うようにしてもよい。
【０１００】
また、自動分析を行う母集団（分析対象とするデータの集合の大きさ・範囲・内容）については、例えば、全部のテスト結果データ（テスト結果ファイル）を母集団としてもよく、ジョブの種類毎に母集団を形成してもよく（ジョブの中にジョブの種類情報を入れておくことにより、ジョブの種類を定義できるようになっている。）、テスト担当者毎またはアプリケーション開発者毎の母集団を形成してもよい（ジョブの中に、テスト担当者やアプリケーション開発者の識別情報が入っている。）。
【０１０１】
さらに、テスト結果分析手段３０による自動分析の内容・方法については、例えば、（分析例１）テスト時間帯および／またはテスト担当者（ジョブ作成者）に関する傾向分析、（分析例２）テスト担当者と、タイマー実行手段２４によるタイマー実行との関係についての分析、（分析例３）テスト担当者と、テスト自動実行手段２５によるアプリケーション等の更新に伴う自動実行との関係についての分析等がある。
【０１０２】
（分析例１）については、例えば、あるテスト担当者は、または、ある時間帯は、あるいは、あるテスト担当者のある時間帯は、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向にあるか否かの分析等である。テストの失敗・成功は、テスト結果記憶手段４３に蓄積記憶された複数のテスト結果データ（テスト結果ファイル）から取得することができ、テスト担当者の識別情報（名前、従業員コード等）、テスト実施時刻（時間帯）、およびテスト実行時間は、テスト結果データに含まれるビルドの識別情報（例えばビルド番号）を用いて、ビルド履歴記憶手段４５に記憶されたビルド履歴から取得することができる。時間帯の分布は、例えば、２４時間、１週間、１か月間、１年間等の暦に従った単位期間を所定の数で分割することにより、夜間の特徴、昼間の特徴、午後３時頃の特徴、夕方の特徴、金曜日の特徴、月曜日の朝の特徴、水曜日の夜間の特徴、月初めの特徴、月末の特徴、夏の特徴、年末の特徴等を抽出することができる。また、テスト失敗の確率が高いか否かは、予め閾値を設定しておけばよく、例えば、失敗の確率５割以上とか、母集団全体の失敗の確率に対して３倍以上の確率になっている等の閾値を設定しておき、あるテスト担当者のある時間帯についての失敗の確率等が、それを満たすか否かを判断すればよい。さらに、テスト実行時間が長いか否かも、予め閾値を設定しておけばよく、例えば、母集団全体のテスト実行時間の平均値に対して５倍以上の時間を要している等の閾値を設定しておき、あるテスト担当者のある時間帯についてのテスト実行時間等が、それを満たすか否かを判断すればよい。
【０１０３】
（分析例２）については、先ず、タイマー実行であるか否かは、ビルドの情報として、ビルド履歴記憶手段４５のビルド履歴ファイルに記録しておくか、あるいはテスト結果記憶手段４３のテスト結果ファイルに記録しておくことができる。また、これらの記録がなくても、タイマー実行は、就業時間外である夜間に実行されることが多いので、特定の夜間の時間帯（例えば、夜１０時〜早朝５時等）に実行されていれば、タイマー実行手段２４によるタイマー実行であると推定することができる。
【０１０４】
そして、あるテスト担当者が作成したジョブ（ジョブネットの場合は、その構成ジョブ）が、タイマー実行手段２４により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向があるか否かを分析する。
【０１０５】
（分析例３）については、先ず、アプリケーション等の更新に伴う自動実行であるか否かは、ビルドの情報として、ビルド履歴記憶手段４５のビルド履歴ファイルに記録しておくか、あるいはテスト結果記憶手段４３のテスト結果ファイルに記録しておくことができる。また、これらの記録がなくても、テスト自動実行手段２５による自動実行は定期的（例えば１日２回等）に行われるので、その時間帯に実行されていれば、テスト自動実行手段２５による自動実行であると推定することができる。
【０１０６】
そして、あるテスト担当者が作成したジョブ（ジョブネットの場合は、その構成ジョブ）が、テスト自動実行手段２５により実行されるか、またはテスト自動実行手段２５による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向があるか否かを分析する。
【０１０７】
分析結果出力手段３１は、テスト結果分析手段３０による分析結果データ（グラフ、判断結果等を含む。）を、テスト担当者やシステム管理者からの要求に応じてテスト担当者端末９０や図示されない管理者端末（テスト担当者端末９０と同様な機能・配置状況を有する端末）の画面上に表示するか、これらの端末若しくは自己の印刷装置で印刷するか、または分析結果記憶手段４６に記憶されている分析結果データを収めた分析結果ファイルを電子メールでテスト担当者のメールアドレスに自動送信する、すなわちネットワーク１を介してメールサーバ１１０に自動送信する処理を実行するものである。この際、送信先のテスト担当者のメールアドレスは、分析で送信対象者として決定されたテスト担当者の識別情報（名前、従業員コード等）を用いて、ユーザ情報管理サーバ７０のユーザ情報記憶手段７２から取得することができる。なお、テスト担当者のメールアドレスを、テスト担当者の識別情報（名前、従業員コード等）とともに、ビルド履歴としてビルド履歴記憶手段４５に記憶させておけば、分析で送信対象のテスト担当者を決定した段階で、そのメールアドレスも特定することが可能であり、そのようにしてもよいが、本実施形態では、各人のメールアドレスは変更される可能性もあるので、ユーザ情報管理サーバ７０のユーザ情報記憶手段７２から最新のメールアドレスを取得することとしている。
【０１０８】
また、分析結果出力手段３１は、テスト結果分析手段３０による上記の分析例２の分析において、あるテスト担当者が作成したジョブ（ジョブネットの場合は、その構成ジョブ）が、タイマー実行手段２４により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブ（ジョブネットの場合は、その構成ジョブ）について当該テスト担当者がタイマー設定を行おうとした際若しくは特定の夜間の時間帯へのタイマー設定を行おうとした際に、不具合が発生する旨を警告するタイマー設定時警告対象者情報として、当該テスト担当者の識別情報（名前、従業員コード等）を設定情報記憶手段４１に記憶させるか、または、タイマー設定をせずに手動実行を指示する電子メール、若しくはタイマー実行手段２４による実行で不具合が発生する旨を知らせてジョブ（ジョブネットの場合は、その構成ジョブ）の作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに自動送信する、すなわちネットワーク１を介してメールサーバ１１０に自動送信する処理を実行する。
【０１０９】
なお、分析結果出力手段３１が、上記のように、タイマー設定時警告対象者情報を、設定情報記憶手段４１に記憶させる処理を行った場合には、当該テスト担当者が、タイマー設定を行おうとした際若しくは特定の夜間の時間帯へのタイマー設定を行おうとした際には（後者の場合は、特定の夜間の時間帯以外の時間帯へのタイマー設定を行おうとした際には警告しないという意味である。）、設定手段２１により、当該テスト担当者の識別情報がタイマー設定時警告対象者情報として設定情報記憶手段４１に記憶されているか否かを判断し、記憶されている場合には、設定手段２１が、不具合が発生する旨の警告の表示用データを、ネットワーク１を介して当該テスト担当者の操作するテスト担当者端末９０に送信する。
【０１１０】
さらに、分析結果出力手段３１は、テスト結果分析手段３０による上記の分析例３の分析において、あるテスト担当者が作成したジョブ（ジョブネットの場合は、その構成ジョブ）が、テスト自動実行手段２５により実行されるか、またはテスト自動実行手段２５による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブ（ジョブネットの場合は、その構成ジョブ）の中で指定されているテスト自動実行手段２５による自動実行の対象とするための選択情報を解除するか、若しくはテスト自動実行手段２５による自動実行の対象として設定情報記憶手段４１に記憶されているジョブ（ジョブネットの場合は、その構成ジョブ）の識別情報（ジョブ名等）を無効にするか、または、テスト自動実行手段２５による自動実行の時間帯を避けた手動実行を指示する電子メール、若しくはテスト自動実行手段２５による実行で不具合が発生する旨を知らせてジョブ（ジョブネットの場合は、その構成ジョブ）の作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに自動送信する、すなわちネットワーク１を介してメールサーバ１１０に自動送信する処理を実行する。
【０１１１】
なお、分析結果出力手段３１が、上記のように、ジョブ（ジョブネットの場合は、その構成ジョブ）の中で指定されているテスト自動実行手段２５による自動実行の対象とするための選択情報を解除するか、若しくはテスト自動実行手段２５による自動実行の対象として設定情報記憶手段４１に記憶されているジョブ（ジョブネットの場合は、その構成ジョブ）の識別情報（ジョブ名等）を無効にする処理を行った場合には、テスト自動実行手段２５は、そのジョブ（ジョブネットの場合は、その構成ジョブ）について、使用するアプリケーション等の更新が行われたか否かの監視処理を行わず、更新に伴う自動実行は行わない。
【０１１２】
設定情報記憶手段４１は、設定手段２１により設定した各種の設定情報を記憶するものである。例えば、設定情報記憶手段４１は、ジョブやジョブネットをタイマー実行手段２４によりタイマー実行するためのタイマー実行時刻（年月日および時刻）と、そのタイマー実行の対象となるジョブやジョブネットの識別情報（例えば名称）とを関連付けて保存した設定ファイルを記憶する。また、設定情報記憶手段４１は、テスト自動実行手段２５によるアプリケーション等の更新に伴う自動実行の対象にされるジョブ（ジョブネットの構成ジョブを含む。）の識別情報（例えば名称）を保存した設定ファイルを記憶する。
【０１１３】
ジョブ記憶手段４２は、ジョブやジョブネットを記憶するものである。本実施形態では、ジョブ（ジョブネットの構成ジョブを含む。）を保存したジョブファイルを記憶する。
【０１１４】
テスト結果記憶手段４３は、繰り返し行われるテストのテスト結果データを蓄積記憶するものである。本実施形態では、テスト結果記憶手段４３は、テスト成否判定手段２６によりテストの成功・失敗を判定した成否判定結果を、ビルドの識別情報（例えば、ジョブ実行を繰り返すと１ずつ増番していくビルド番号）とともに、テスト結果データとして収めた各テストのテスト結果ファイルを記憶する。なお、テスト結果記憶手段４３は、テスト成否判定手段２６による成否判定結果を、ビルドの情報そのもの（テスト担当者の識別情報、テスト実行時間、テスト実施時刻等）とともに、テスト結果データとして記憶してもよい。
【０１１５】
プロジェクト情報記憶手段４４は、開発プロジェクトに関与する者（アプリケーション開発者、テスト担当者等）の識別情報（例えば、名前、従業員コード等）の一覧を記録するものである。なお、メールアドレスは、このプロジェクト情報記憶手段４４には記憶されておらず、ユーザ情報管理サーバ７０のユーザ情報記憶手段７２に記憶されているが、プロジェクト情報記憶手段４４にメールアドレスを記憶させてもよい。
【０１１６】
ビルド履歴記憶手段４５は、繰り返し行われるテストについての各回のビルドの情報を、各回のビルドの識別情報（例えばビルド番号）と関連付けて蓄積記憶するものである。１回１回のテストについてのビルドの情報（ジョブ実行の情報）には、例えば、テスト担当者（ジョブ作成者）の識別情報（名前、従業員コード等）、処理に要したテスト実行時間（ジョブ実行時間であり、ジョブネットの場合には、各構成ジョブのジョブ実行時間またはそれに加えてジョブネット全体の実行時間）、テスト実施時刻（ジョブを起動した年月日および時刻であり、ジョブネットの場合には、各構成ジョブの実施時刻）、実際に使用（展開）したテストデータ（アプリケーションを含む。）やテストシナリオおよびそれらのバージョン情報等が含まれる。本実施形態では、ビルド履歴記憶手段４５は、繰り返された複数回のテスト（複数回のビルド）についてのビルドの情報を、ビルド履歴として１つにまとめて保存したビルド履歴ファイルを記憶するが、１回１回のテスト毎（１回１回のビルド毎）に、個々のビルドファイルを作成し、それらを記憶してもよい。
【０１１７】
分析結果記憶手段４６は、テスト結果分析手段３０により得られた分析結果データ（グラフ、判断結果等を含む。）を記憶するものである。本実施形態では、分析結果記憶手段４６は、分析結果データを収めた分析結果ファイルを記憶する。
【０１１８】
レポジトリサーバ５０は、１台または複数台のコンピュータにより構成され、テスト資源管理手段５１と、テスト資源記憶手段５２とを備えている。
【０１１９】
テスト資源管理手段５１は、テスト資源である各種データを収めたファイルの登録、更新、削除等のファイルの管理処理を、バージョン管理を行いながら実行するものである。また、テスト資源管理手段５１は、テスト自動実行手段２５からのテストデータやテストシナリオの最新バージョンの問合せに対し、応答する処理を実行する。
【０１２０】
テスト資源記憶手段５２は、テスト対象システム２００に配置される上層のアプリケーションから下層のオペレーティングシステムまでを含む各種のテストデータと、テスト内容を定めたテストシナリオとを、それぞれのバージョン情報とともに記憶するものである。本実施形態では、テストシナリオは、エクセルファイルで作成され、打鍵用の入力データも含んでいる。通常、１回のテストで多数のテストシナリオ（エクセルファイル）が使用される。
【０１２１】
課題管理サーバ６０は、１台または複数台のコンピュータにより構成され、課題管理手段６１と、課題記憶手段６２とを備えている。
【０１２２】
課題管理手段６１は、テスト統括管理サーバ２０からネットワーク１を介して送信されてくるテストについての失敗の詳細情報（テスト成否判定手段２６により失敗と判定されて課題登録手段２８により送信されてくる失敗の詳細情報）を、ジョブ（ジョブネットの場合には、構成ジョブ）の識別情報（例えばジョブ名）と関連付けて課題記憶手段６２に記憶させる処理を実行するものである。
【０１２３】
また、課題管理手段６１は、開発者端末１００からネットワーク１を介して送信されてくるアプリケーション開発者による失敗原因の解析のための課題の閲覧要求信号を受信し、閲覧要求に係るジョブ（ジョブネットの構成ジョブを含む。）により実行されたテストについての失敗の詳細情報を課題記憶手段６２から取得し、取得した失敗の詳細情報の表示用データを、ネットワーク１を介して開発者端末１００に送信し、アプリケーション開発者による修正箇所の記録や課題管理表のクローズの操作を受け付ける処理を実行する。
【０１２４】
課題記憶手段６２は、テストについての失敗の詳細情報（アプリケーション開発者が失敗原因を特定するための情報であり、エラーコード等である。）を、ジョブ（ジョブネットの場合には、構成ジョブ）の識別情報（例えばジョブ名）、ステータス（登録されたばかりであることを示す「Ｎｅｗ」、修正作業中であることを示す「実行中」、修正作業完了を示す「クローズ」等の別がある。）、日付（「Ｎｅｗ」→「実行中」→「クローズ」等というステータスの変更に伴い変わっていく。）、課題修正担当者（最初の登録時はテスト統括管理サーバ２０であり、その後のアクセスでアプリケーション開発者に変わる。）等と関連付けて記憶するものである。なお、本実施形態では、１回のジョブ実行により、多数のテストシナリオが使用され（従って、多数の打鍵が行われ）、１つのテストシナリオに対して１つの成功または失敗があるので、課題記憶手段６２である課題データベースのレコードは、失敗したテストシナリオ毎に作成され、同じジョブについて複数の失敗したテストシナリオのレコードが存在することがあるが、失敗の詳細情報の中に、失敗したテストシナリオについての識別情報（ファイル名、シナリオ名等）、バージョン番号、レポジトリサーバ５０のテスト資源記憶手段５２内の格納場所（ディレクトリ）が入っているため、それでテストシナリオを特定することができる。
【０１２５】
ユーザ情報管理サーバ７０は、１台または複数台のコンピュータにより構成され、ユーザ情報管理手段７１と、ユーザ情報記憶手段７２とを備えている。
【０１２６】
ユーザ情報管理手段７１は、テスト担当者端末９０や開発者端末１００等の社内の様々な端末からのアクセスを受け付け、ユーザ情報記憶手段７２への各社員の情報の登録、変更、削除等を含む登録処理を実行するとともに、端末やサーバからの要求に応じ、各社員の情報の検索処理や送信処理を実行するものである。
【０１２７】
ユーザ情報記憶手段７２は、様々なプロジェクトに属するアプリケーション開発者やテスト担当者（ジョブ作成者）を含む全社員の各種情報、例えば、メールアドレス、生年月日、年齢、所属部署、職種、階級等を、各社員の識別情報（名前、従業員コード等）と関連付けて記憶するものである。
【０１２８】
打鍵テストマシン８０は、コンピュータにより構成され、ジョブ実行手段２３の補助処理手段（不図示）を備えている。この打鍵テストマシン８０は、例えば、顧客による普通預金口座への振込処理のテストを行う場合には、ネットワーク２を介してテスト対象システム２００との通信を行う仮想的な顧客端末である。例えば、ジェンキンスの場合には、この打鍵テストマシン８０にジェンキンス・スレーブ・エージョントを搭載することによりテスト統括管理サーバ２０のスレーブマシンとし、ジョブ実行手段２３の補助処理手段として機能させることができる。この打鍵テストマシン８０は、複数台設けてもよい。
【０１２９】
テスト担当者端末９０や開発者端末１００は、コンピュータにより構成され、例えば液晶ディスプレイやＣＲＴディスプレイ等の表示手段と、例えばマウスやキーボード等の入力手段とを備え、適宜、印刷装置を備えている。これらの端末９０，１００は、それぞれネットワーク１に何台接続されていてもよい。また、汎用のＷｅｂブラウザを搭載していればよく、テストに必要な専用のソフトウェアをインストールする必要はない。さらに、これらの端末９０，１００は、例えば、タブレット端末、携帯情報端末（ＰＤＡ）、携帯電話機（ＰＨＳも含む。）等の携帯機器であってもよい。
【０１３０】
メールサーバ１１０は、社内または社外に設置されたコンピュータにより構成され、電子メールの送受信を行うものであるが、テスト以外の用途の電子メールの送受信も行う通常の構成のものでよい。
【０１３１】
以上において、テスト統括管理サーバ２０、レポジトリサーバ５０、課題管理サーバ６０、ユーザ情報管理サーバ７０は、それぞれ１台のコンピュータあるいは１つのＣＰＵにより実現されるものに限定されず、複数のコンピュータあるいは複数のＣＰＵで分散処理を行うことにより実現されるものであってもよい。
【０１３２】
また、テスト統括管理サーバ２０を構成する処理手段２０Ａに含まれる各手段２１〜３１、レポジトリサーバ５０を構成するテスト資源管理手段５１、課題管理サーバ６０を構成する課題管理手段６１、ユーザ情報管理サーバ７０を構成するユーザ情報管理手段７１は、各サーバ２０，５０，６０，７０を構成するコンピュータ本体の内部に設けられた中央演算処理装置（ＣＰＵ）、およびこのＣＰＵの動作手順を規定する１つまたは複数のプログラム（ジョブ実行手段２３の場合には、ジョブも含まれる。）により実現される。
【０１３３】
さらに、テスト統括管理サーバ２０を構成する各記憶手段４１〜４６、レポジトリサーバ５０を構成するテスト資源記憶手段５２、課題管理サーバ６０を構成する課題記憶手段６２、ユーザ情報管理サーバ７０を構成するユーザ情報記憶手段７２は、例えばハードディスク等により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、フラッシュ・メモリ等のその他の記録媒体を採用してもよい。
【０１３４】
このような本実施形態においては、以下のようにしてテスト管理システム１０により、テスト対象システム２００の動作確認テストが実行される。
【０１３５】
先ず、アプリケーション開発者は、開発者端末１００を操作し、作成したテストデータおよびテストシナリオを、バージョン情報とともに、レポジトリサーバ５０のテスト資源記憶手段５２に登録して記憶させておく。登録するテストデータには、アプリケーション（ここでは、ソースコードのプログラムである。）が含まれる。このバージョン管理を伴う登録処理は、テスト資源管理手段５１により受け付けられて実行される。なお、バージョン１の登録を行っても、テスト自動実行手段２５による自動実行は行われない。
【０１３６】
次に、テスト担当者は、テスト担当者端末９０を操作し、ジョブ（ジョブネットの構成ジョブを含む。）を作成し、作成したジョブ（ジョブファイル）をジョブ記憶手段４２に登録して記憶させておく。この登録処理は、テスト統括管理サーバ２０のジョブ作成手段２２により受け付けられて実行される。
【０１３７】
また、テスト担当者は、作成したジョブ（ジョブネットの場合には、その先頭ジョブ）をタイマー実行手段２４により夜間等にタイマー実行したい場合には、テスト担当者端末９０を操作し、タイマー実行時刻を、設定情報記憶手段４１に設定して記憶させておく。この設定処理は、テスト統括管理サーバ２０の設定手段２１により受け付けられて実行される。なお、ここでは、タイマー実行をせずに、手動実行するものとして以下の説明を行う。
【０１３８】
図２において、テスト担当者は、テスト担当者端末９０を操作し、作成済みのジョブの一覧を示す実行ジョブ選択画面の送信要求を、ネットワーク１を介してテスト統括管理サーバ２０に送信する。テスト統括管理サーバ２０では、ジョブ実行手段２３により、この送信要求を受信すると、実行ジョブ選択画面の表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信する。すると、テスト担当者端末９０の画面上には、実行ジョブ選択画面が表示されるので、テスト担当者は、この実行ジョブ選択画面において、実行対象のジョブ（ジョブネットを実行する場合には、その先頭のジョブ）を選択し、その選択情報を、ネットワーク１を介してテスト統括管理サーバ２０に送信する。ここでは、ジョブネットを実行するために、その先頭ジョブが実行対象として選択されたものとする。そして、テスト統括管理サーバ２０では、ジョブ実行手段２３により、このジョブの選択情報を受信する。ここまでが、ジョブ実行手段２３による実行ジョブ選択受付処理である。
【０１３９】
それから、ジョブ実行手段２３により、テスト担当者端末９０から受信した選択情報で指定されているジョブネットを構成する複数のジョブを示す各図形を実行順序の通りに並べて画面表示するための表示用データを、ネットワーク１を介してテスト担当者端末９０へ送信するジョブ図形表示処理を行う。すると、テスト担当者端末９０の画面上には、図３の例に示すようなジョブネットの各構成ジョブを示す複数の図形３０１〜３０５を並べた表示が行われる。このジョブネットに係るジョブ図形表示処理の内容については、既に詳述しているため、ここでは説明を省略する。なお、図３の例は、イメージとして挙げたものであり、図２のフローチャートの記載と完全に対応するものではない。
【０１４０】
続いて、テスト担当者は、テスト担当者端末９０に画面表示されたジョブネットの先頭ジョブを示す図形中またはその近傍に設けられた実行ボタン（図３の例では、図形３０１の中に設けられた実行ボタン３０６）をクリック操作し、先頭ジョブの実行を開始させるための実行指令を、ネットワーク１を介してテスト統括管理サーバ２０へ送信する（ステップＳ１）。テスト統括管理サーバ２０では、ジョブ実行手段２３により、テスト担当者端末９０から送信されてくる実行指令を受信し、受信した実行指令に基づき、ジョブ記憶手段４２に記憶された先頭ジョブのジョブファイルを用いて先頭ジョブを実行させる（ステップＳ１）。ここから、ジョブ実行手段２３によるジョブネットに係るジョブ実行処理が開始される。なお、ここでは、先頭ジョブは、テスト環境構築ジョブであるものとする。
【０１４１】
それから、テスト環境構築ジョブの記述内容に従って、ジョブ実行手段２３により、レポジトリサーバ５０のテスト資源記憶手段５２から、そのテスト環境構築ジョブで指定されているテストデータ（アプリケーションを含む。）を、バージョン情報とともに取得する（ステップＳ２）。
【０１４２】
さらに、テスト環境構築ジョブの記述内容に従って、ジョブ実行手段２３により、テスト対象システム２００について旧環境のバックアップを行う（ステップＳ３）。ここでは、テスト対象システム２００は、開発環境下に置かれているが、その開発環境下にある各サーバ２１０，２２０，２３０のデータ（アプリケーション等を含む。）を退避させる。
【０１４３】
続いて、テスト環境構築ジョブの記述内容に従って、ジョブ実行手段２３により、ステップＳ２で取得したテストデータのうち、アプリケーションを除くテストデータ（データベース２３１のデータ、アプリケーションの下層のソフトウェアやＯＳ等）を、ネットワーク２を介してＦＴＰ送信等によりテスト対象システム２００に設定する（ステップＳ４）。
【０１４４】
それから、ジョブネットで指定した実行順序の通りに、ジョブ記憶手段４２に記憶されたビルドジョブ（ジョブファイル）を自動的に起動して実行し、そのビルドジョブの記述内容に従って、ジョブ実行手段２３により、ステップＳ２で取得したテストデータのうち、アプリケーションを、ネットワーク２を介してＦＴＰ送信等によりテスト対象システム２００に配置する（ステップＳ５）。なお、レポジトリサーバ５０のテスト資源記憶手段５２からのアプリケーションの取得は、ステップＳ２ではなく、このステップＳ５で行ってもよい。
【０１４５】
その後、ジョブネットで指定した実行順序の通りに、ジョブ記憶手段４２に記憶された打鍵テストのテストジョブ（ジョブファイル）を自動的に起動して実行し、そのテストジョブの記述内容に従って、ジョブ実行手段２３により、レポジトリサーバ５０のテスト資源記憶手段５２から、そのテストジョブで指定されているテストシナリオを、バージョン情報とともに取得する（ステップＳ６）。通常、１つのテストジョブで多数のテストシナリオを使用するので、多数のテストシナリオをそれぞれのバージョン情報とともに取得することになる。
【０１４６】
続いて、打鍵テストのテストジョブの記述内容に従って、ジョブ実行手段２３により、テストシナリオ（エクセルファイル）を１つずつ、そのテストシナリオの実行指令とともに、ネットワーク１を介して打鍵テストマシン８０に送信する（ステップＳ７）。この際、テストシナリオのバージョン情報は、テスト統括管理サーバ２０で把握しているので、打鍵テストマシン８０に送信しなくてもよい。なお、１つずつ送信するというのは、実行結果を受信したら、次のテストシナリオを送信するという意味である。
【０１４７】
さらに、打鍵テストマシン８０では、ジョブ実行手段２３の補助処理手段（不図示）により、テスト統括管理サーバ２０から送信されてくるテストシナリオおよびその実行指令を受信すると、そのテストシナリオを実行し、そのテストシナリオに含まれている打鍵用の入力データを、ネットワーク２を介してテスト対象システム２００に送信する（ステップＳ８）。
【０１４８】
続いて、テスト対象システム２００は、打鍵用の入力データを受信して普通預金口座への振込処理等のテスト対象の処理を実行し、その実行結果を、ネットワーク２を介して打鍵テストマシン８０に送信する（ステップＳ９）。
【０１４９】
それから、打鍵テストマシン８０では、ジョブ実行手段２３の補助処理手段（不図示）により、テスト対象システム２００から送信されてくる実行結果を受信し、受信した実行結果を、ネットワーク１を介してテスト統括管理サーバ２０に転送する（ステップＳ１０）。
【０１５０】
続いて、テスト統括管理サーバ２０では、打鍵テストマシン８０から転送されてくる実行結果を受信すると、テスト成否判定手段２６により、その実行結果を用いて、テストの成功・失敗を自動判定する（ステップＳ１１）。
【０１５１】
その後、１回のテスト（１つのテストジョブの実行）に係る全てのテストシナリオの実行を終了した後に、または各テストシナリオの実行の終了の都度に、課題登録手段２８により、テスト成否判定手段２６により失敗と判定されたテスト（失敗したテストシナリオの全て）についての失敗の詳細情報を、ネットワーク１を介して課題管理サーバ６０に送信する。そして、課題管理サーバ６０では、課題管理手段６１により、テスト統括管理サーバ２０から送信されてくる失敗の詳細情報を受信し、受信した失敗の詳細情報を、テストジョブの識別情報（例えばジョブ名）と関連付けて課題記憶手段６２に記憶させる（ステップＳ１１）。
【０１５２】
また、１回のテストに係る全てのテストシナリオの実行を終了した後に、テスト結果登録手段２７により、テスト成否判定手段２６による成否判定結果を、ビルドの識別情報（例えばビルド番号）とともに、テスト結果データとしてテスト結果記憶手段４３に記憶させる（ステップＳ１１）。また、テスト結果登録手段２７により、テスト担当者（ジョブ作成者）の識別情報（名前、従業員コード等）、処理に要したテスト実行時間、テスト実施時刻、実際に使用（展開）したテストデータ（アプリケーションを含む。）やテストシナリオおよびそれらのバージョン情報等のビルド（ジョブ実行）の情報を、ビルドの識別情報（例えばビルド番号）と関連付けてビルド履歴記憶手段４５に記憶させる（ステップＳ１１）。
【０１５３】
さらに、テスト結果伝達手段２９により、失敗したジョブで使用されたテストデータ（アプリケーションを含む。）やテストシナリオを作成したアプリケーション開発者、および／または、失敗したジョブを作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを自動送信する、すなわちネットワーク１を介してメールサーバ１１０に自動送信する（ステップＳ１２）。
【０１５４】
そして、ジョブネットで指定した実行順序の通りに、ジョブ記憶手段４２に記憶された環境戻しジョブ（ジョブファイル）を自動的に起動して実行し、その環境戻しジョブの記述内容に従って、ジョブ実行手段２３により、テスト対象システム２００を、ステップＳ３でバックアップしておいた旧環境に戻す（ステップＳ１３）。
【０１５５】
その後、アプリケーション開発者は、失敗原因を解析するため、開発者端末１００を操作し、課題の閲覧要求信号を、ネットワーク１を介して課題管理サーバ６０に送信する（ステップＳ１４）。課題管理サーバ６０では、課題管理手段６１により、開発者端末１００から送信されてくる課題の閲覧要求信号を受信し、閲覧要求に係るジョブにより実行されたテストについての失敗の詳細情報を課題記憶手段６２から取得し、取得した失敗の詳細情報の表示用データを、ネットワーク１を介して開発者端末１００に送信する（ステップＳ１４）。
【０１５６】
そして、アプリケーション開発者は、失敗原因を解析し、特定したら、失敗したジョブで使用されたテストデータ（アプリケーションを含む。）やテストシナリオを修正し、修正したテストデータ等を、レポジトリサーバ５０のテスト資源記憶手段５２に記憶させる（ステップＳ１５）。すると、この修正したテストデータ（アプリケーションを含む。）やテストシナリオの登録、すなわちバージョンアップにより、アプリケーション等の更新に伴うテスト自動実行手段２５による自動実行が行われる場合がある（自動実行の設定が行われていた場合には、自動実行が行われる）。また、アプリケーション開発者は、テスト対象システム２００に設定されたテストデータ等に修正を加える場合もある（ステップＳ１５）。
【０１５７】
最後に、アプリケーション開発者は、開発者端末１００を操作し、課題管理サーバ６０にアクセスする。課題管理サーバ６０では、課題管理手段６１により、このアクセスを受け付け、アプリケーション開発者による修正箇所の記録や、課題管理表のクローズ処理（ステータスを「クローズ」にする処理）を実行する（ステップＳ１６）。
【０１５８】
このような本実施形態によれば、次のような効果がある。すなわち、テスト管理システム１０は、ジョブ記憶手段４２により、ジョブネットを形成する全てのジョブを記憶することができ（ジョブネットが、前述した第３の作成方法で作成されている場合には、実行順序管理ジョブも記憶し、前述した第４の作成方法で作成されている場合には、結合ジョブも記憶することができる。）、ジョブ実行手段２３により、そのジョブネットを実行することができるので、テスト環境構築ジョブおよびテストジョブを含む複数のジョブを、指定した実行順序に従って連続実行することができる。
【０１５９】
このため、一連のテストについて、手作業を少なくし、いわゆるヒューマンエラーの発生確率を抑制することができるので、納期の短縮や、テスト担当者の作業負担の軽減を図ることができる。
【０１６０】
また、従来は手作業が多いことから、時間や予算の都合上、十分なテストを行うことができない場合も多々あったが、テスト管理システム１０では、ジョブネットの構成ジョブの連続実行の実現により、そのような事態を避けることができ、テストの品質や信頼性を高めることができる。
【０１６１】
さらに、従来のテストは、テスト手順書に従って行う人手による作業が多かったため、属人化が発生し、個人の技量によりテスト手順が異なってくる場合もあったが、テスト管理システム１０では、ジョブネットの構成ジョブの連続実行の実現により、そのような属人化を抑制することができる。このため、テストの品質や信頼性についての均質化を図ることができ、さらにはシステムの開発効率について個人間の差異を少なくし、均一化を図ることができる。そして、人手による作業が少なくなることから、人事異動があるたびに教育コストが発生する、あるいは異動直後に様々なトラブルが発生するといった諸問題も解決することができる。
【０１６２】
また、ジョブ実行手段２３により、ジョブ図形表示処理、およびテスト進捗表示処理が行われるので（図３、図４参照）、この可視化により、テスト担当者は、実行手順を含めたテストの全体的内容や、テストの進捗をテスト担当者端末９０の画面上で容易に把握し、理解することができるため、テスト担当者の確認や監視の負担を減らすことができ、これによってもテスト担当者の作業負担の軽減を図ることができる。
【０１６３】
さらに、テスト管理システム１０では、テストで使用するテストデータやテストシナリオは、テスト資源記憶手段５２に記憶され、ジョブ実行手段２３は、そこに記憶されたテストデータやテストシナリオを使用してテストを実施するので、従来のように特定のテスト担当者やアプリケーション開発者が、自分に関係するテストデータやテストシナリオを自分で保存・管理するという状況を解消することができる。このため、他の者、例えば、テスト担当やアプリケーション開発を引き継いだ者、一時的に交替する者等が、テスト資源記憶手段５２に記憶されているテストデータやテストシナリオを再利用して次回テストを実施することや、それらの更新作業を行うことができるので、テスト準備にかかる時間と手間を大幅に削減することができ、テストの品質の標準化、信頼性の向上を図ることができる。
【０１６４】
そして、従来、一連のテストのうちの一部の工程について、テスト担当者が人手による操作で個別に起動して使用していた１つまたは複数のテストツール（単機能のテストロボット）を、ジョブネットを構成する１つまたは複数のテストジョブの実行により自動的に呼び出して起動させれば、任意の数の既存または新設のテストツールの自動連携を実現することができる。
【０１６５】
また、テスト管理システム１０を通してテストツール（単機能のテストロボット）を利用することで、実行したテストにおいて、どのテストツールを利用したのかがビルドの情報としてビルド履歴記憶手段４５に記憶されるので、テスト管理システム１０における各テストツールの稼働状況を把握することができる。このため、経済効果、投資対効果の測定が可能になり、その結果、利用状況に応じたテストツールの強化・改善等を行うことができるようになる。
【０１６６】
また、テスト管理システム１０は、テスト自動実行手段２５を備えているので、アプリケーション等の更新に伴い、テストを自動実行することができる。このため、時間的制約や失念等によるテストの不実施を回避でき、十分なテストを行うことができる。そして、この自動実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができるので、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができる。
【０１６７】
さらに、テスト管理システム１０は、タイマー実行手段２４、および設定情報記憶手段４１を備えているので、タイマー実行時刻の設定により、夜間等の就業時間外や、自己の外出時間帯等にテストを実施することができる。従って、例えば、開発作業を日中に行い、テストを業務終了後（夕方、深夜等）に実施することができる。また、このタイマー実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができる。このため、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができる。
【０１６８】
また、テスト管理システム１０は、テスト成否判定手段２６、テスト結果登録手段２７、テスト結果記憶手段４３、テスト結果分析手段３０、および分析結果出力手段３１を備えているので、テスト結果の統計分析を自動的に行い、その分析結果を表示、印刷、またはメール送信することができる。このため、従来のように非常に多くのテスト結果（例えば、数千から数万のテスト結果）について人手による分析作業を行う場合に比べ、作業負荷を減らすことができるので、十分な分析を行うことができ、精度の高いテスト結果の検証を実現することができる。
【０１６９】
また、テスト結果登録手段２７により、テストの成否判定結果が、ビルドの識別情報（ビルド番号等）とともに、テスト結果データとしてテスト結果記憶手段４３に保存され、さらに、ビルドの情報（テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含む。）が、ビルドの識別情報（ビルド番号等）に関連付けられてビルド履歴記憶手段４５に保存されるので、従来のように各テストの際に使用したテストデータやテスト手順書等のドキュメント類の管理を人手により行っていた場合に比べ、各テストまたはそれらの成功・失敗の情報と、各テストの際に使用したテストデータやテストシナリオとの紐付けを十分に行うことができる。また、いつ、誰がテストを行ったのかについても、従来のように人手により管理していた場合に比べ、紐付けを十分に行うことができる。このため、効果的な分析を実現し、分析結果を十分に活かすことができる。
【０１７０】
さらに、テスト結果記憶手段４３に記憶させるテスト結果データや、ビルド履歴記憶手段４５に記憶させるビルドの情報は、テスト結果登録手段２７により自動的に作成され、登録されるものであり、人手によるデータ登録作業ではないので、登録内容について各テスト担当者間のばらつきや毎回のばらつきが生じることはなく、一様な表現が可能となり、標準化することができる。このため、テスト網羅性の向上やレビュー精度の向上が期待できる。また、テスト結果登録手段２７によるテスト結果データやビルドの情報の自動登録により、テスト担当者が人手による登録作業を行う場合の手間や時間を省略することができる。
【０１７１】
そして、テスト管理システム１０では、テスト結果分析手段３０による分析結果が、タイマー実行手段２４やテスト自動実行手段２５による処理に結び付けられているので、分析結果を、より一層、十分に活かすことができる。
【０１７２】
また、テスト管理システム１０は、テスト成否判定手段２６、課題登録手段２８、課題記憶手段６２、テスト結果伝達手段２９、および課題管理手段６１を備えているので、失敗の詳細情報を課題記憶手段６２に自動的に記憶させることにより、膨大な件数の失敗の情報を、効率的に管理することができる。このため、従来のように失敗の情報を人手により課題管理表に登録し、解析を行い、解析で得られた失敗事由を記載していた場合に比べ、作業負荷の軽減、失敗事由の解析時間の短縮、原因究明の容易化・早期化を図ることができるうえ、失敗に関する情報不足により解析できないといったケースの発生を未然に防止することもできる。
【０１７３】
さらに、テスト管理システム１０では、複数のジョブを同時並行的に実行することを含むジョブの実行順序を指定したジョブネットを形成し、この並列処理を含むジョブネットを、ジョブ記憶手段４２に記憶しておくことができ、ジョブ実行手段２３は、この並列処理を含むジョブネットに対応したジョブ実行処理、ジョブ図形表示処理、およびテスト進捗表示処理を実行することができる（図４参照）。このため、ジョブネット全体の処理時間の短縮を図ることができる。
【０１７４】
そして、ジョブ実行手段２３は、テスト進捗表示処理として、ジョブを示す図形の中またはその近傍に、ジョブの実施時刻や実行時間を表示するので、その文字（数字を含む。）の表示の有無によるテスト進捗表示を実現することができるうえ、その文字（数字を含む。）の有する意味内容を、テスト担当者に伝達することもできる。
【０１７５】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【０１７６】
例えば、前記実施形態では、テスト管理システム１０は、複数のサーバ２０，５０，６０，７０を備え、これらをネットワーク１により接続して構成されていたが、本発明のテスト管理システムは、このような構成に限定されるものでなく、例えば、複数のサーバ２０，５０，６０，７０は、１つのサーバ（例えば、テスト統括管理サーバ２０）にまとめてもよく、逆に、より多くのサーバに機能分散させてもよい。
【０１７７】
また、前記実施形態では、テスト管理システム１０は、打鍵テストマシン８０を備えた構成とされていたが、この打鍵テストマシン８０の設置は省略することができる。
【０１７８】
さらに、前記実施形態では、テスト管理システム１０は、テスト担当者端末９０を備え、これをネットワーク１により各サーバ２０，５０，６０，７０に接続して構築されたＷｅｂシステム（サーバ・クライアント型のシステム）とされていたが、単体のコンピュータにより構築したスタンドアロン型のシステムとしてもよい。但し、テスト担当者、アプリケーション開発者、システム管理者等の関係者が、複数人いることや、異なる部署や遠隔地にいる場合等を考慮すると、ネットワーク１を介して各端末９０，１００等からアクセスできるシステムにしておくことが好ましい。
【０１７９】
なお、図１では、開発者端末１００やメールサーバ１１０は、テスト管理システム１０の外側に記載されているが、テストに関する処理を行う限りにおいて、これらをテスト管理システム１０に含めて考えてもよい。
【産業上の利用可能性】
【０１８０】
以上のように、本発明のテスト管理システムおよびプログラムは、例えば、分散系アプリケーションシステムの開発において継続的に実行されるテスト等に用いるのに適している。
【符号の説明】
【０１８１】
１  ネットワーク
１０  テスト管理システム
２３  ジョブ実行手段
２４  タイマー実行手段
２５  テスト自動実行手段
２６  テスト成否判定手段
２７  テスト結果登録手段
２８  課題登録手段
２９  テスト結果伝達手段
３０  テスト結果分析手段
３１  分析結果出力手段
４１  設定情報記憶手段
４２  ジョブ記憶手段
４３  テスト結果記憶手段
４６  分析結果記憶手段
９０  テスト担当者端末
１００  開発者端末
２００  テスト対象システム
【要約】
【課題】テスト品質の均一化、納期の短縮、テスト担当者の作業負担の軽減を図ることができるテスト管理システムを提供する。
【解決手段】テストデータおよびテストシナリオを記憶するテスト資源記憶手段５２と、テストデータをテスト対象システム２００に設定するテスト環境構築ジョブ、およびテストシナリオを用いてテストを実行するテストジョブを含む複数のジョブを組み合わせてこれらの実行順序を指定して形成されたジョブネットを記憶するジョブ記憶手段４２と、ジョブネットで指定された実行順序に従って複数のジョブを連続実行するとともに、複数のジョブのそれぞれを示す各図形を実行順序の通りに並べて画面表示し、テスト進捗表示を行うジョブ実行手段２３とを設け、テスト管理システム１０を構成した。
【選択図】図１【図１】
0005989194.tif 000002
【図２】
0005989194.tif 000003
【図３】
0005989194.tif 000004
【図４】
0005989194.tif 000005