特許第5989194号(P5989194)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社大和総研の特許一覧

<>
  • 特許5989194-テスト管理システムおよびプログラム 図000002
  • 特許5989194-テスト管理システムおよびプログラム 図000003
  • 特許5989194-テスト管理システムおよびプログラム 図000004
  • 特許5989194-テスト管理システムおよびプログラム 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】5989194
(24)【登録日】2016年8月19日
(45)【発行日】2016年9月7日
(54)【発明の名称】テスト管理システムおよびプログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20160825BHJP
   G06F 9/44 20060101ALI20160825BHJP
   G06F 11/32 20060101ALI20160825BHJP
【FI】
   G06F11/36 172
   G06F9/06 620J
   G06F11/32 140
【請求項の数】10
【全頁数】36
(21)【出願番号】特願2015-134351(P2015-134351)
(22)【出願日】2015年7月3日
【審査請求日】2015年8月31日
(73)【特許権者】
【識別番号】510161314
【氏名又は名称】株式会社大和総研
(74)【代理人】
【識別番号】100114638
【弁理士】
【氏名又は名称】中野 寛也
(72)【発明者】
【氏名】石井 最澄
(72)【発明者】
【氏名】相原 一也
(72)【発明者】
【氏名】中村 成克
(72)【発明者】
【氏名】佐川 竜太
(72)【発明者】
【氏名】山野 洋一郎
【審査官】 多賀 実
(56)【参考文献】
【文献】 特開平01−255940(JP,A)
【文献】 特開2007−004255(JP,A)
【文献】 特開平06−149597(JP,A)
【文献】 特開平01−261737(JP,A)
【文献】 特開2002−117196(JP,A)
【文献】 長谷川 孝二,「iOSアプリテスト自動化入門」,株式会社秀和システム,2014年 3月20日,第1版,pp.203−216
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44
G06F11/28−11/36
(57)【特許請求の範囲】
【請求項1】
テスト対象システムの動作確認テストの実行および管理を行うコンピュータにより構成されたテスト管理システムであって、
前記テスト対象システムに格納若しくは配置するテストデータおよびテスト内容を指定したテストシナリオを記憶するテスト資源記憶手段と、
このテスト資源記憶手段に記憶された前記テストデータを前記テスト対象システムに格納若しくは配置するテスト環境構築ジョブ、および前記テスト資源記憶手段に記憶された前記テストシナリオを用いてテストを実行するテストジョブを含む複数のジョブを組み合わせてこれらのジョブの実行順序を指定して形成されたジョブネットを記憶するジョブ記憶手段と、
このジョブ記憶手段に記憶された前記ジョブネットで指定されている実行順序に従って前記複数のジョブを連続実行するジョブ実行処理、前記複数のジョブのそれぞれを示す複数の図形を実行順序の通りに並べて画面表示するとともに各図形の中若しくはその近傍にジョブの名称および/またはジョブの内容を簡単に示す説明文を表示するジョブ図形表示処理、並びに、前記複数の図形を用いて実行中のジョブを示すテスト進捗表示処理を実行するジョブ実行手段と
を備えたことを特徴とするテスト管理システム。
【請求項2】
前記ジョブ記憶手段に記憶された前記ジョブネットのうち自動実行の対象として予め指定されているジョブネットの構成ジョブについて、前記テスト資源記憶手段に記憶された前記構成ジョブの実行に用いられる前記テストデータまたは前記テストシナリオが更新されたか否かを監視し、更新されたと判断した場合には、前記ジョブ実行手段による前記ジョブ実行処理を開始させる処理を実行するテスト自動実行手段を備えたことを特徴とする請求項1に記載のテスト管理システム。
【請求項3】
前記ジョブ記憶手段に記憶された前記ジョブネットをタイマー起動により実行するためのタイマー実行時刻を、前記ジョブネットの識別情報と関連付けて記憶する設定情報記憶手段と、
この設定情報記憶手段に記憶された前記タイマー実行時刻が到来したか否かを監視し、到来したと判断した場合には、到来した前記タイマー実行時刻に係る前記ジョブネットについて前記ジョブ実行手段による前記ジョブ実行処理を開始させる処理を実行するタイマー実行手段と
を備えたことを特徴とする請求項1または2に記載のテスト管理システム。
【請求項4】
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、前記テスト結果データとして前記テスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
前記テスト結果記憶手段に蓄積記憶された複数の前記テスト結果データを用いて、テスト時間帯および/またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果を画面表示若しくは印刷するか、または前記分析結果を保存した分析結果ファイルを、電子メールでテスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えたことを特徴とする請求項1〜3のいずれかに記載のテスト管理システム。
【請求項5】
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、前記テスト結果データとして前記テスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
前記テスト結果記憶手段に蓄積記憶された複数の前記テスト結果データを用いて、テスト時間帯および/またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、前記テスト自動実行手段により実行されるか、または前記テスト自動実行手段による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブの中で指定されている前記テスト自動実行手段による自動実行の対象とするための選択情報を解除するか、若しくは前記テスト自動実行手段による自動実行の対象として設定情報記憶手段に記憶されているジョブネット若しくはその構成ジョブの識別情報を無効にするか、または、前記テスト自動実行手段による自動実行の時間帯を避けた手動実行を指示する電子メール、若しくは前記テスト自動実行手段による実行で不具合が発生する旨を知らせて前記ジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えたことを特徴とする請求項2に記載のテスト管理システム。
【請求項6】
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、前記テスト結果データとして前記テスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
前記テスト結果記憶手段に蓄積記憶された複数の前記テスト結果データを用いて、テスト時間帯および/またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、前記タイマー実行手段により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブについて当該テスト担当者がタイマー設定を行おうとした際若しくは前記特定の夜間の時間帯へのタイマー設定を行おうとした際に、不具合が発生する旨を警告するタイマー設定時警告対象者情報として、当該テスト担当者の識別情報を前記設定情報記憶手段に記憶させるか、または、タイマー設定をせずに手動実行を指示する電子メール、若しくは前記タイマー実行手段による実行で不具合が発生する旨を知らせて前記ジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えたことを特徴とする請求項3に記載のテスト管理システム。
【請求項7】
前記ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段により失敗と判定されたテストについての失敗の詳細情報を、ジョブネット若しくはその構成ジョブの識別情報と関連付けて課題記憶手段に記憶させる処理を実行する課題登録手段と、
失敗したテストに係るジョブネット若しくはその構成ジョブの実行に用いられる前記テストデータ若しくは前記テストシナリオを作成したアプリケーション開発者、および/または、失敗したテストに係るジョブネット若しくはその構成ジョブを作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを送信する処理を実行するテスト結果伝達手段と、
前記アプリケーション開発者の操作する開発者端末からネットワークを介して送信されてくる失敗原因の解析のための閲覧要求信号を受信し、閲覧要求に係るジョブネット若しくはその構成ジョブにより実行されたテストについての失敗の詳細情報を前記開発者端末に画面表示する処理を実行する課題管理手段と
を備えたことを特徴とする請求項1〜6のいずれかに記載のテスト管理システム。
【請求項8】
前記ジョブ記憶手段には、
複数のジョブを同時並行的に実行することを含むジョブの実行順序を指定して形成された並列処理を含むジョブネットが記憶され、
前記ジョブ実行手段は、
前記並列処理を含むジョブネットを実行する場合には、前記ジョブ実行処理として、前記並列処理の対象の複数のジョブを同時並行的に実行し、前記ジョブ図形表示処理として、前記並列処理の対象の複数のジョブを示す各図形をジョブネットの全体の流れを分岐させる状態で画面上に配置し、前記テスト進捗表示処理として、前記並列処理中の複数のジョブについて同時並行的に実行中であることを示す構成とされている
ことを特徴とする請求項1〜7のいずれかに記載のテスト管理システム。
【請求項9】
前記ジョブ実行手段は、
前記テスト進捗表示処理として、ジョブを示す図形の中またはその近傍に、当該ジョブの実行を開始した場合のジョブの実施時刻、当該ジョブの実行を終了した場合のジョブの実行に要した実行時間のうちの少なくとも一方を表示する構成とされている
ことを特徴とする請求項1〜8のいずれかに記載のテスト管理システム。
【請求項10】
請求項1〜9のいずれかに記載のテスト管理システムとして、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テスト対象システムの動作確認テストの実行および管理を行うコンピュータにより構成されたテスト管理システムおよびプログラムに係り、例えば、分散系アプリケーションシステムの開発において継続的に実行されるテスト等に利用できる。
【背景技術】
【0002】
一般に、分散系アプリケーションシステム等のような複雑または大規模なシステムの開発においては、ビルドやデプロイを含むテストを繰り返し行う継続的インテグレーション(CI:continuous integration)が実践されている。
【0003】
従来、このような継続的インテグレーションを実現するために、一部のテストについては、テストツールを用いてテストの自動化を行っていた。また、テスト手順書を作成し、それに従ってテストを行うことにより、テスト担当者毎の手順のばらつきを抑え、テストの品質の均一化、テストの信頼性の向上を図っていた。
【0004】
さらに、テストが失敗した場合には、失敗原因を解析するため、失敗の情報を人手により課題管理表に登録し、アプリケーションの修正等に役立てていた。
【0005】
また、非常に多くのテスト結果(例えば、数千から数万のテスト結果)を用いて、テストの実行時間の分布解析やテストの成功率の算出等の分析を人手により行い、テスト結果を検証していた。そして、各テストの際に使用したテストデータや、テスト手順書等のドキュメント類の管理も人手により行っていた。
【0006】
一方、近年では、継続的インテグレーションをサポートするソフトウェア(以下、CIツールという。)を使用する傾向も強まってきている。例えば、ジェンキンス(Jenkins)と呼ばれるオープンソースのCIツールが開発されている。また、一部のテストの実行を自動化したツールも存在する(非特許文献1,2参照)。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】日本ヒューレット・パッカード株式会社、“Quick Test Professional マニュアル”、[online]、同社ホームページ、[平成27年5月25日検索]、インターネット<URL:http://h50146.www5.hp.com/doc/manual/openview/qtp.html>
【非特許文献2】株式会社野村総合研究所、“Test Platform Package「てぷらぱ」”、[online]、同社ホームページ、[平成27年5月25日検索]、インターネット<URL:http://teplapa.nri.co.jp/>
【発明の概要】
【発明が解決しようとする課題】
【0008】
前述したように、従来、一部のテストについては、テストツールを用いてテストの自動化を行っていたが、各テストツールは、単一のテストに対応したものであり、複数のテストを自動的に連続実行することはできなかった。従って、テストが完全に自動化されておらず、手作業で実行・確認をしているため、いわゆるヒューマンエラーが一定の確率で発生していた。また、それに伴う手戻りが発生し、開発対象のシステムの納期の遅延に繋がっていた。さらに、人手による作業であるため、一連のテストを繰り返し行うには、膨大な時間が必要であり、開発の全所要期間に対してテストの所要時間が占める割合は、かなり大きいものであった。そして、手動でテストを行っているので、時間や予算の都合上、十分なテストを行うことができないことも多々あった。
【0009】
また、テスト手順書を作成し、これに従い、テストを実施していたが、人手による作業であるため、属人化が発生し、個人の技量によりテスト手順が異なってくる場合もあった。これに伴い、テストの品質や信頼性、さらにはシステムの開発効率が、複数のテスト担当者の個々人で異なってくることもあった。そして、人手による作業であるため、人事異動があるたびに、教育コストが発生するとともに、異動直後には、様々なトラブルが発生する傾向にあった。
【0010】
さらに、テストが失敗した場合には、その都度、失敗の情報を人手により課題管理表に登録し、解析を行い、解析で得られた失敗事由を記載していたが、テストフェーズの前半では、多くの失敗が発生するため、膨大な件数の失敗の情報を手作業で課題管理していた。また、関連するエラーログ等を、課題登録とは別途にファイルサーバに配置し、紐付けを行っていた。しかし、課題登録や関連するエラーログ等の紐づけは負荷の高い作業であるため、十分に行われておらず、失敗事由の解析に時間がかかっていた。また、失敗に関する情報不足により解析できないケースも多々あった。
【0011】
また、非常に多くのテスト結果(例えば、数千から数万のテスト結果)を用いて統計分析を行い、テスト結果を検証していたが、人手による分析作業であるため、負荷が高かった。そして、負荷が高い作業であるため、分析が行われないこともあった。さらに、各テストの際に使用したテストデータや、テスト手順書等のドキュメント類の管理も人手により行っていたので、各テストまたはそれらの成功・失敗の情報と、各テストの際に使用したテストデータやドキュメント類の紐付けが十分に行われていなかった。また、いつ、誰がテストを行ったのかも人手による管理となっていたので、同様に紐付けが十分に行われていなかった。このため、効果的な分析ができない、あるいは分析が十分に活かされないという事情があった。
【0012】
本発明の目的は、テスト品質の均一化、納期の短縮、テスト担当者の作業負担の軽減を図ることができるテスト管理システムおよびプログラムを提供するところにある。
【課題を解決するための手段】
【0013】
本発明は、テスト対象システムの動作確認テストの実行および管理を行うコンピュータにより構成されたテスト管理システムであって、
テスト対象システムに格納若しくは配置するテストデータおよびテスト内容を指定したテストシナリオを記憶するテスト資源記憶手段と、
このテスト資源記憶手段に記憶されたテストデータをテスト対象システムに格納若しくは配置するテスト環境構築ジョブ、およびテスト資源記憶手段に記憶されたテストシナリオを用いてテストを実行するテストジョブを含む複数のジョブを組み合わせてこれらのジョブの実行順序を指定して形成されたジョブネットを記憶するジョブ記憶手段と、
このジョブ記憶手段に記憶されたジョブネットで指定されている実行順序に従って複数のジョブを連続実行するジョブ実行処理、複数のジョブのそれぞれを示す複数の図形を実行順序の通りに並べて画面表示するとともに各図形の中若しくはその近傍にジョブの名称および/またはジョブの内容を簡単に示す説明文を表示するジョブ図形表示処理、並びに、複数の図形を用いて実行中のジョブを示すテスト進捗表示処理を実行するジョブ実行手段と
を備えたことを特徴とするものである。
【0014】
ここで、「ジョブ記憶手段」は、ジョブネットを記憶し、「ジョブ実行手段」は、ジョブネットを構成する複数のジョブを連続実行する旨が記載されているが、本発明は、単体のジョブの記憶や実行を排除するものではなく、要するに、ジョブネットを記憶し、実行することができるようになっていればよい趣旨である。
【0015】
このような本発明のテスト管理システムにおいては、ジョブ記憶手段により、ジョブネットを記憶することができ、ジョブ実行手段により、そのジョブネットを実行することができるので、テスト環境構築ジョブおよびテストジョブを含む複数のジョブを、指定した実行順序に従って連続実行することが可能となる。
【0016】
このため、一連のテストについて、手作業が少なくなり、いわゆるヒューマンエラーの発生確率が抑制されるので、納期の短縮や、テスト担当者の作業負担の軽減を図ることが可能となる。
【0017】
また、従来は手作業が多いことから、時間や予算の都合上、十分なテストを行うことができない場合も多々あったが、ジョブネットの構成ジョブの連続実行の実現により、そのような事態を回避可能となり、テストの品質や信頼性を高めることが可能となる。
【0018】
さらに、従来のテストは、テスト手順書に従って行う人手による作業が多かったため、属人化が発生し、個人の技量によりテスト手順が異なってくる場合もあったが、ジョブネットの構成ジョブの連続実行の実現により、そのような属人化が抑制されるので、テストの品質や信頼性についての均質化が図られ、さらにはシステムの開発効率について個人間の差異が少なくなり、均一化が図られる。そして、人手による作業が少なくなることから、人事異動があるたびに教育コストが発生する、あるいは異動直後に様々なトラブルが発生するといった諸問題も解決することが可能となる。
【0019】
また、ジョブ実行手段により、ジョブ図形表示処理、およびテスト進捗表示処理が行われるので、この可視化により、テスト担当者は、実行手順を含めたテストの全体的内容や、テストの進捗を画面上で容易に把握し、理解することが可能となるため、テスト担当者の確認や監視の負担が減り、これによってもテスト担当者の作業負担の軽減が図られる。
【0020】
さらに、テストで使用するテストデータやテストシナリオは、テスト資源記憶手段に記憶され、ジョブ実行手段は、そこに記憶されたテストデータやテストシナリオを使用してテストを実施するので、従来のように特定のテスト担当者やアプリケーション開発者が、自分に関係するテストデータやテストシナリオを自分で保存・管理するという状況を解消することができる。このため、他の者、例えば、テスト担当やアプリケーション開発を引き継いだ者、一時的に交替する者等が、テスト資源記憶手段に記憶されているテストデータやテストシナリオを再利用して次回テストを実施することや、それらの更新作業を行うことが可能となるので、テスト準備にかかる時間と手間を大幅に削減することができ、テストの品質の標準化、信頼性の向上を図ることができるようになる。
【0021】
そして、従来、一連のテストのうちの一部の工程について、テスト担当者が人手による操作で個別に起動して使用していた1つまたは複数のテストツール(単機能のテストロボット)を、ジョブネットを構成する1つまたは複数のテストジョブの実行により自動的に呼び出して起動させれば、任意の数の既存または新設のテストツールの自動連携を実現することが可能となる。
【0022】
また、テスト管理システムを通してテストツール(単機能のテストロボット)を利用することで、実行したテストにおいて、どのテストツールを利用したのかをビルドの情報として記録しておけば、テスト管理システムにおける各テストツールの稼働状況を把握することが可能となる。このため、経済効果、投資対効果の測定が可能になり、その結果、利用状況に応じたテストツールの強化・改善等を行うことができるようになり、これらにより前記目的が達成される。
【0023】
また、前述したテスト管理システムにおいて、
ジョブ記憶手段に記憶されたジョブネットのうち自動実行の対象として予め指定されているジョブネットの構成ジョブについて、テスト資源記憶手段に記憶された構成ジョブの実行に用いられるテストデータまたはテストシナリオが更新されたか否かを監視し、更新されたと判断した場合には、ジョブ実行手段によるジョブ実行処理を開始させる処理を実行するテスト自動実行手段を備えていることが望ましい。
【0024】
このようにテスト自動実行手段を備えた構成とした場合には、アプリケーション等の更新に伴い、テストを自動実行することができるので、時間的制約や失念等によるテストの不実施を回避でき、十分なテストを行うことができるようになる。そして、この自動実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができるので、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができるようになる。
【0025】
さらに、前述したテスト管理システムにおいて、
ジョブ記憶手段に記憶されたジョブネットをタイマー起動により実行するためのタイマー実行時刻を、ジョブネットの識別情報と関連付けて記憶する設定情報記憶手段と、
この設定情報記憶手段に記憶されたタイマー実行時刻が到来したか否かを監視し、到来したと判断した場合には、到来したタイマー実行時刻に係るジョブネットについてジョブ実行手段によるジョブ実行処理を開始させる処理を実行するタイマー実行手段と
を備えた構成とすることが望ましい。
【0026】
このようにタイマー実行手段を備えた構成とした場合には、タイマー実行時刻の設定により、例えば、夜間等の就業時間外や、自己の外出時間帯等にテストを実施することが可能となる。また、このタイマー実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができる。このため、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができるようになる。
【0027】
また、前述したテスト管理システムにおいて、
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用した前記テストデータ若しくは前記テストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、テスト結果データとしてテスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
テスト結果記憶手段に蓄積記憶された複数のテスト結果データを用いて、テスト時間帯および/またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果を画面表示若しくは印刷するか、または分析結果を保存した分析結果ファイルを、電子メールでテスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えた構成とすることが望ましい。
【0028】
このようにテスト結果の統計分析を行い、その分析結果を表示、印刷、またはメール送信する構成とした場合には、従来のように非常に多くのテスト結果(例えば、数千から数万のテスト結果)について人手による分析作業を行う場合に比べ、作業負荷が減るので、十分な分析を行うことが可能となり、精度の高いテスト結果の検証を実現することができるようになる。
【0029】
また、テスト結果登録手段により、テストの成否判定結果が、ビルドの情報(テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含む。)またはビルドの識別情報(ビルドの情報を紐付けるための情報)とともに、テスト結果データとしてテスト結果記憶手段に保存されるので、従来のように各テストの際に使用したテストデータやテスト手順書等のドキュメント類の管理を人手により行っていた場合に比べ、各テストまたはそれらの成功・失敗の情報と、各テストの際に使用したテストデータやテストシナリオとの紐付けを十分に行うことができるようになる。また、いつ、誰がテストを行ったのかについても、従来のように人手により管理していた場合に比べ、紐付けを十分に行うことができるようになる。このため、効果的な分析を実現し、分析結果を十分に活かすことが可能となる。
【0030】
さらに、テスト結果記憶手段に記憶させるテスト結果データは、テスト結果登録手段により自動的に作成され、登録されるものであり、人手によるデータ登録作業ではないので、登録内容について各テスト担当者間のばらつきや毎回のばらつきが生じることはなく、一様な表現が可能となり、標準化することが可能となる。このため、テスト網羅性の向上やレビュー精度の向上が期待できるようになる。また、テスト結果登録手段によるテスト結果データの自動登録により、テスト担当者が人手による登録作業を行う場合の手間や時間を省略することが可能となる。
【0031】
また、前述したテスト自動実行手段を備えた構成とした場合において、
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、テスト結果データとしてテスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
テスト結果記憶手段に蓄積記憶された複数のテスト結果データを用いて、テスト時間帯および/またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、テスト自動実行手段により実行されるか、またはテスト自動実行手段による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブの中で指定されているテスト自動実行手段による自動実行の対象とするための選択情報を解除するか、若しくはテスト自動実行手段による自動実行の対象として設定情報記憶手段に記憶されているジョブネット若しくはその構成ジョブの識別情報を無効にするか、または、テスト自動実行手段による自動実行の時間帯を避けた手動実行を指示する電子メール、若しくはテスト自動実行手段による実行で不具合が発生する旨を知らせてジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えた構成としてもよい。
【0032】
このようにテスト結果の統計分析を行い、その分析結果をテスト自動実行手段による処理に結び付ける構成とした場合には、分析結果を、より一層、十分に活かすことが可能となる。そして、テスト自動実行手段が、アプリケーション等の更新の監視を定期的に行うものであれば、そこに時間的な要素が生じるので、時間帯に関する統計分析との結び付きが強固なものとなる。
【0033】
さらに、前述したタイマー実行手段を備えた構成とした場合において、
繰り返し行われるテストのテスト結果データを蓄積記憶するテスト結果記憶手段と、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段による成否判定結果を、テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含むビルドの情報若しくはこれらのビルドの情報を関連付けるためのビルドの識別情報とともに、テスト結果データとしてテスト結果記憶手段に記憶させる処理を実行するテスト結果登録手段と、
テスト結果記憶手段に蓄積記憶された複数のテスト結果データを用いて、テスト時間帯および/またはテスト担当者に関する傾向分析を含む統計処理を実行するテスト結果分析手段と、
このテスト結果分析手段による分析結果として、あるテスト担当者が作成したジョブネット若しくはその構成ジョブが、タイマー実行手段により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブネット若しくはその構成ジョブについて当該テスト担当者がタイマー設定を行おうとした際若しくは特定の夜間の時間帯へのタイマー設定を行おうとした際に、不具合が発生する旨を警告するタイマー設定時警告対象者情報として、当該テスト担当者の識別情報を設定情報記憶手段に記憶させるか、または、タイマー設定をせずに手動実行を指示する電子メール、若しくはタイマー実行手段による実行で不具合が発生する旨を知らせてジョブネット若しくはその構成ジョブの作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに送信する処理を実行する分析結果出力手段と
を備えた構成としてもよい。
【0034】
このようにテスト結果の統計分析を行い、その分析結果をタイマー実行手段による処理に結び付ける構成とした場合には、分析結果を、より一層、十分に活かすことが可能となる。そして、タイマー実行手段は、設定されたタイマー実行時刻にジョブネットを起動するものであるが、通常、特定の夜間の時間帯にタイマー実行時刻が設定されることが多いので、時間帯に関する統計分析との結び付きは強固なものとなる。
【0035】
また、以上に述べたテスト管理システムにおいて、
ジョブ実行手段によるテストの成功・失敗を判定する処理を実行するテスト成否判定手段と、
このテスト成否判定手段により失敗と判定されたテストについての失敗の詳細情報を、ジョブネット若しくはその構成ジョブの識別情報と関連付けて課題記憶手段に記憶させる処理を実行する課題登録手段と、
失敗したテストに係るジョブネット若しくはその構成ジョブの実行に用いられるテストデータ若しくはテストシナリオを作成したアプリケーション開発者、および/または、失敗したテストに係るジョブネット若しくはその構成ジョブを作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを送信する処理を実行するテスト結果伝達手段と、
アプリケーション開発者の操作する開発者端末からネットワークを介して送信されてくる失敗原因の解析のための閲覧要求信号を受信し、閲覧要求に係るジョブネット若しくはその構成ジョブにより実行されたテストについての失敗の詳細情報を開発者端末に画面表示する処理を実行する課題管理手段と
を備えた構成とすることが望ましい。
【0036】
このように課題登録手段を備えた構成とした場合には、失敗の詳細情報が課題記憶手段に自動的に記憶されるので、膨大な件数の失敗の情報を、効率的に管理することが可能となる。このため、従来のように失敗の情報を人手により課題管理表に登録し、解析を行い、解析で得られた失敗事由を記載していた場合に比べ、作業負荷の軽減、失敗事由の解析時間の短縮、原因究明の容易化・早期化が図られるうえ、失敗に関する情報不足により解析できないといったケースの発生を未然に防ぐことも可能となる。
【0037】
また、以上に述べたテスト管理システムにおいて、
ジョブ記憶手段には、
複数のジョブを同時並行的に実行することを含むジョブの実行順序を指定して形成された並列処理を含むジョブネットが記憶され、
ジョブ実行手段は、
並列処理を含むジョブネットを実行する場合には、ジョブ実行処理として、並列処理の対象の複数のジョブを同時並行的に実行し、ジョブ図形表示処理として、並列処理の対象の複数のジョブを示す各図形をジョブネットの全体の流れを分岐させる状態で画面上に配置し、テスト進捗表示処理として、並列処理中の複数のジョブについて同時並行的に実行中であることを示す構成とされていることが望ましい。
【0038】
このように複数のジョブの並列処理を行うことができる構成とした場合には、ジョブネット全体の処理時間の短縮を図ることが可能となる。
【0039】
さらに、以上に述べたテスト管理システムにおいて、
ジョブ実行手段は、
テスト進捗表示処理として、ジョブを示す図形の中またはその近傍に、当該ジョブの実行を開始した場合のジョブの実施時刻、当該ジョブの実行を終了した場合のジョブの実行に要した実行時間のうちの少なくとも一方を表示する構成とされていることが望ましい。
【0040】
このようにテスト進捗表示処理として、図形の中またはその近傍にジョブの実施時刻または実行時間の表示を行う構成とした場合には、その文字(数字を含む。)の表示の有無によるテスト進捗表示を実現することができるうえ、その文字(数字を含む。)の有する意味内容を、テスト担当者に伝達することも可能となる。
【0041】
そして、本発明のプログラムは、以上に述べたテスト管理システムとして、コンピュータを機能させるためのものである。
【0042】
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク(MO)、コンパクトディスク(CD)を利用した読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)、デジタル・バーサタイル・ディスク(DVD)を利用した読出し専用メモリ(DVD−ROM)、DVDを利用したランダム・アクセス・メモリ(DVD−RAM)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去および書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、LAN、MAN、WAN、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【0043】
以上に述べたように本発明によれば、テスト環境構築ジョブおよびテストジョブを含む複数のジョブを、指定した実行順序に従ってジョブネットとして連続実行することができるので、テスト品質の均一化、納期の短縮、テスト担当者の作業負担の軽減を図ることができるという効果がある。
【図面の簡単な説明】
【0044】
図1】本発明の一実施形態のテスト管理システムの全体構成図。
図2】前記実施形態のテスト管理システムによるテストの実行および管理の流れを示すフローチャートの図。
図3】前記実施形態のジョブ図形表示処理およびテスト進捗表示処理の一例を示す図。
図4】前記実施形態のジョブ図形表示処理およびテスト進捗表示処理に並列処理が含まれる場合の一例を示す図。
【発明を実施するための形態】
【0045】
以下に本発明の一実施形態について図面を参照して説明する。図1には、本実施形態のテスト管理システム10の全体構成が示されている。図2には、テスト管理システム10によるテストの実行および管理の流れがフローチャートで示されている。また、図3および図4には、テスト管理システム10によるジョブ図形表示処理およびテスト進捗表示処理の一例が示されている。
【0046】
図1において、テスト管理システム10は、テスト対象システム200の動作確認テストの実行および管理を行うシステムである。本実施形態では、一例として、テスト対象システム200は、ウェブ(Web)による分散系アプリケーションシステムとし、社内LANやイントラネット等のネットワーク201で接続されたウェブサーバ210、アプリケーションサーバ220、テータベースサーバ230により構成され、それぞれ開発環境下に置かれているものとする。アプリケーションサーバ220は、ウェブアプリケーションサーバ、バッチサーバの総称であり、テータベースサーバ230は、テータベース231およびリレーショナルデータベース管理システム(RDBMS)を備えているものとする。
【0047】
テスト管理システム10は、テスト統括管理サーバ20と、レポジトリサーバ50と、課題管理サーバ60と、ユーザ情報管理サーバ70と、打鍵テストマシン80と、テスト担当者が操作するテスト担当者端末90とを備え、これらは、社内LANやイントラネット等のネットワーク1で接続されてWebシステムとして構成されている。また、ネットワーク1には、アプリケーション開発者(プログラマ)が操作する開発者端末100、メールサーバ110が接続されている。なお、メールサーバ110は、外部に設置し、インターネット等の外部ネットワークを介して接続するようにしてもよい。
【0048】
さらに、テスト管理システム10とテスト対象システム200とは、インターネットやイントラネット等のネットワーク2で接続されている。なお、このネットワーク2と、テスト管理システム10を構築するためのネットワーク1と、テスト対象システム200を構築するためのネットワーク201とは、システム構成上、異なる符号を付して分けて記載しているが、共用のネットワークとしてもよい。但し、打鍵テストマシン80からテスト対象システム200に至る通信経路およびテスト対象システム200内の通信経路は、本番環境と同じ状態にしておくことが望ましい。また、ネットワーク1,2,201のいずれについても、有線であるか、無線であるか、有線および無線の混在型であるかは問わない。
【0049】
テスト統括管理サーバ20は、1台または複数台のコンピュータにより構成され、テストの実行および管理に必要な各種処理を実行する処理手段20Aと、この処理手段20Aに接続されてテストの実行および管理に必要な各種データを記憶する設定情報記憶手段41、ジョブ記憶手段42、テスト結果記憶手段43、プロジェクト情報記憶手段44、ビルド履歴記憶手段45、および分析結果記憶手段46とを含んで構成されている。
【0050】
処理手段20Aは、設定手段21と、ジョブ作成手段22と、ジョブ実行手段23と、タイマー実行手段24と、テスト自動実行手段25と、テスト成否判定手段26と、テスト結果登録手段27と、課題登録手段28と、テスト結果伝達手段29と、テスト結果分析手段30と、分析結果出力手段31とを含んで構成されている。この処理手段20Aは、既存のCIツールを利用して構築してもよく、新たに構築してもよく、既存のCIツールを利用する場合には、例えばジェンキンスの改良およびジェンキンスへのプラグイン等により構築することができる。
【0051】
設定手段21は、テスト担当者端末90からの送信要求に応じ、設定画面の表示用データを、ネットワーク1を介してテスト担当者端末90へ送信するとともに、テスト担当者端末90からネットワーク1を介して送信されてくる設定情報(設定画面を用いてテスト担当者により入力された設定情報)を受信し、受信した設定情報を、設定情報記憶手段41に記憶させる処理を実行するものである。なお、本実施形態では、設定情報を設定ファイルに保存して所定のフォルダ(設定情報記憶手段41を構成するハードディスク等の記録媒体)に格納する。
【0052】
ここで、設定情報としては、例えば、ジョブや複数のジョブからなるジョブネットをタイマー実行手段24によりタイマー実行するためのタイマー実行時刻(年月日および時刻)等がある。本実施形態では、タイマー実行時刻と、そのタイマー実行の対象となるジョブやジョブネットの識別情報(例えば名称)とが関連付けられて設定ファイルに保存されている。設定ファイルには、ジョブやジョブネットの識別情報(例えば名称)とタイマー実行時刻とを複数組保存してもよく、あるいは各組毎に別々の設定ファイルを用意してもよい。なお、ジョブネットの識別情報(例えば名称)は、ジョブネットを構成する複数のジョブのうちの先頭のジョブの識別情報(例えば名称)で代用することができる。
【0053】
また、設定情報として、テスト自動実行手段25によるアプリケーション等の更新に伴う自動実行の対象にされるジョブ(ジョブネットの構成ジョブを含む。)の識別情報(例えば名称)を設定ファイルに保存してもよい。なお、アプリケーション等の更新に伴う自動実行の対象にされるか否かは、ジョブファイルに保存してもよい。
【0054】
ジョブ作成手段22は、テスト担当者端末90からの送信要求に応じ、ジョブやジョブネットの新規作成・編集・修正・削除等を行うためのジョブ作成画面の表示用データを、ネットワーク1を介してテスト担当者端末90へ送信するとともに、テスト担当者端末90からネットワーク1を介して送信されてくるジョブやジョブネット(ジョブ作成画面を用いてテスト担当者により新規作成・編集・修正等されたジョブやジョブネット)を受信し、受信したジョブやジョブネットを、ジョブ記憶手段42に記憶させる処理を実行するものである。なお、本実施形態では、新規作成・編集・修正等されたジョブ(ジョブネットを構成するジョブを含む)を、ジョブファイルに保存して所定のフォルダ(ジョブ記憶手段42を構成するハードディスク等の記録媒体)に格納する。
【0055】
ここで、ジョブは、テスト(準備を含む。)を実行するために所定の言語で記述された命令群であり、例えば、ジェンキンスのジョブは、XMLというマークアップ言語で記述されている。ジョブファイルには、例えば、テスト手順(ジョブを構成する命令自体およびそれを文章で説明するテキストデータ)、テストの実施内容(ジョブを構成する命令自体およびそれを文章で説明するテキストデータ)、テストで使用するテストデータやテストシナリオ(これらの名称やレポジトリサーバ50内の格納場所(URL等))、テストで使用(実際に展開)したテストデータやテストシナリオのバージョン情報、テスト担当者(ジョブ作成者であり、テスト失敗時等の電子メールの自動送信先となる。)、アプリケーション開発者(テストに係る開発プロジェクトに関与するプログラマであり、テスト失敗時等の電子メールの自動送信先となる。)等が登録保存されている。なお、開発プロジェクトに関与する者の一覧が、プロジェクト情報記憶手段44に格納されたプロジェクト情報ファイル内に記憶されているので、テスト担当者(ジョブ作成者)は、その一覧の中から、アプリケーション開発者を選択してジョブファイルに登録保存しておく。
【0056】
ジョブ記憶手段42に登録するジョブとしては、例えば、(1)単体テスト、画面打鍵テスト、データベース(DB)のデータ突合といった、様々なテストを実行してその結果を出力する「テストジョブ」、(2)DBの準備、アプリケーションサーバの設定といった、テストを実行する際に必要となるテスト環境を構築する「テスト環境構築ジョブ」、(3)ソースコードからバイナリを作成する「ビルドジョブ」等がある。
【0057】
また、ジョブネットは、複数のジョブを組み合わせてこれらのジョブの実行順序を指定して形成されるものであるが、ジョブネットの作成方法は、次のように、4通りある。
【0058】
<ジョブネットの第1の作成方法>ジョブA、ジョブBをこの順序で実行するジョブネットを作成する場合に、呼び出し元のジョブAに、次に実行させるジョブBを記述して指定しておく方法がある。
【0059】
この場合、ジョブAを実行すると、ジョブBが自動的に実行されるので、ジョブAを単体で実行したい場合は、ジョブBの記述指定のないジョブAを別に用意しておく必要がある。また、ジョブAを実行した後に、ジョブBおよびジョブC(複数のジョブ)を同時並行的に実行する並列処理を行う際には、呼び出し元のジョブAに、次に実行させるジョブBおよびジョブCの双方(複数のジョブ)を記述して指定しておけばよい。
【0060】
この第1の作成方法により作成されたジョブネット全体の実行は、最初(先頭ということもある。)のジョブAの実行指令を出すだけで実現することができる。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、最初のジョブへの実行指令を出す旨の記載で代用する場合がある。また、ジョブネットの途中からの実行も可能であり、例えば、2番目のジョブBの実行指令を出せば、それ以降のジョブC,D,…を連続実行することができる。
【0061】
<ジョブネットの第2の作成方法>ジョブA、ジョブBをこの順序で実行するジョブネットを作成する場合に、呼び出される側のジョブBに、どのような場合(ジョブAが実行された場合)に自身(ジョブB)が呼び出されるのかを記述しておく方法がある。
【0062】
この場合、ジョブAを実行すると、ジョブBが自動的に実行されてしまうので、ジョブAを単体で実行したい場合には、ジョブBを別の場所に退避させるか、削除する必要がある。また、ジョブAを実行した後に、ジョブBおよびジョブC(複数のジョブ)を同時並行的に実行する並列処理を行う際には、呼び出される側のジョブBおよびジョブCの双方(複数のジョブの全て)に、どのような場合(ジョブAが実行された場合)に自身(ジョブBまたはジョブC)が呼び出されるのかを記述しておけばよい。
【0063】
なお、ジョブAが実行されたときに、それにより呼び出されるジョブBを探さなければならない(ジョブA以外のジョブについて、それらがジョブAの実行により呼び出されるジョブであるか否かを判断しなければならない)ので、関係するジョブが多い場合には、時間がかかることになる。また、並列処理を行う場合は、ジョブAが実行されたときに、それにより呼び出される複数のジョブB,C,…を探さなければならないので、ジョブAの実行により呼び出される可能性のある全てのジョブについて、ジョブAの実行により呼び出されるジョブであるか否かを判断しなければならず、ジョブAの実行により呼び出されるジョブを1つまたは幾つか見つければよいというものではない。要するに、幾つか見つけたとしても、まだ存在するかもしれないので、結局、残り全部についても判断することになる。
【0064】
この第2の作成方法により作成されたジョブネット全体の実行は、最初(先頭ということもある。)のジョブAの実行指令を出すだけで実現することができる。前述した第1の作成方法の場合と同様である。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、最初のジョブへの実行指令を出す旨の記載で代用する場合がある。また、ジョブネットの途中からの実行も可能であり、例えば、2番目のジョブBの実行指令を出せば、それ以降のジョブC,D,…を連続実行することができる。この点も、前述した第1の作成方法の場合と同様である。
【0065】
<ジョブネットの第3の作成方法>ジョブA、ジョブBをこの順序で実行するジョブネットを作成する場合に、ジョブA、ジョブBをこの順序で呼び出して実行させるスケジューリング用の実行順序管理ジョブを作成し、この実行順序管理ジョブを保存したジョブファイルを用意しておく方法がある。従って、ジョブAのジョブファイルおよびジョブBのジョブファイルに加え、ジョブネット形成用の実行順序管理ジョブのジョブファイルが存在することになる。
【0066】
この場合、実行順序管理ジョブを実行することにより、ジョブA、ジョブBが自動的に連続実行されるので、ジョブAを単体で実行したい場合は、実行順序管理ジョブを使用せずに、単純にジョブAを実行するだけでよい。また、ジョブA、ジョブBをこの順序で連続実行するときには、ジョブAの終了を条件として、ジョブBの実行に進むが、ジョブAを実行した後に、ジョブBおよびジョブC(複数のジョブ)を同時並行的に実行する並列処理を行う際には、ジョブAの終了を条件として、ジョブB,Cの実行に進むので、ジョブCの実行には、ジョブBの終了を条件としないようにし、また、ジョブBの実行にも、ジョブCの終了を条件としないようにしておけばよい。
【0067】
なお、前述したジョブネットの第1、第2の作成方法では、一番最初に実行するジョブAは、1つだけ存在し、その次のジョブB,C,D,…から並列処理を行うことが可能であるが、第3の作成方法では、スケジューリング用の実行順序管理ジョブを実行するので、最初から複数のジョブ(実行順序管理ジョブはスケジューリング用なので含めない。)を同時並行的に実行する並列処理を実現することができる。
【0068】
この第3の作成方法により作成されたジョブネット全体の実行は、実行順序管理ジョブの実行指令を出すだけで実現することができる。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、実行順序管理ジョブへの実行指令を出す旨の記載で代用する場合がある。また、以下では、ジョブネット全体を選択・指定・実行・起動等するときに、前述した第1、第2の作成方法により作成されたジョブネットを念頭に、「最初(先頭)のジョブ」を選択・指定・実行・起動等するという記載があるが、その記載は、実行順序管理ジョブの選択・指定・実行・起動等と等価であり、置き換えることができる。なお、ジョブネットの途中からの実行を行う場合は、途中からのスケジューリングを記述した別の実行順序管理ジョブを用意するのが簡単であるが、実行順序管理ジョブの中にその実行開始後に、開始ジョブ(最初のジョブから実行開始か、途中のいずれかのジョブから実行開始か)を選択できる機能を用意しておいてもよい。
【0069】
<ジョブネットの第4の作成方法>ジョブA、ジョブBをこの順序で実行するジョブネットを作成する場合に、ジョブA、ジョブBがこの順序で実行されるようにこれらのジョブを連結することにより、新たな結合ジョブを作成し、この結合ジョブを保存したジョブファイルを用意しておく方法がある。従って、ジョブAのジョブファイルおよびジョブBのジョブファイルに加え、ジョブネットである結合ジョブのジョブファイルが存在することになる。換言すれば、結合ジョブは、あくまでも結合前の単体のジョブが存在することを前提としており、単体のジョブAの実行や、単体のジョブBの実行も可能であるとともに、ジョブネットである結合ジョブを実行したときのテスト担当者端末90の画面上へのジョブ図形表示処理(図3図4参照)では、結合前の単体のジョブであるジョブA、ジョブBが、それぞれ独立したジョブとして表示されている状態になる。但し、単体のジョブAや単体のジョブBが呼び出されて実行されているわけではなく、表示上、そのように見えるだけであり、実行されているのは、あくまでも結合ジョブである。
【0070】
この場合、いずれかのジョブが修正されると、それを含む結合ジョブも作成し直す必要がある。また、上述したように、ここでいう結合ジョブは、1つのジョブというより、複数のジョブの集合体であるから、多くの命令文が記述された非常に長いジョブを作成するというイメージではない。このため、1つ1つのジョブは、定められたルールに従った長さのものとすることができるので、粒度の異なるジョブが乱立するという事態は避けることができ、第1〜第3の作成方法の場合と同様に、適切なジョブの管理(ジョブの粒度の均一化・標準化、ジョブ作成のルール化、作成指導等を含む。)を行うことができる。
【0071】
この第4の作成方法により作成されたジョブネット全体の実行は、結合ジョブの実行指令を出すだけで実現することができる。従って、以下の説明では、ジョブネットの実行を開始させる旨の記載を行う場合は、結合ジョブへの実行指令を出す旨の記載で代用する場合がある。また、以下では、ジョブネット全体を選択・指定・実行・起動等するときに、前述した第1、第2の作成方法により作成されたジョブネットを念頭に、「最初(先頭)のジョブ」を選択・指定・実行・起動等するという記載があるが、その記載は、結合ジョブの選択・指定・実行・起動等と等価であり、置き換えることができる。なお、ジョブネットの途中からの実行を行う場合は、途中からのジョブを結合した別の結合ジョブを用意するのが簡単であるが、結合ジョブの中にその実行開始後に、開始ジョブ(最初のジョブから実行開始か、途中のいずれかのジョブから実行開始か)を選択できる機能を用意しておいてもよい。
【0072】
ジョブ実行手段23は、テスト担当者端末90からの送信要求に応じ、実行ジョブ選択画面の表示用データを、ネットワーク1を介してテスト担当者端末90へ送信するとともに、テスト担当者端末90からネットワーク1を介して送信されてくる選択情報(実行ジョブ選択画面を用いてテスト担当者により選択された実行対象の単体のジョブやジョブネットの選択情報)を受信する「実行ジョブ選択受付処理」を行い、受信した選択情報で指定されている単体のジョブを示す図形を画面表示するか、または選択情報で指定されているジョブネットを構成する複数のジョブを示す各図形を実行順序の通りに並べて画面表示するための表示用データを、ネットワーク1を介してテスト担当者端末90へ送信する「ジョブ図形表示処理」(図3図4参照)を行い、さらに、テスト担当者端末90からネットワーク1を介して送信されてくる実行指令(画面表示された図形中またはその近傍に設けられた実行ボタンをテスト担当者がクリック操作することにより発信される単体のジョブやジョブネットの実行指令)を受信し、受信した実行指令に基づきジョブ記憶手段42に記憶されたジョブファイルを用いて単体のジョブを実行するか、またはジョブネットで指定されている実行順序に従って複数のジョブを連続実行する「ジョブ実行処理」を行うとともに、この単体のジョブやジョブネットの実行と並行して、画面表示された図形を用いて実行中のジョブを示す「テスト進捗表示処理」(図3図4参照)を行うものである。
【0073】
ここで、ジョブ実行手段23による実行ジョブ選択受付処理では、実行するジョブネットの選択を受け付ける際には、前述した第1、第2の作成方法でジョブネットが作成されている場合には、そのジョブネットを構成する複数のジョブのうちの先頭のジョブの選択を受け付ける。また、第3の作成方法でジョブネットが作成されている場合には、実行順序管理ジョブの選択を受け付け、第4の作成方法でジョブネットが作成されている場合には、結合ジョブの選択を受け付ける。
【0074】
ジョブ実行手段23によるジョブ図形表示処理では、ジョブを示す図形の中またはその近傍に、ジョブ名および/またはジョブの内容を簡単に示す説明文(この説明文のテキストデータは、ジョブファイル内に保存されている。)を表示する。図3の例では、画面300上に表示された図形301の中に、「旧環境のバックアップ」という文字(ジョブ名でもよく、ジョブの内容を簡単に示す説明文でもよい。)が表示されている。なお、上述した実行ジョブ選択受付処理で受信した選択情報が単体のジョブの指定である場合には、そのジョブを示す図形の表示処理を省略してもよい。但し、ジョブを示す図形の表示処理を省略する場合でも、ジョブの実行を開始させるための実行ボタンは、画面表示する。
【0075】
また、ジョブ実行手段23によるジョブ図形表示処理では、上述した実行ジョブ選択受付処理で受信した選択情報がジョブネットの指定である場合には、そのジョブネットを構成する複数のジョブについての各ジョブファイルを参照して実行順序を解析し、複数のジョブを示す各図形を実行順序の通りに並べて画面表示するための表示用データを作成し、作成した表示用データを、ネットワーク1を介してテスト担当者端末90へ送信する。
【0076】
このジョブ図形表示処理における実行順序の解析は、前述したジョブネットの第1〜第4の作成方法に応じて行う。例えば、第1の作成方法の場合には、最初のジョブAの中から、2番目に実行するジョブBを指定する記述を抽出し、続いて、ジョブBの中から、3番目に実行するジョブCを指定する記述を抽出するというような連鎖的な抽出処理を行う。第2の作成方法の場合には、最初のジョブAが実行された場合に自身が呼び出されるという記述がある2番目のジョブを探し、それがジョブBであったとすれば、次に、その2番目のジョブBが実行された場合に自身が呼び出されるという記述がある3番目のジョブを探し、それがジョブCであったとすれば、さらに、その3番目のジョブCが実行された場合に自身が呼び出されるという記述がある4番目のジョブを探しというような連鎖的なサーチ処理を行う。第3の作成方法の場合には、実行順序管理ジョブにスケジューリングの記述があるので、その記述に従ってジョブ図形表示処理を行うが、実行順序管理ジョブ自体は、画面上への図形表示の対象ではない(図形表示してもよいが、必須ではない)。第4の作成方法の場合には、結合ジョブの中に、結合前の各構成ジョブについての命令文に加え、ジョブ名および/またはジョブの内容を簡単に示す説明文等の各種情報が含まれるとともに、実行順序の情報が含まれているので、それを用いてジョブ図形表示処理を行うが、結合ジョブ自体は、画面上への図形表示の対象ではない(図形表示してもよいが、必須ではない)。
【0077】
図3の例では、画面300上に、「旧環境のバックアップ」のジョブを示す図形301と、「テストデータのインポート」のジョブを示す図形302と、「画面打鍵テスト」のジョブを示す図形303と、「打鍵前後でのDB突合」のジョブを示す図形304と、「環境戻し」のジョブを示す図形305とが、矢印図形により実行順序を示される状態で並べて表示されている。また、図4は、並列処理の場合の表示例であり、画面400上に、「DBデータバックアップ」のジョブを示す図形401が先頭ジョブとして表示され、ここから分岐し、第1の流れとして、「DBデータのインポート(1)」のジョブを示す図形402と、「画面打鍵テスト(1)」のジョブを示す図形403とが並べて表示されるとともに、第2の流れとして、「DBデータのインポート(2)」のジョブを示す図形404と、「画面打鍵テスト(2)」のジョブを示す図形405とが並べて表示されている。
【0078】
さらに、ジョブ実行手段23によるジョブ図形表示処理では、ジョブを示す図形の中またはその近傍に、ジョブやジョブネットの実行を開始させる実行指令を出すための実行ボタンを設ける処理を行う。図3図4の例に示すように、ジョブネットの場合には、その先頭のジョブを示す図形301,401の中またはその近傍に、実行ボタン306,406が設けられる。本実施形態では、ジョブネットの途中のジョブを示す図形の中またはその近傍には、実行ボタンを設けていない。従って、ジョブネットの途中のジョブから実行を開始する場合には、前述した実行ジョブ選択受付処理で、その途中のジョブの選択を受け付け、その途中のジョブを新たな先頭ジョブとするジョブ図形表示処理を行い、その新たな先頭ジョブを示す図形の中またはその近傍に、実行ボタンを設ける。なお、図3図4に示す画面300,400の例において、先頭のジョブを示す図形301,401以外の図形にも実行ボタンを設けることにより、途中のジョブからの実行開始を指示できるようにしてもよい。
【0079】
ジョブ実行手段23によるジョブ実行処理では、ジョブネットを実行する場合には、上述したジョブ図形表示処理で解析した実行順序を主メモリ等に一時的に記憶しておき、それを用いて複数のジョブの連続実行を行ってもよく、あるいは、ジョブネットを構成する各ジョブを実行しながら、その都度、次に実行するジョブを認識(サーチを含む。)していってもよい。タイマー実行やアプリケーション等の更新に伴う自動実行の場合には、ジョブ図形表示処理は行わないので、ジョブ図形表示のための実行順序の解析は行わないが、そのような場合でも、同様にして事前の実行順序の解析を行い、解析した実行順序を主メモリ等に一時的に記憶しておき、それを用いて複数のジョブの連続実行を行ってもよく、あるいは、ジョブネットを構成する各ジョブを実行しながら、その都度、次に実行するジョブを認識(サーチを含む。)していってもよい。また、各ジョブを実行していく過程で、各ジョブの実行開始や実行終了の情報(今開始、今終了というタイミング情報)、各ジョブの実施時刻(実行を開始した年月日および時刻)、各ジョブの実行時間(処理の所要時間)等を、下記のテスト進捗表示処理のルーチンに引き渡す。
【0080】
ジョブ実行手段23によるテスト進捗表示処理では、各ジョブを実行していく過程で得られる各ジョブの実行開始や実行終了の情報に基づき、実行開始や実行終了のタイミングに合わせて、テスト進捗表示を行うための表示用データを、ネットワーク1を介してテスト担当者端末90へ送信する。テスト進捗表示は、例えば、現在実行中のジョブを示す図形の色を、現在実行していないジョブを示す図形の色とは異なる色に変える色付けを行う、現在実行中のジョブを示す図形だけ点滅させる、現在実行中のジョブを示す図形だけ特別な枠(例えば赤枠や太枠等)で囲む、実行終了したジョブを示す図形の色を変えていく(例えば暗い色等に変えていく)といった色分け等により実現することができ、要するに、現在どのジョブが実行されているのかをテスト担当者が視覚的に把握できるようになっていればよい。図3図4の例では、現在実行中のジョブを示す図形(図中において斜線のある図形)の色が変わっている。
【0081】
また、ジョブ実行手段23によるテスト進捗表示処理では、図3図4の例に示すように、各ジョブの実行を開始した実施時刻(年月日および時刻)や各ジョブの実行に要した実行時間を、各ジョブを示す図形の中またはその近傍に表示するための表示用データを、実行開始や実行終了のタイミングに合わせて、ネットワーク1を介してテスト担当者端末90へ送信する。これにより、上述した色付け、枠囲い、点滅、色分け等による文字(数字を含む)以外の視覚的識別処理に加え、文字(数字を含む)の有無による視覚的識別処理を実現することができる。さらに、文字(数字を含む)自体が有する意味内容(時刻や時間そのものが持つ遅早・長短の情報)を、テスト担当者に伝達することもできる。図3の例では、図形301の中に、ジョブの実施時刻「2015/05/25 18:47:42」、ジョブの実行時間「0.58秒」が表示されている。
【0082】
このジョブ実行手段23によるテスト進捗表示処理において、ジョブの実施時刻とジョブの実行時間とのうち、ジョブの実施時刻だけを表示するようにした場合には、ジョブの実施時刻が表示された図形のうちの最後の図形に対応するジョブが実行中のジョブであり、ジョブの実行時間だけを表示するようにした場合には、ジョブの実行時間が表示された図形のうちの最後の図形に対応するジョブの次のジョブが実行中のジョブであり、双方を表示するようにした場合には、ジョブの実施時刻が表示されていて、かつ、ジョブの実行時間が表示されていない図形に対応するジョブが実行中のジョブであると把握することができる。
【0083】
また、本実施形態のジョブ実行手段23は、本実施形態のテスト管理システム10が打鍵テストマシン80を備えているので、この打鍵テストマシン80に、ジョブ実行に関する補助処理手段(図1では、図示は省略されている。)を設けることにより、テスト統括管理サーバ20と打鍵テストマシン80とに分散配置されている。例えば、ジェンキンスの場合には、打鍵テストマシン80にジェンキンス・スレーブ・エージョントを搭載することにより、ジョブ実行手段23の補助処理手段とすることができ、この場合、打鍵テストマシン80は、テスト統括管理サーバ20をマスターとするスレーブマシンとなる。このようなテスト統括管理サーバ20とは別のマシン(スレーブマシン)に設ける補助処理手段は、テストの内容やテスト対象システム200の構成等によっては、設けなくてもよい。
【0084】
なお、ジョブ実行手段23がネットワーク1を介してテスト担当者端末90との通信を行うのは、テスト担当者が、テスト担当者端末90を操作し、ジョブやジョブネットを手動実行する場合である。従って、ジョブ実行手段23は、タイマー実行手段24によるタイマー実行を行う場合や、テスト自動実行手段25によるアプリケーション等の更新に伴う自動実行を行う場合には、テスト担当者の操作による手動実行ではないので、テスト担当者端末90への画面表示のための各種処理は行わない。
【0085】
タイマー実行手段24は、設定情報記憶手段41に記憶されたタイマー実行時刻が到来したか否かを監視し、到来したと判断した場合には、到来したタイマー実行時刻に係るジョブやジョブネットについてジョブ実行手段23によるジョブ実行処理を開始させる処理を実行するものである。なお、このタイマー実行の場合には、テスト担当者端末90との通信はない。
【0086】
より具体的には、タイマー実行手段24は、例えば、設定情報記憶手段41に記憶された設定ファイル内に保存されている1組または複数組のジョブ名(ジョブネットを構成する先頭ジョブのジョブ名を含む。)およびそのジョブの実行を開始させるためのタイマー実行時刻を所定時間間隔で読み込んで主メモリに配置し、読み込んだ1つまたは複数のタイマー実行時刻が到来した否かを、より短い時間間隔で判断する監視処理を実行し、タイマー実行時刻が到来したジョブ(ジョブネットを構成する先頭ジョブを含む。)があった場合には、そのジョブ名(ジョブの識別情報)を、実行対象ジョブのジョブ名としてジョブ実行手段23に引き渡し、ジョブ実行処理を開始させる。
【0087】
テスト自動実行手段25は、テスト資源記憶手段52に記憶されたテストデータ(アプリケーションを含む。)またはテストシナリオ(ジョブ記憶手段42に記憶されたジョブやジョブネットのうち、監視対象として指定されたジョブやジョブネットの実行に用いられるテストデータやテストシナリオ)が更新されたか否かを監視し、更新されたと判断した場合には、ジョブ実行手段23によるジョブ実行処理を開始させる処理を実行するものである。なお、この更新に伴う自動実行の場合には、テスト担当者端末90との通信はない。
【0088】
より具体的には、例えば、テスト自動実行手段25は、次のような処理を行う。先ず、アプリケーション開発者は、テストデータ(アプリケーションを含む。)またはテストシナリオを修正した場合は、自己の開発者端末100を操作し、修正したアプリケーション(ここでは、ソースコードのプログラムである。)等をテスト資源記憶手段52に記憶登録させる。この際、登録されるアプリケーション(ソースコードのプログラム)等は、テスト資源管理手段51によりバージョン情報を含めて登録され、バージョン管理される。一方、テスト担当者は、ジョブやジョブネットを作成する際に、そのジョブやジョブネットをテスト自動実行手段25によるアプリケーション等の更新に伴う自動実行の対象にするか否かの選択情報を、ジョブファイル(ジョブネットの構成ジョブのジョブファイルを含む。)に設定保存しておくか、あるいは、タイマー実行時刻(年月日および時刻)の設定の場合と同様に、設定手段21により、アプリケーション等の更新に伴う自動実行の対象にするジョブやジョブネットの識別情報(例えば名称)を設定ファイルに保存し、設定情報記憶手段41に記憶させておく。ジョブ記憶手段42に、多くのジョブファイルが記憶されている場合には、後者の場合のように、設定ファイルに保存した方が、処理時間が短くなる。なお、ジョブネットの場合には、先頭ジョブ以外のジョブで使用されるテストデータ(アプリケーションを含む。)やテストシナリオが修正される場合もあるので、先頭ジョブだけではなく、必要な場合には、構成ジョブの全てについて、監視対象とする設定を行う。
【0089】
テスト自動実行手段25は、このようにテスト担当者によりアプリケーション等の更新に伴う自動実行の対象にするジョブ(ジョブネットの構成ジョブを含む。)の設定が行われている状態で、定期的(例えば1日2回等)に、そのような監視対象のジョブがあるか否かをサーチする処理を行う。このサーチ処理では、上述したように、ジョブ記憶手段42に記憶されたジョブファイルを読み込んで探してもよく、設定情報記憶手段41に記憶された設定ファイルを読み込んで探してもよい。そして、監視対象とされているジョブ(ジョブネットの構成ジョブを含む。)のジョブファイルの中から、前回のテストで使用(展開)したテストデータ(アプリケーションを含む。)やテストシナリオのバージョン情報を取得する。例えば、それがバージョン4であったとする。それから、テスト自動実行手段25は、ネットワーク1を介してレポジトリサーバ50に、そのテストデータ(アプリケーションを含む。)やテストシナリオの最新バージョンは何かを問い合わせる。レポジトリサーバ50では、テスト資源管理手段51により、その問い合わせを受け付けると、テスト資源記憶手段52を参照し、そのテストデータ(アプリケーションを含む。)やテストシナリオの最新バージョンを取得し、取得したバージョン情報を、ネットワーク1を介してテスト統括管理サーバ20に送信する。例えば、それがバージョン5であったとする。テスト統括管理サーバ20では、テスト自動実行手段25により、最新バージョンがバージョン5であるという情報を受け取ると、前回のテストで使用(展開)したそのテストデータ(アプリケーションを含む。)やテストシナリオはバージョン4であるということを認識しているので、更新(バージョンアップ)が行われたと判断することができる。そして、更新があったと判断した場合には、ジョブ実行手段23によるジョブ実行処理(ジョブネットの構成ジョブの場合には、その構成ジョブを含むジョブネットの実行処理)を自動的に開始させる(すなわち、レポジトリサーバ50からバージョン5を取得して展開する。)とともに、今回のテストで使用(展開)するテストデータ(アプリケーションを含む。)やテストシナリオはバージョン5であるから、そのバージョン5をジョブファイルに記録する。一方、レポジトリサーバ50への最新バージョンの問い合わせに対し、レポジトリサーバ50からの応答がバージョン4であったとすると、テスト自動実行手段25は、更新(バージョンアップ)は行われていないと判断することができるので、ジョブ実行手段23によるジョブ実行処理(自動実行)は行わない。
【0090】
なお、以上を実現するために、ジョブファイルの中には、一番最近のテストで使用(展開)したテストデータ(アプリケーションを含む。)やテストシナリオのバージョン情報が記録されているとともに、レポジトリサーバ50から最新バージョンのテストデータ(アプリケーションを含む。)やテストシナリオを取得し、テスト対象システム200に展開するという記述と、使用するテストデータ(アプリケーションを含む。)やテストシナリオが更新されていないかどうかをレポジトリサーバ50に確認するという記述がジョブの中にある。
【0091】
テスト成否判定手段26は、ジョブ実行手段23によるテスト(タイマー実行手段24によりタイマー実行された場合や、テスト自動実行手段25により自動実行された場合のテストを含む。)の成功・失敗を判定する処理を実行するものである。例えば、打鍵テストの場合には、テスト対象システム200からテストの実行結果が打鍵テストマシン80を介してテスト統括管理サーバ20に返信されてくるので、テスト成否判定手段26は、その実行結果を参照し、テストの成功・失敗を判定する。より具体的には、例えば、顧客による普通預金口座への振込処理のテストの場合には、打鍵テストマシン80は、仮想的な顧客端末であるため、銀行システムであるテスト対象システム200から打鍵テストマシン80へ送信されてくる実行結果は、顧客に対して振込処理の不具合発生を報告するメッセージ情報等となるので、そのメッセージ情報等の内容に基づき、テストの成功・失敗を判定する。なお、1つの打鍵が1つのテストシナリオであり、1つのテストシナリオに対して、1つの成功または失敗がある。そして、1回のジョブ実行により、多数のテストシナリオ(打鍵用の入力データを含む。)が使用されるが、そのジョブで使用される多数のテストシナリオのうち1つでも失敗が発生すれば、そのジョブは失敗したことになる。
【0092】
テスト結果登録手段27は、テスト成否判定手段26による成否判定結果を、ビルドの識別情報(例えば、ジョブ実行を繰り返すと1ずつ増番していくビルド番号)とともに、テスト結果データとしてテスト結果記憶手段43に記憶させる処理を実行するものである。本実施形態では、1回のテスト(1回のビルド)についてのテスト結果データを、1つのテスト結果ファイルに収め、所定のフォルダ(テスト結果記憶手段43を構成するハードディスク等の記録媒体)に格納する。従って、テスト(ビルド)を繰り返すと、複数のテスト結果ファイルが、テスト結果記憶手段43に記憶される。なお、毎回のテスト(ビルド)の都度に、その時のテスト結果データを、同じテスト結果ファイルに追加していってもよく、その場合には、同種のテストについては、1つのテスト結果ファイルが、テスト結果記憶手段43に記憶されていることになる。
【0093】
また、テスト結果登録手段27は、1回1回のテスト(1回1回のビルド)について、テスト担当者(ジョブ作成者)の識別情報(名前、従業員コード等)、処理に要したテスト実行時間(ジョブ実行時間であり、ジョブネットの場合には、各構成ジョブのジョブ実行時間またはそれに加えてジョブネット全体の実行時間)、テスト実施時刻(ジョブを起動した年月日および時刻であり、ジョブネットの場合には、各構成ジョブの実施時刻)、実際に使用(展開)したテストデータ(アプリケーションを含む。)やテストシナリオおよびそれらのバージョン情報等のビルド(ジョブ実行)の情報を、ビルドの識別情報(例えばビルド番号)と関連付けてビルド履歴記憶手段45に記憶させる処理も実行する。テスト担当者(ジョブ作成者)の識別情報は、ジョブファイル内に保存されている。本実施形態では、繰り返された複数回のテスト(複数回のビルド)についてのビルドの情報を、ビルド履歴として1つのビルド履歴ファイルに収め、所定のフォルダ(ビルド履歴記憶手段45を構成するハードディスク等の記録媒体)に格納する。従って、ビルド(ジョブ実行)を行う都度に、毎回、最新のビルドの情報を同じビルド履歴ファイルに追加していく。なお、1回1回のテスト毎(1回1回のビルド毎)に、個々のビルドファイルを作成し、所定のフォルダに格納してもよい。
【0094】
なお、テスト結果登録手段27は、本実施形態では、前述したように、テスト成否判定手段26による成否判定結果を、ビルドの識別情報(例えばビルド番号)とともに、テスト結果データとしてテスト結果記憶手段43に記憶させるようになっているが、テスト成否判定手段26による成否判定結果を、ビルド履歴記憶手段45に記憶されたビルドの情報そのもの(テスト担当者の識別情報、テスト実行時間、テスト実施時刻等)とともに、テスト結果データとしてテスト結果記憶手段43に記憶させるようにしてもよい。
【0095】
課題登録手段28は、テスト成否判定手段26により失敗と判定されたテストについての失敗の詳細情報を、ジョブ(ジョブネットの場合には、構成ジョブ)の識別情報(例えばジョブ名)と関連付けて課題管理サーバ60の課題記憶手段62に記憶させる処理を実行するものである。ここで、失敗の詳細情報とは、アプリケーション開発者が失敗原因を特定するための情報であり、エラーコード等である。なお、失敗の詳細情報には、失敗したテストシナリオについての識別情報(ファイル名、シナリオ名等)、バージョン番号、レポジトリサーバ50のテスト資源記憶手段52内の格納場所(ディレクトリ)も含まれている。この課題登録手段28は、テストが失敗した場合の課題登録を行うのに対し、前述したテスト結果登録手段27は、統計分析に供するために失敗・成功の双方の情報について登録する。
【0096】
テスト結果伝達手段29は、失敗したジョブ(ジョブネットの場合には、構成ジョブ)で使用されるテストデータ(アプリケーションを含む。)やテストシナリオを作成したアプリケーション開発者、および/または、失敗したジョブ(ジョブネットの場合には、構成ジョブ)を作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを自動送信する、すなわちネットワーク1を介してメールサーバ110に自動送信する処理を実行するものである。
【0097】
これらの宛先となるアプリケーション開発者やテスト担当者(ジョブ作成者)の識別情報(名前、従業員コード等)は、失敗したジョブのジョブファイルの中で指定されている。なお、本実施形態では、ジョブファイルの中に、アドレスが直接に保存されているのではなく、アプリケーション開発者やテスト担当者(ジョブ作成者)の識別情報(名前、従業員コード等)を用いて、ユーザ情報管理サーバ70のユーザ情報記憶手段72から、これらの者のメールアドレスを取得し、そこに宛てて電子メールを自動送信するが、ジョブファイルの中に、メールアドレスを直接に保存しておいてもよい。
【0098】
テスト結果分析手段30は、テスト結果記憶手段43に蓄積記憶された複数のテスト結果データ(テスト結果ファイルに収められている。)を用いて、テスト時間帯および/またはテスト担当者(ジョブ作成者)に関する傾向分析を含む各種の統計処理を行い、得られた分析結果データを、分析結果ファイルに収めて分析結果記憶手段46に記憶させる処理を実行するものである。
【0099】
このテスト結果分析手段30による自動分析の実行タイミングについては、例えば、図示されない管理者端末(テスト担当者端末90と同様な機能・配置状況を有する端末)からの人手による操作で自動分析を開始してもよく、夜間バッチ処理等で毎日あるいは定期的に行うようにしてもよく、テストが実施され、新たなテスト結果データ(テスト結果ファイル)が生成される都度に行うようにしてもよい。
【0100】
また、自動分析を行う母集団(分析対象とするデータの集合の大きさ・範囲・内容)については、例えば、全部のテスト結果データ(テスト結果ファイル)を母集団としてもよく、ジョブの種類毎に母集団を形成してもよく(ジョブの中にジョブの種類情報を入れておくことにより、ジョブの種類を定義できるようになっている。)、テスト担当者毎またはアプリケーション開発者毎の母集団を形成してもよい(ジョブの中に、テスト担当者やアプリケーション開発者の識別情報が入っている。)。
【0101】
さらに、テスト結果分析手段30による自動分析の内容・方法については、例えば、(分析例1)テスト時間帯および/またはテスト担当者(ジョブ作成者)に関する傾向分析、(分析例2)テスト担当者と、タイマー実行手段24によるタイマー実行との関係についての分析、(分析例3)テスト担当者と、テスト自動実行手段25によるアプリケーション等の更新に伴う自動実行との関係についての分析等がある。
【0102】
(分析例1)については、例えば、あるテスト担当者は、または、ある時間帯は、あるいは、あるテスト担当者のある時間帯は、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向にあるか否かの分析等である。テストの失敗・成功は、テスト結果記憶手段43に蓄積記憶された複数のテスト結果データ(テスト結果ファイル)から取得することができ、テスト担当者の識別情報(名前、従業員コード等)、テスト実施時刻(時間帯)、およびテスト実行時間は、テスト結果データに含まれるビルドの識別情報(例えばビルド番号)を用いて、ビルド履歴記憶手段45に記憶されたビルド履歴から取得することができる。時間帯の分布は、例えば、24時間、1週間、1か月間、1年間等の暦に従った単位期間を所定の数で分割することにより、夜間の特徴、昼間の特徴、午後3時頃の特徴、夕方の特徴、金曜日の特徴、月曜日の朝の特徴、水曜日の夜間の特徴、月初めの特徴、月末の特徴、夏の特徴、年末の特徴等を抽出することができる。また、テスト失敗の確率が高いか否かは、予め閾値を設定しておけばよく、例えば、失敗の確率5割以上とか、母集団全体の失敗の確率に対して3倍以上の確率になっている等の閾値を設定しておき、あるテスト担当者のある時間帯についての失敗の確率等が、それを満たすか否かを判断すればよい。さらに、テスト実行時間が長いか否かも、予め閾値を設定しておけばよく、例えば、母集団全体のテスト実行時間の平均値に対して5倍以上の時間を要している等の閾値を設定しておき、あるテスト担当者のある時間帯についてのテスト実行時間等が、それを満たすか否かを判断すればよい。
【0103】
(分析例2)については、先ず、タイマー実行であるか否かは、ビルドの情報として、ビルド履歴記憶手段45のビルド履歴ファイルに記録しておくか、あるいはテスト結果記憶手段43のテスト結果ファイルに記録しておくことができる。また、これらの記録がなくても、タイマー実行は、就業時間外である夜間に実行されることが多いので、特定の夜間の時間帯(例えば、夜10時〜早朝5時等)に実行されていれば、タイマー実行手段24によるタイマー実行であると推定することができる。
【0104】
そして、あるテスト担当者が作成したジョブ(ジョブネットの場合は、その構成ジョブ)が、タイマー実行手段24により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向があるか否かを分析する。
【0105】
(分析例3)については、先ず、アプリケーション等の更新に伴う自動実行であるか否かは、ビルドの情報として、ビルド履歴記憶手段45のビルド履歴ファイルに記録しておくか、あるいはテスト結果記憶手段43のテスト結果ファイルに記録しておくことができる。また、これらの記録がなくても、テスト自動実行手段25による自動実行は定期的(例えば1日2回等)に行われるので、その時間帯に実行されていれば、テスト自動実行手段25による自動実行であると推定することができる。
【0106】
そして、あるテスト担当者が作成したジョブ(ジョブネットの場合は、その構成ジョブ)が、テスト自動実行手段25により実行されるか、またはテスト自動実行手段25による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向があるか否かを分析する。
【0107】
分析結果出力手段31は、テスト結果分析手段30による分析結果データ(グラフ、判断結果等を含む。)を、テスト担当者やシステム管理者からの要求に応じてテスト担当者端末90や図示されない管理者端末(テスト担当者端末90と同様な機能・配置状況を有する端末)の画面上に表示するか、これらの端末若しくは自己の印刷装置で印刷するか、または分析結果記憶手段46に記憶されている分析結果データを収めた分析結果ファイルを電子メールでテスト担当者のメールアドレスに自動送信する、すなわちネットワーク1を介してメールサーバ110に自動送信する処理を実行するものである。この際、送信先のテスト担当者のメールアドレスは、分析で送信対象者として決定されたテスト担当者の識別情報(名前、従業員コード等)を用いて、ユーザ情報管理サーバ70のユーザ情報記憶手段72から取得することができる。なお、テスト担当者のメールアドレスを、テスト担当者の識別情報(名前、従業員コード等)とともに、ビルド履歴としてビルド履歴記憶手段45に記憶させておけば、分析で送信対象のテスト担当者を決定した段階で、そのメールアドレスも特定することが可能であり、そのようにしてもよいが、本実施形態では、各人のメールアドレスは変更される可能性もあるので、ユーザ情報管理サーバ70のユーザ情報記憶手段72から最新のメールアドレスを取得することとしている。
【0108】
また、分析結果出力手段31は、テスト結果分析手段30による上記の分析例2の分析において、あるテスト担当者が作成したジョブ(ジョブネットの場合は、その構成ジョブ)が、タイマー実行手段24により実行されるか、または特定の夜間の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブ(ジョブネットの場合は、その構成ジョブ)について当該テスト担当者がタイマー設定を行おうとした際若しくは特定の夜間の時間帯へのタイマー設定を行おうとした際に、不具合が発生する旨を警告するタイマー設定時警告対象者情報として、当該テスト担当者の識別情報(名前、従業員コード等)を設定情報記憶手段41に記憶させるか、または、タイマー設定をせずに手動実行を指示する電子メール、若しくはタイマー実行手段24による実行で不具合が発生する旨を知らせてジョブ(ジョブネットの場合は、その構成ジョブ)の作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに自動送信する、すなわちネットワーク1を介してメールサーバ110に自動送信する処理を実行する。
【0109】
なお、分析結果出力手段31が、上記のように、タイマー設定時警告対象者情報を、設定情報記憶手段41に記憶させる処理を行った場合には、当該テスト担当者が、タイマー設定を行おうとした際若しくは特定の夜間の時間帯へのタイマー設定を行おうとした際には(後者の場合は、特定の夜間の時間帯以外の時間帯へのタイマー設定を行おうとした際には警告しないという意味である。)、設定手段21により、当該テスト担当者の識別情報がタイマー設定時警告対象者情報として設定情報記憶手段41に記憶されているか否かを判断し、記憶されている場合には、設定手段21が、不具合が発生する旨の警告の表示用データを、ネットワーク1を介して当該テスト担当者の操作するテスト担当者端末90に送信する。
【0110】
さらに、分析結果出力手段31は、テスト結果分析手段30による上記の分析例3の分析において、あるテスト担当者が作成したジョブ(ジョブネットの場合は、その構成ジョブ)が、テスト自動実行手段25により実行されるか、またはテスト自動実行手段25による自動実行の時間帯に実行されると、テスト失敗の確率が高いか、またはテスト実行時間が長くなる傾向が得られた場合には、当該テスト担当者が作成したジョブ(ジョブネットの場合は、その構成ジョブ)の中で指定されているテスト自動実行手段25による自動実行の対象とするための選択情報を解除するか、若しくはテスト自動実行手段25による自動実行の対象として設定情報記憶手段41に記憶されているジョブ(ジョブネットの場合は、その構成ジョブ)の識別情報(ジョブ名等)を無効にするか、または、テスト自動実行手段25による自動実行の時間帯を避けた手動実行を指示する電子メール、若しくはテスト自動実行手段25による実行で不具合が発生する旨を知らせてジョブ(ジョブネットの場合は、その構成ジョブ)の作成し直しを促す電子メールを、当該テスト担当者のメールアドレスに自動送信する、すなわちネットワーク1を介してメールサーバ110に自動送信する処理を実行する。
【0111】
なお、分析結果出力手段31が、上記のように、ジョブ(ジョブネットの場合は、その構成ジョブ)の中で指定されているテスト自動実行手段25による自動実行の対象とするための選択情報を解除するか、若しくはテスト自動実行手段25による自動実行の対象として設定情報記憶手段41に記憶されているジョブ(ジョブネットの場合は、その構成ジョブ)の識別情報(ジョブ名等)を無効にする処理を行った場合には、テスト自動実行手段25は、そのジョブ(ジョブネットの場合は、その構成ジョブ)について、使用するアプリケーション等の更新が行われたか否かの監視処理を行わず、更新に伴う自動実行は行わない。
【0112】
設定情報記憶手段41は、設定手段21により設定した各種の設定情報を記憶するものである。例えば、設定情報記憶手段41は、ジョブやジョブネットをタイマー実行手段24によりタイマー実行するためのタイマー実行時刻(年月日および時刻)と、そのタイマー実行の対象となるジョブやジョブネットの識別情報(例えば名称)とを関連付けて保存した設定ファイルを記憶する。また、設定情報記憶手段41は、テスト自動実行手段25によるアプリケーション等の更新に伴う自動実行の対象にされるジョブ(ジョブネットの構成ジョブを含む。)の識別情報(例えば名称)を保存した設定ファイルを記憶する。
【0113】
ジョブ記憶手段42は、ジョブやジョブネットを記憶するものである。本実施形態では、ジョブ(ジョブネットの構成ジョブを含む。)を保存したジョブファイルを記憶する。
【0114】
テスト結果記憶手段43は、繰り返し行われるテストのテスト結果データを蓄積記憶するものである。本実施形態では、テスト結果記憶手段43は、テスト成否判定手段26によりテストの成功・失敗を判定した成否判定結果を、ビルドの識別情報(例えば、ジョブ実行を繰り返すと1ずつ増番していくビルド番号)とともに、テスト結果データとして収めた各テストのテスト結果ファイルを記憶する。なお、テスト結果記憶手段43は、テスト成否判定手段26による成否判定結果を、ビルドの情報そのもの(テスト担当者の識別情報、テスト実行時間、テスト実施時刻等)とともに、テスト結果データとして記憶してもよい。
【0115】
プロジェクト情報記憶手段44は、開発プロジェクトに関与する者(アプリケーション開発者、テスト担当者等)の識別情報(例えば、名前、従業員コード等)の一覧を記録するものである。なお、メールアドレスは、このプロジェクト情報記憶手段44には記憶されておらず、ユーザ情報管理サーバ70のユーザ情報記憶手段72に記憶されているが、プロジェクト情報記憶手段44にメールアドレスを記憶させてもよい。
【0116】
ビルド履歴記憶手段45は、繰り返し行われるテストについての各回のビルドの情報を、各回のビルドの識別情報(例えばビルド番号)と関連付けて蓄積記憶するものである。1回1回のテストについてのビルドの情報(ジョブ実行の情報)には、例えば、テスト担当者(ジョブ作成者)の識別情報(名前、従業員コード等)、処理に要したテスト実行時間(ジョブ実行時間であり、ジョブネットの場合には、各構成ジョブのジョブ実行時間またはそれに加えてジョブネット全体の実行時間)、テスト実施時刻(ジョブを起動した年月日および時刻であり、ジョブネットの場合には、各構成ジョブの実施時刻)、実際に使用(展開)したテストデータ(アプリケーションを含む。)やテストシナリオおよびそれらのバージョン情報等が含まれる。本実施形態では、ビルド履歴記憶手段45は、繰り返された複数回のテスト(複数回のビルド)についてのビルドの情報を、ビルド履歴として1つにまとめて保存したビルド履歴ファイルを記憶するが、1回1回のテスト毎(1回1回のビルド毎)に、個々のビルドファイルを作成し、それらを記憶してもよい。
【0117】
分析結果記憶手段46は、テスト結果分析手段30により得られた分析結果データ(グラフ、判断結果等を含む。)を記憶するものである。本実施形態では、分析結果記憶手段46は、分析結果データを収めた分析結果ファイルを記憶する。
【0118】
レポジトリサーバ50は、1台または複数台のコンピュータにより構成され、テスト資源管理手段51と、テスト資源記憶手段52とを備えている。
【0119】
テスト資源管理手段51は、テスト資源である各種データを収めたファイルの登録、更新、削除等のファイルの管理処理を、バージョン管理を行いながら実行するものである。また、テスト資源管理手段51は、テスト自動実行手段25からのテストデータやテストシナリオの最新バージョンの問合せに対し、応答する処理を実行する。
【0120】
テスト資源記憶手段52は、テスト対象システム200に配置される上層のアプリケーションから下層のオペレーティングシステムまでを含む各種のテストデータと、テスト内容を定めたテストシナリオとを、それぞれのバージョン情報とともに記憶するものである。本実施形態では、テストシナリオは、エクセルファイルで作成され、打鍵用の入力データも含んでいる。通常、1回のテストで多数のテストシナリオ(エクセルファイル)が使用される。
【0121】
課題管理サーバ60は、1台または複数台のコンピュータにより構成され、課題管理手段61と、課題記憶手段62とを備えている。
【0122】
課題管理手段61は、テスト統括管理サーバ20からネットワーク1を介して送信されてくるテストについての失敗の詳細情報(テスト成否判定手段26により失敗と判定されて課題登録手段28により送信されてくる失敗の詳細情報)を、ジョブ(ジョブネットの場合には、構成ジョブ)の識別情報(例えばジョブ名)と関連付けて課題記憶手段62に記憶させる処理を実行するものである。
【0123】
また、課題管理手段61は、開発者端末100からネットワーク1を介して送信されてくるアプリケーション開発者による失敗原因の解析のための課題の閲覧要求信号を受信し、閲覧要求に係るジョブ(ジョブネットの構成ジョブを含む。)により実行されたテストについての失敗の詳細情報を課題記憶手段62から取得し、取得した失敗の詳細情報の表示用データを、ネットワーク1を介して開発者端末100に送信し、アプリケーション開発者による修正箇所の記録や課題管理表のクローズの操作を受け付ける処理を実行する。
【0124】
課題記憶手段62は、テストについての失敗の詳細情報(アプリケーション開発者が失敗原因を特定するための情報であり、エラーコード等である。)を、ジョブ(ジョブネットの場合には、構成ジョブ)の識別情報(例えばジョブ名)、ステータス(登録されたばかりであることを示す「New」、修正作業中であることを示す「実行中」、修正作業完了を示す「クローズ」等の別がある。)、日付(「New」→「実行中」→「クローズ」等というステータスの変更に伴い変わっていく。)、課題修正担当者(最初の登録時はテスト統括管理サーバ20であり、その後のアクセスでアプリケーション開発者に変わる。)等と関連付けて記憶するものである。なお、本実施形態では、1回のジョブ実行により、多数のテストシナリオが使用され(従って、多数の打鍵が行われ)、1つのテストシナリオに対して1つの成功または失敗があるので、課題記憶手段62である課題データベースのレコードは、失敗したテストシナリオ毎に作成され、同じジョブについて複数の失敗したテストシナリオのレコードが存在することがあるが、失敗の詳細情報の中に、失敗したテストシナリオについての識別情報(ファイル名、シナリオ名等)、バージョン番号、レポジトリサーバ50のテスト資源記憶手段52内の格納場所(ディレクトリ)が入っているため、それでテストシナリオを特定することができる。
【0125】
ユーザ情報管理サーバ70は、1台または複数台のコンピュータにより構成され、ユーザ情報管理手段71と、ユーザ情報記憶手段72とを備えている。
【0126】
ユーザ情報管理手段71は、テスト担当者端末90や開発者端末100等の社内の様々な端末からのアクセスを受け付け、ユーザ情報記憶手段72への各社員の情報の登録、変更、削除等を含む登録処理を実行するとともに、端末やサーバからの要求に応じ、各社員の情報の検索処理や送信処理を実行するものである。
【0127】
ユーザ情報記憶手段72は、様々なプロジェクトに属するアプリケーション開発者やテスト担当者(ジョブ作成者)を含む全社員の各種情報、例えば、メールアドレス、生年月日、年齢、所属部署、職種、階級等を、各社員の識別情報(名前、従業員コード等)と関連付けて記憶するものである。
【0128】
打鍵テストマシン80は、コンピュータにより構成され、ジョブ実行手段23の補助処理手段(不図示)を備えている。この打鍵テストマシン80は、例えば、顧客による普通預金口座への振込処理のテストを行う場合には、ネットワーク2を介してテスト対象システム200との通信を行う仮想的な顧客端末である。例えば、ジェンキンスの場合には、この打鍵テストマシン80にジェンキンス・スレーブ・エージョントを搭載することによりテスト統括管理サーバ20のスレーブマシンとし、ジョブ実行手段23の補助処理手段として機能させることができる。この打鍵テストマシン80は、複数台設けてもよい。
【0129】
テスト担当者端末90や開発者端末100は、コンピュータにより構成され、例えば液晶ディスプレイやCRTディスプレイ等の表示手段と、例えばマウスやキーボード等の入力手段とを備え、適宜、印刷装置を備えている。これらの端末90,100は、それぞれネットワーク1に何台接続されていてもよい。また、汎用のWebブラウザを搭載していればよく、テストに必要な専用のソフトウェアをインストールする必要はない。さらに、これらの端末90,100は、例えば、タブレット端末、携帯情報端末(PDA)、携帯電話機(PHSも含む。)等の携帯機器であってもよい。
【0130】
メールサーバ110は、社内または社外に設置されたコンピュータにより構成され、電子メールの送受信を行うものであるが、テスト以外の用途の電子メールの送受信も行う通常の構成のものでよい。
【0131】
以上において、テスト統括管理サーバ20、レポジトリサーバ50、課題管理サーバ60、ユーザ情報管理サーバ70は、それぞれ1台のコンピュータあるいは1つのCPUにより実現されるものに限定されず、複数のコンピュータあるいは複数のCPUで分散処理を行うことにより実現されるものであってもよい。
【0132】
また、テスト統括管理サーバ20を構成する処理手段20Aに含まれる各手段21〜31、レポジトリサーバ50を構成するテスト資源管理手段51、課題管理サーバ60を構成する課題管理手段61、ユーザ情報管理サーバ70を構成するユーザ情報管理手段71は、各サーバ20,50,60,70を構成するコンピュータ本体の内部に設けられた中央演算処理装置(CPU)、およびこのCPUの動作手順を規定する1つまたは複数のプログラム(ジョブ実行手段23の場合には、ジョブも含まれる。)により実現される。
【0133】
さらに、テスト統括管理サーバ20を構成する各記憶手段41〜46、レポジトリサーバ50を構成するテスト資源記憶手段52、課題管理サーバ60を構成する課題記憶手段62、ユーザ情報管理サーバ70を構成するユーザ情報記憶手段72は、例えばハードディスク等により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、フラッシュ・メモリ等のその他の記録媒体を採用してもよい。
【0134】
このような本実施形態においては、以下のようにしてテスト管理システム10により、テスト対象システム200の動作確認テストが実行される。
【0135】
先ず、アプリケーション開発者は、開発者端末100を操作し、作成したテストデータおよびテストシナリオを、バージョン情報とともに、レポジトリサーバ50のテスト資源記憶手段52に登録して記憶させておく。登録するテストデータには、アプリケーション(ここでは、ソースコードのプログラムである。)が含まれる。このバージョン管理を伴う登録処理は、テスト資源管理手段51により受け付けられて実行される。なお、バージョン1の登録を行っても、テスト自動実行手段25による自動実行は行われない。
【0136】
次に、テスト担当者は、テスト担当者端末90を操作し、ジョブ(ジョブネットの構成ジョブを含む。)を作成し、作成したジョブ(ジョブファイル)をジョブ記憶手段42に登録して記憶させておく。この登録処理は、テスト統括管理サーバ20のジョブ作成手段22により受け付けられて実行される。
【0137】
また、テスト担当者は、作成したジョブ(ジョブネットの場合には、その先頭ジョブ)をタイマー実行手段24により夜間等にタイマー実行したい場合には、テスト担当者端末90を操作し、タイマー実行時刻を、設定情報記憶手段41に設定して記憶させておく。この設定処理は、テスト統括管理サーバ20の設定手段21により受け付けられて実行される。なお、ここでは、タイマー実行をせずに、手動実行するものとして以下の説明を行う。
【0138】
図2において、テスト担当者は、テスト担当者端末90を操作し、作成済みのジョブの一覧を示す実行ジョブ選択画面の送信要求を、ネットワーク1を介してテスト統括管理サーバ20に送信する。テスト統括管理サーバ20では、ジョブ実行手段23により、この送信要求を受信すると、実行ジョブ選択画面の表示用データを、ネットワーク1を介してテスト担当者端末90へ送信する。すると、テスト担当者端末90の画面上には、実行ジョブ選択画面が表示されるので、テスト担当者は、この実行ジョブ選択画面において、実行対象のジョブ(ジョブネットを実行する場合には、その先頭のジョブ)を選択し、その選択情報を、ネットワーク1を介してテスト統括管理サーバ20に送信する。ここでは、ジョブネットを実行するために、その先頭ジョブが実行対象として選択されたものとする。そして、テスト統括管理サーバ20では、ジョブ実行手段23により、このジョブの選択情報を受信する。ここまでが、ジョブ実行手段23による実行ジョブ選択受付処理である。
【0139】
それから、ジョブ実行手段23により、テスト担当者端末90から受信した選択情報で指定されているジョブネットを構成する複数のジョブを示す各図形を実行順序の通りに並べて画面表示するための表示用データを、ネットワーク1を介してテスト担当者端末90へ送信するジョブ図形表示処理を行う。すると、テスト担当者端末90の画面上には、図3の例に示すようなジョブネットの各構成ジョブを示す複数の図形301〜305を並べた表示が行われる。このジョブネットに係るジョブ図形表示処理の内容については、既に詳述しているため、ここでは説明を省略する。なお、図3の例は、イメージとして挙げたものであり、図2のフローチャートの記載と完全に対応するものではない。
【0140】
続いて、テスト担当者は、テスト担当者端末90に画面表示されたジョブネットの先頭ジョブを示す図形中またはその近傍に設けられた実行ボタン(図3の例では、図形301の中に設けられた実行ボタン306)をクリック操作し、先頭ジョブの実行を開始させるための実行指令を、ネットワーク1を介してテスト統括管理サーバ20へ送信する(ステップS1)。テスト統括管理サーバ20では、ジョブ実行手段23により、テスト担当者端末90から送信されてくる実行指令を受信し、受信した実行指令に基づき、ジョブ記憶手段42に記憶された先頭ジョブのジョブファイルを用いて先頭ジョブを実行させる(ステップS1)。ここから、ジョブ実行手段23によるジョブネットに係るジョブ実行処理が開始される。なお、ここでは、先頭ジョブは、テスト環境構築ジョブであるものとする。
【0141】
それから、テスト環境構築ジョブの記述内容に従って、ジョブ実行手段23により、レポジトリサーバ50のテスト資源記憶手段52から、そのテスト環境構築ジョブで指定されているテストデータ(アプリケーションを含む。)を、バージョン情報とともに取得する(ステップS2)。
【0142】
さらに、テスト環境構築ジョブの記述内容に従って、ジョブ実行手段23により、テスト対象システム200について旧環境のバックアップを行う(ステップS3)。ここでは、テスト対象システム200は、開発環境下に置かれているが、その開発環境下にある各サーバ210,220,230のデータ(アプリケーション等を含む。)を退避させる。
【0143】
続いて、テスト環境構築ジョブの記述内容に従って、ジョブ実行手段23により、ステップS2で取得したテストデータのうち、アプリケーションを除くテストデータ(データベース231のデータ、アプリケーションの下層のソフトウェアやOS等)を、ネットワーク2を介してFTP送信等によりテスト対象システム200に設定する(ステップS4)。
【0144】
それから、ジョブネットで指定した実行順序の通りに、ジョブ記憶手段42に記憶されたビルドジョブ(ジョブファイル)を自動的に起動して実行し、そのビルドジョブの記述内容に従って、ジョブ実行手段23により、ステップS2で取得したテストデータのうち、アプリケーションを、ネットワーク2を介してFTP送信等によりテスト対象システム200に配置する(ステップS5)。なお、レポジトリサーバ50のテスト資源記憶手段52からのアプリケーションの取得は、ステップS2ではなく、このステップS5で行ってもよい。
【0145】
その後、ジョブネットで指定した実行順序の通りに、ジョブ記憶手段42に記憶された打鍵テストのテストジョブ(ジョブファイル)を自動的に起動して実行し、そのテストジョブの記述内容に従って、ジョブ実行手段23により、レポジトリサーバ50のテスト資源記憶手段52から、そのテストジョブで指定されているテストシナリオを、バージョン情報とともに取得する(ステップS6)。通常、1つのテストジョブで多数のテストシナリオを使用するので、多数のテストシナリオをそれぞれのバージョン情報とともに取得することになる。
【0146】
続いて、打鍵テストのテストジョブの記述内容に従って、ジョブ実行手段23により、テストシナリオ(エクセルファイル)を1つずつ、そのテストシナリオの実行指令とともに、ネットワーク1を介して打鍵テストマシン80に送信する(ステップS7)。この際、テストシナリオのバージョン情報は、テスト統括管理サーバ20で把握しているので、打鍵テストマシン80に送信しなくてもよい。なお、1つずつ送信するというのは、実行結果を受信したら、次のテストシナリオを送信するという意味である。
【0147】
さらに、打鍵テストマシン80では、ジョブ実行手段23の補助処理手段(不図示)により、テスト統括管理サーバ20から送信されてくるテストシナリオおよびその実行指令を受信すると、そのテストシナリオを実行し、そのテストシナリオに含まれている打鍵用の入力データを、ネットワーク2を介してテスト対象システム200に送信する(ステップS8)。
【0148】
続いて、テスト対象システム200は、打鍵用の入力データを受信して普通預金口座への振込処理等のテスト対象の処理を実行し、その実行結果を、ネットワーク2を介して打鍵テストマシン80に送信する(ステップS9)。
【0149】
それから、打鍵テストマシン80では、ジョブ実行手段23の補助処理手段(不図示)により、テスト対象システム200から送信されてくる実行結果を受信し、受信した実行結果を、ネットワーク1を介してテスト統括管理サーバ20に転送する(ステップS10)。
【0150】
続いて、テスト統括管理サーバ20では、打鍵テストマシン80から転送されてくる実行結果を受信すると、テスト成否判定手段26により、その実行結果を用いて、テストの成功・失敗を自動判定する(ステップS11)。
【0151】
その後、1回のテスト(1つのテストジョブの実行)に係る全てのテストシナリオの実行を終了した後に、または各テストシナリオの実行の終了の都度に、課題登録手段28により、テスト成否判定手段26により失敗と判定されたテスト(失敗したテストシナリオの全て)についての失敗の詳細情報を、ネットワーク1を介して課題管理サーバ60に送信する。そして、課題管理サーバ60では、課題管理手段61により、テスト統括管理サーバ20から送信されてくる失敗の詳細情報を受信し、受信した失敗の詳細情報を、テストジョブの識別情報(例えばジョブ名)と関連付けて課題記憶手段62に記憶させる(ステップS11)。
【0152】
また、1回のテストに係る全てのテストシナリオの実行を終了した後に、テスト結果登録手段27により、テスト成否判定手段26による成否判定結果を、ビルドの識別情報(例えばビルド番号)とともに、テスト結果データとしてテスト結果記憶手段43に記憶させる(ステップS11)。また、テスト結果登録手段27により、テスト担当者(ジョブ作成者)の識別情報(名前、従業員コード等)、処理に要したテスト実行時間、テスト実施時刻、実際に使用(展開)したテストデータ(アプリケーションを含む。)やテストシナリオおよびそれらのバージョン情報等のビルド(ジョブ実行)の情報を、ビルドの識別情報(例えばビルド番号)と関連付けてビルド履歴記憶手段45に記憶させる(ステップS11)。
【0153】
さらに、テスト結果伝達手段29により、失敗したジョブで使用されたテストデータ(アプリケーションを含む。)やテストシナリオを作成したアプリケーション開発者、および/または、失敗したジョブを作成したテスト担当者のメールアドレスに、テストが失敗した旨の電子メールを自動送信する、すなわちネットワーク1を介してメールサーバ110に自動送信する(ステップS12)。
【0154】
そして、ジョブネットで指定した実行順序の通りに、ジョブ記憶手段42に記憶された環境戻しジョブ(ジョブファイル)を自動的に起動して実行し、その環境戻しジョブの記述内容に従って、ジョブ実行手段23により、テスト対象システム200を、ステップS3でバックアップしておいた旧環境に戻す(ステップS13)。
【0155】
その後、アプリケーション開発者は、失敗原因を解析するため、開発者端末100を操作し、課題の閲覧要求信号を、ネットワーク1を介して課題管理サーバ60に送信する(ステップS14)。課題管理サーバ60では、課題管理手段61により、開発者端末100から送信されてくる課題の閲覧要求信号を受信し、閲覧要求に係るジョブにより実行されたテストについての失敗の詳細情報を課題記憶手段62から取得し、取得した失敗の詳細情報の表示用データを、ネットワーク1を介して開発者端末100に送信する(ステップS14)。
【0156】
そして、アプリケーション開発者は、失敗原因を解析し、特定したら、失敗したジョブで使用されたテストデータ(アプリケーションを含む。)やテストシナリオを修正し、修正したテストデータ等を、レポジトリサーバ50のテスト資源記憶手段52に記憶させる(ステップS15)。すると、この修正したテストデータ(アプリケーションを含む。)やテストシナリオの登録、すなわちバージョンアップにより、アプリケーション等の更新に伴うテスト自動実行手段25による自動実行が行われる場合がある(自動実行の設定が行われていた場合には、自動実行が行われる)。また、アプリケーション開発者は、テスト対象システム200に設定されたテストデータ等に修正を加える場合もある(ステップS15)。
【0157】
最後に、アプリケーション開発者は、開発者端末100を操作し、課題管理サーバ60にアクセスする。課題管理サーバ60では、課題管理手段61により、このアクセスを受け付け、アプリケーション開発者による修正箇所の記録や、課題管理表のクローズ処理(ステータスを「クローズ」にする処理)を実行する(ステップS16)。
【0158】
このような本実施形態によれば、次のような効果がある。すなわち、テスト管理システム10は、ジョブ記憶手段42により、ジョブネットを形成する全てのジョブを記憶することができ(ジョブネットが、前述した第3の作成方法で作成されている場合には、実行順序管理ジョブも記憶し、前述した第4の作成方法で作成されている場合には、結合ジョブも記憶することができる。)、ジョブ実行手段23により、そのジョブネットを実行することができるので、テスト環境構築ジョブおよびテストジョブを含む複数のジョブを、指定した実行順序に従って連続実行することができる。
【0159】
このため、一連のテストについて、手作業を少なくし、いわゆるヒューマンエラーの発生確率を抑制することができるので、納期の短縮や、テスト担当者の作業負担の軽減を図ることができる。
【0160】
また、従来は手作業が多いことから、時間や予算の都合上、十分なテストを行うことができない場合も多々あったが、テスト管理システム10では、ジョブネットの構成ジョブの連続実行の実現により、そのような事態を避けることができ、テストの品質や信頼性を高めることができる。
【0161】
さらに、従来のテストは、テスト手順書に従って行う人手による作業が多かったため、属人化が発生し、個人の技量によりテスト手順が異なってくる場合もあったが、テスト管理システム10では、ジョブネットの構成ジョブの連続実行の実現により、そのような属人化を抑制することができる。このため、テストの品質や信頼性についての均質化を図ることができ、さらにはシステムの開発効率について個人間の差異を少なくし、均一化を図ることができる。そして、人手による作業が少なくなることから、人事異動があるたびに教育コストが発生する、あるいは異動直後に様々なトラブルが発生するといった諸問題も解決することができる。
【0162】
また、ジョブ実行手段23により、ジョブ図形表示処理、およびテスト進捗表示処理が行われるので(図3図4参照)、この可視化により、テスト担当者は、実行手順を含めたテストの全体的内容や、テストの進捗をテスト担当者端末90の画面上で容易に把握し、理解することができるため、テスト担当者の確認や監視の負担を減らすことができ、これによってもテスト担当者の作業負担の軽減を図ることができる。
【0163】
さらに、テスト管理システム10では、テストで使用するテストデータやテストシナリオは、テスト資源記憶手段52に記憶され、ジョブ実行手段23は、そこに記憶されたテストデータやテストシナリオを使用してテストを実施するので、従来のように特定のテスト担当者やアプリケーション開発者が、自分に関係するテストデータやテストシナリオを自分で保存・管理するという状況を解消することができる。このため、他の者、例えば、テスト担当やアプリケーション開発を引き継いだ者、一時的に交替する者等が、テスト資源記憶手段52に記憶されているテストデータやテストシナリオを再利用して次回テストを実施することや、それらの更新作業を行うことができるので、テスト準備にかかる時間と手間を大幅に削減することができ、テストの品質の標準化、信頼性の向上を図ることができる。
【0164】
そして、従来、一連のテストのうちの一部の工程について、テスト担当者が人手による操作で個別に起動して使用していた1つまたは複数のテストツール(単機能のテストロボット)を、ジョブネットを構成する1つまたは複数のテストジョブの実行により自動的に呼び出して起動させれば、任意の数の既存または新設のテストツールの自動連携を実現することができる。
【0165】
また、テスト管理システム10を通してテストツール(単機能のテストロボット)を利用することで、実行したテストにおいて、どのテストツールを利用したのかがビルドの情報としてビルド履歴記憶手段45に記憶されるので、テスト管理システム10における各テストツールの稼働状況を把握することができる。このため、経済効果、投資対効果の測定が可能になり、その結果、利用状況に応じたテストツールの強化・改善等を行うことができるようになる。
【0166】
また、テスト管理システム10は、テスト自動実行手段25を備えているので、アプリケーション等の更新に伴い、テストを自動実行することができる。このため、時間的制約や失念等によるテストの不実施を回避でき、十分なテストを行うことができる。そして、この自動実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができるので、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができる。
【0167】
さらに、テスト管理システム10は、タイマー実行手段24、および設定情報記憶手段41を備えているので、タイマー実行時刻の設定により、夜間等の就業時間外や、自己の外出時間帯等にテストを実施することができる。従って、例えば、開発作業を日中に行い、テストを業務終了後(夕方、深夜等)に実施することができる。また、このタイマー実行により、ジョブネットの構成ジョブの連続実行について、起動を含めた自動化を実現することができる。このため、納期の短縮や、テスト担当者の作業負担の軽減を、より一層図ることができる。
【0168】
また、テスト管理システム10は、テスト成否判定手段26、テスト結果登録手段27、テスト結果記憶手段43、テスト結果分析手段30、および分析結果出力手段31を備えているので、テスト結果の統計分析を自動的に行い、その分析結果を表示、印刷、またはメール送信することができる。このため、従来のように非常に多くのテスト結果(例えば、数千から数万のテスト結果)について人手による分析作業を行う場合に比べ、作業負荷を減らすことができるので、十分な分析を行うことができ、精度の高いテスト結果の検証を実現することができる。
【0169】
また、テスト結果登録手段27により、テストの成否判定結果が、ビルドの識別情報(ビルド番号等)とともに、テスト結果データとしてテスト結果記憶手段43に保存され、さらに、ビルドの情報(テスト担当者の識別情報、テスト実行時間、テスト実施時刻、およびテストに使用したテストデータ若しくはテストシナリオの情報を含む。)が、ビルドの識別情報(ビルド番号等)に関連付けられてビルド履歴記憶手段45に保存されるので、従来のように各テストの際に使用したテストデータやテスト手順書等のドキュメント類の管理を人手により行っていた場合に比べ、各テストまたはそれらの成功・失敗の情報と、各テストの際に使用したテストデータやテストシナリオとの紐付けを十分に行うことができる。また、いつ、誰がテストを行ったのかについても、従来のように人手により管理していた場合に比べ、紐付けを十分に行うことができる。このため、効果的な分析を実現し、分析結果を十分に活かすことができる。
【0170】
さらに、テスト結果記憶手段43に記憶させるテスト結果データや、ビルド履歴記憶手段45に記憶させるビルドの情報は、テスト結果登録手段27により自動的に作成され、登録されるものであり、人手によるデータ登録作業ではないので、登録内容について各テスト担当者間のばらつきや毎回のばらつきが生じることはなく、一様な表現が可能となり、標準化することができる。このため、テスト網羅性の向上やレビュー精度の向上が期待できる。また、テスト結果登録手段27によるテスト結果データやビルドの情報の自動登録により、テスト担当者が人手による登録作業を行う場合の手間や時間を省略することができる。
【0171】
そして、テスト管理システム10では、テスト結果分析手段30による分析結果が、タイマー実行手段24やテスト自動実行手段25による処理に結び付けられているので、分析結果を、より一層、十分に活かすことができる。
【0172】
また、テスト管理システム10は、テスト成否判定手段26、課題登録手段28、課題記憶手段62、テスト結果伝達手段29、および課題管理手段61を備えているので、失敗の詳細情報を課題記憶手段62に自動的に記憶させることにより、膨大な件数の失敗の情報を、効率的に管理することができる。このため、従来のように失敗の情報を人手により課題管理表に登録し、解析を行い、解析で得られた失敗事由を記載していた場合に比べ、作業負荷の軽減、失敗事由の解析時間の短縮、原因究明の容易化・早期化を図ることができるうえ、失敗に関する情報不足により解析できないといったケースの発生を未然に防止することもできる。
【0173】
さらに、テスト管理システム10では、複数のジョブを同時並行的に実行することを含むジョブの実行順序を指定したジョブネットを形成し、この並列処理を含むジョブネットを、ジョブ記憶手段42に記憶しておくことができ、ジョブ実行手段23は、この並列処理を含むジョブネットに対応したジョブ実行処理、ジョブ図形表示処理、およびテスト進捗表示処理を実行することができる(図4参照)。このため、ジョブネット全体の処理時間の短縮を図ることができる。
【0174】
そして、ジョブ実行手段23は、テスト進捗表示処理として、ジョブを示す図形の中またはその近傍に、ジョブの実施時刻や実行時間を表示するので、その文字(数字を含む。)の表示の有無によるテスト進捗表示を実現することができるうえ、その文字(数字を含む。)の有する意味内容を、テスト担当者に伝達することもできる。
【0175】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【0176】
例えば、前記実施形態では、テスト管理システム10は、複数のサーバ20,50,60,70を備え、これらをネットワーク1により接続して構成されていたが、本発明のテスト管理システムは、このような構成に限定されるものでなく、例えば、複数のサーバ20,50,60,70は、1つのサーバ(例えば、テスト統括管理サーバ20)にまとめてもよく、逆に、より多くのサーバに機能分散させてもよい。
【0177】
また、前記実施形態では、テスト管理システム10は、打鍵テストマシン80を備えた構成とされていたが、この打鍵テストマシン80の設置は省略することができる。
【0178】
さらに、前記実施形態では、テスト管理システム10は、テスト担当者端末90を備え、これをネットワーク1により各サーバ20,50,60,70に接続して構築されたWebシステム(サーバ・クライアント型のシステム)とされていたが、単体のコンピュータにより構築したスタンドアロン型のシステムとしてもよい。但し、テスト担当者、アプリケーション開発者、システム管理者等の関係者が、複数人いることや、異なる部署や遠隔地にいる場合等を考慮すると、ネットワーク1を介して各端末90,100等からアクセスできるシステムにしておくことが好ましい。
【0179】
なお、図1では、開発者端末100やメールサーバ110は、テスト管理システム10の外側に記載されているが、テストに関する処理を行う限りにおいて、これらをテスト管理システム10に含めて考えてもよい。
【産業上の利用可能性】
【0180】
以上のように、本発明のテスト管理システムおよびプログラムは、例えば、分散系アプリケーションシステムの開発において継続的に実行されるテスト等に用いるのに適している。
【符号の説明】
【0181】
1 ネットワーク
10 テスト管理システム
23 ジョブ実行手段
24 タイマー実行手段
25 テスト自動実行手段
26 テスト成否判定手段
27 テスト結果登録手段
28 課題登録手段
29 テスト結果伝達手段
30 テスト結果分析手段
31 分析結果出力手段
41 設定情報記憶手段
42 ジョブ記憶手段
43 テスト結果記憶手段
46 分析結果記憶手段
90 テスト担当者端末
100 開発者端末
200 テスト対象システム
【要約】
【課題】テスト品質の均一化、納期の短縮、テスト担当者の作業負担の軽減を図ることができるテスト管理システムを提供する。
【解決手段】テストデータおよびテストシナリオを記憶するテスト資源記憶手段52と、テストデータをテスト対象システム200に設定するテスト環境構築ジョブ、およびテストシナリオを用いてテストを実行するテストジョブを含む複数のジョブを組み合わせてこれらの実行順序を指定して形成されたジョブネットを記憶するジョブ記憶手段42と、ジョブネットで指定された実行順序に従って複数のジョブを連続実行するとともに、複数のジョブのそれぞれを示す各図形を実行順序の通りに並べて画面表示し、テスト進捗表示を行うジョブ実行手段23とを設け、テスト管理システム10を構成した。
【選択図】図1
図1
図2
図3
図4