JP2007011512A - テスト記録方法、テスト記録装置、およびテスト記録プログラム - Google Patents

テスト記録方法、テスト記録装置、およびテスト記録プログラム Download PDF

Info

Publication number
JP2007011512A
JP2007011512A JP2005189013A JP2005189013A JP2007011512A JP 2007011512 A JP2007011512 A JP 2007011512A JP 2005189013 A JP2005189013 A JP 2005189013A JP 2005189013 A JP2005189013 A JP 2005189013A JP 2007011512 A JP2007011512 A JP 2007011512A
Authority
JP
Japan
Prior art keywords
test
program
result
input
recording
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005189013A
Other languages
English (en)
Other versions
JP4397354B2 (ja
Inventor
Hideya Ikeda
秀弥 池田
Kentaro Nishimura
健太郎 西村
Minoru Yamamoto
実 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005189013A priority Critical patent/JP4397354B2/ja
Priority to US11/236,635 priority patent/US7890932B2/en
Publication of JP2007011512A publication Critical patent/JP2007011512A/ja
Application granted granted Critical
Publication of JP4397354B2 publication Critical patent/JP4397354B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 納入されたソフトウェアのテスト漏れを防止できるようにする。
【解決手段】 テスト用クライアント2からテスト入力データ5が入力されると、データ送信手段1bにより、そのテスト入力データ5がテスト用サーバ3に対して送信される。テスト用サーバ3からテスト出力データ6とハッシュ値7とが返されると、テスト結果判定手段1cにより、テスト出力データ6と、テスト仕様書1dに記述されているテスト仕様出力内容とが比較され、テストの合否が判定される。そして、テスト結果記録手段1eにより、テスト結果判定手段1cによる判定結果とテスト用サーバ3から送信されたハッシュ値7とが関連づけられ、テスト実施ログ1gとしてテスト実施ログ記憶手段1fに格納される。
【選択図】 図1

Description

本発明は所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録方法、テスト記録装置、およびテスト記録プログラムに関し、特にテストの実施漏れを防止することができるテスト記録方法、テスト記録装置、およびテスト記録プログラムに関する。
大規模のソフトウェアを開発する場合、分散開発が行われる。分散開発では、例えば、開発事業をクライアントから請け負った企業等(発注者)が、他の複数のソフトウェア会社等(受注者)に個別の機能の開発を委託する。そして、各受注者が作成したプログラムを発注者が統合し、最終的な製品に仕上げる。
ここで、納入されたソフトウェアが設計通りに動作することを確認する必要がある。このような品質保証を効率的に行う技術として、例えば、ソフトウェアの受け入れと同時に発注仕様に合致しているかを自動的に試験するソフトウェア開発管理装置が考えられている。これにより、安定したソフトウェア開発が可能となる(特許文献1参照)。
特開2003−44276号公報
しかし、ソフトウェアの受入側だけでテストをしていたのでは、テストに不合格となった場合に、受注者に修正の指示を出してソフトウェアの再提出を受けなければならず、開発の期間の長期化を招く。そのため、受注者側で予めテストを実施した後、テスト結果報告と共に、ソフトウェアが納入されることが望まれる。
しかしながら、ユーザからの入力に応じて処理を実行するソフトウェアの場合、試験を行う際にも試験担当者が実際にキー入力を行う必要がある。そのため、人手がかかる。しかも、開発ソフトウェアの納入は、全ての機能が完成してから納入する場合の手戻りリスクを軽減するために、機能ごとに段階的に行われることが多い。このような状況下では、以下の要因により悪意が無くてもテストの実施漏れが発生する。
(1)ソフトウェア開発の分散化が促進されるのに伴い、モジュールの粒度縮小、関連性の複雑化という傾向がある。そのため、前回納品時から追加した機能のテスト時に、変更の影響範囲の把握が困難である。
(2)時間的な制約により、リリース済み機能に対するテストの優先度が下がり、ついつい再テストを省いてしまう傾向がある。
本発明はこのような点に鑑みてなされたものであり、納入されたソフトウェアのテスト漏れを防止できるソフトウェア受入検査プログラムを提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなテスト記録方法が提供される。本発明に係るテスト記録方法は、所定の仕様に従って作成されたプログラムのテスト結果を記録するために、以下の手順で処理を行う。
データ送信手段1bが、プログラム3aと、プログラム3aに従った処理によって得られる結果にプログラム3aに基づいて生成されたハッシュ値7を付加する処理が記述されたレスポンス加工プログラム3bとが実装されたテスト用サーバ3に対し、テスト用クライアント2から入力されたテスト入力データ5を送信する。テスト結果判定手段1cが、テスト用サーバ3がテスト入力データ5に応じてプログラム3aを実行した結果生成されるテスト出力データ6と、予めテスト内容が定義されたテスト仕様書1dに記述されているテスト仕様出力内容とを比較することで、テストの合否を判定する。テスト結果記録手段1eが、テスト結果判定手段1cによる判定結果と、テスト用サーバ3がレスポンス加工プログラム3bを実行した結果生成されるハッシュ値7とを関連づけて、テスト実施ログ1gとしてテスト実施ログ記憶手段1fに格納する。
このようなテスト記録方法によれば、テスト用クライアント2からテスト入力データ5が入力されると、データ送信手段1bにより、そのテスト入力データ5がテスト用サーバ3に対して送信される。テスト用サーバ3からテスト出力データ6が返されると、テスト結果判定手段1cにより、テスト出力データ6と、テスト仕様書1dに記述されているテスト仕様出力内容とが比較され、テストの合否が判定される。そして、テスト結果記録手段1eにより、テスト結果判定手段1cによる判定結果とハッシュ値7とが関連づけられ、テスト実施ログ1gとしてテスト実施ログ記憶手段1fに格納される。
また、本発明では上記課題を解決するために、所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録装置において、前記プログラムと、前記プログラムに従った処理によって得られるテスト出力データに前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信するデータ送信手段と、前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成される前記テスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定するテスト結果判定手段と、前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納するテスト結果記録手段と、を有することを特徴とするテスト記録装置が提供される。
このようなテスト記録装置によれば、上記本発明に係るテスト記録方法と同様の処理がテスト記録装置上で実現される。
また、本発明では上記課題を解決するために、所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録プログラムにおいて、コンピュータを、前記プログラムと、前記プログラムに従った処理によって得られるテスト出力データに前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信するデータ送信手段、前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成される前記テスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定するテスト結果判定手段、前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納するテスト結果記録手段、として機能させることを特徴とするテスト記録プログラムが提供される。
このようなテスト記録プログラムをコンピュータに実行させれば、上記本発明に係るテスト記録方法と同様の処理がコンピュータ上で実現される。
本発明ではプログラムをテストしたときの判定結果と共に、プログラムに基づいて生成されるハッシュ値をテスト実施ログとして記録するようにしたため、ハッシュ値によって、テストを実行したプログラムのテスト実施ログであることを保証することができる。その結果、テストを実施していないプログラムの納品ができなくなり、プログラムのテスト漏れを防止することができる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本実施の形態の概略を示す図である。図1に示すように、テスト記録装置1は、テスト用クライアント2とテスト用サーバ3との間に配置される。また、テスト記録装置1は、開発したプログラムの納入先に設けられた受入システム4にも接続される。
テスト用クライアント2には、テストのための操作入力等を行うためのユーザインタフェース2aが実装されている。テスト用サーバ3には、開発したプログラム3aと、プログラム3aに従った処理によって得られる結果にプログラム3aに基づいて生成されたハッシュ値7を付加する処理が記述されたレスポンス加工プログラム3bとが実装されている。
テスト記録装置1は、処理機能として、テスト入力比較手段1a、データ送信手段1b、テスト結果判定手段1c、テスト結果記録手段1e、テスト実施ログ記憶手段1f、および納品手段1iを有する。また、テスト記録装置1には、予めテスト内容が定義されたテスト仕様書1dと、納品対象のプログラム1hとが設定されている。なお、テスト仕様書1dには、テスト番号、テストの際に入力すべきデータを示すテスト仕様入力、テストの結果出力されるべきデータを示すテスト仕様出力等が含まれる。
テスト入力比較手段1aは、テスト仕様書1dに記述されているテスト入力内容(テスト仕様入力)と、テスト用クライアント2から入力されたテスト入力データ5と比較し、テスト入力データ5がテスト仕様書1dの内容に沿っていることを検証する。
データ送信手段1bは、テスト用サーバ3に対し、テスト用クライアント2から入力されたテスト入力データ5を送信する。なお、データ送信手段1bは、テスト入力データ5がテスト仕様書1dの内容に沿っている場合にのみ、テスト入力データ5をテスト用サーバ3に送信することもできる。
テスト結果判定手段1cは、テスト用サーバ3がテスト入力データ5に応じてプログラム3aを実行した結果生成されるテスト出力データ6と、予めテスト内容が定義されたテスト仕様書1dに記述されているテスト仕様出力内容とを比較することで、テストの合否を判定する。
テスト結果記録手段1eが、テスト結果判定手段1cによる判定結果と、テスト用サーバ3がレスポンス加工プログラム3bを実行した結果生成されるハッシュ値7とを関連づけて、テスト実施ログ1gとしてテスト実施ログ記憶手段1fに格納する。テスト実施ログ1gには、例えば、テスト番号、テスト結果(テストの合否)、ハッシュ値等が含まれる。
納品手段1iは、納品要求に応じて、プログラム1hとテスト仕様書1dとテスト実施ログ記憶手段1fに格納されたテスト実施ログ1gとを、納入先の受入システム4に対して送信する。なお、納品手段1iは、公開鍵によってテスト実施ログ1gを暗号化することもできる。
このようなテスト記録方法によれば、テスト用クライアント2からテスト入力データ5が入力されると、テスト入力比較手段1aにより、テスト入力データ5がテスト仕様書1dの内容に沿っていることが検証される。そして、データ送信手段1bにより、そのテスト入力データ5がテスト用サーバ3に対して送信される。
テスト用サーバ3からテスト出力データ6が返されると、テスト結果判定手段1cにより、テスト出力データ6と、テスト仕様書1dに記述されているテスト仕様出力内容とが比較され、テストの合否が判定される。そして、テスト結果記録手段1eにより、テスト結果判定手段1cによる判定結果とハッシュ値7とが関連づけられ、テスト実施ログ1gとしてテスト実施ログ記憶手段1fに格納される。
その後、納品要求が入力されると、納品手段により、プログラム1hとテスト実施ログ記憶手段1fに格納されたテスト実施ログ1gとが、納入先の受入システム4に対して送信される。
これにより、受入システム4では、テスト実施ログ1gに含まれたハッシュ値によって、テスト実施ログ1gが生成された際のテストで実行されたプログラム3aと、納品されたプログラム1hとの内容が同一であることを認証できる。すなわち、受入システム4では、プログラム1hに基づいて、レスポンス加工プログラム3bと同様のアルゴリズムでハッシュ値を計算する。そして、受入システム4は、計算によって求められたハッシュ値と、テスト実施ログ1gに含まれるハッシュ値とを比較する。ハッシュ値が同一であれば、プログラム1hのテスト結果がテスト実施ログ1gに設定されていることが保証される。
例えば、開発段階では異なる版数のプログラムが作成される。そのとき、各版のプログラムでテストが行われテスト実施ログが生成されると、ハッシュ値によって、どの版のパッケージに対してテストが実施されたのかが確実に認識できる。これにより、最新版のパッケージに対してきちんとテストされていることが保証される。その結果、テスト漏れが防止される。
次に、本実施の形態の詳細を説明する。なお、一般に、開発されるソフトウェアは複数のプログラムで構成される。そこで、以下の説明において、1つ以上のプログラムの集合によって構成されるソフトウェアを「パッケージ」と呼ぶこととする。
図2は、本実施の形態のシステム構成例を示す図である。本実施の形態では、発注者20が複数の受注者21〜23に対してソフトウェアの開発を依頼することで、分散開発を実施する場合を想定している。
発注者20は、受入システム200を有している。受入システム200は、受注者21〜23から納品されたプログラムの合否を判定するためのコンピュータである。受入システム200は、受注者21によって作成されたソフトウェアのパッケージ41を受け取り、パッケージ41に基づいて生成されたハッシュ値をパッケージ41のレスポンスに含めるように加工した検証用パッケージ42を作成することができる。
受注者21は、開発マシン31、テスト用クライアント32、テスト用サーバ33、およびテスト記録装置100を有している。開発マシン31は、受託したソフトウェアを開発するためのコンピュータである。この開発マシン31を用いて、ソフトウェアのパッケージ41が作成される。テスト用クライアント32は、検証用パッケージ42をテストする際に、ユーザからの入力、および出力データの表示を行うためのコンピュータである。テスト用サーバ33は、検証用パッケージ42の動作テストを行うためのコンピュータである。
テスト記録装置100は、ネットワーク10を介して受入システム200に接続されている。また、テスト記録装置100は、テスト用クライアント32とテスト用サーバ33との間に接続されている。テスト記録装置100は、テスト用クライアント32からの入力データをテスト用サーバ33に渡すと共に、テスト用サーバ33から出力された出力データをテスト用クライアント32に渡す。そして、テスト記録装置100は、入力データと出力データとを解析して、テスト結果を判断する。また、テスト記録装置100は、検証用パッケージ42に対するテスト完了後、納品データ43を受入システム200に送信する。なお、納品データ43には、検証用パッケージ42と、テスト結果を示すテストレポートとが含まれる。
このようなシステムによって、まず、開発マシン31で作成したソフトウェアのパッケージ41が、受注者21から発注者20に渡される(ステップS11)。すると、受入システム200で検証用パッケージ42が作成され、その検証用パッケージ42が発注者20から受注者21に渡される(ステップS12)。この際、検証用パッケージ42は、パッケージ41に基づいて生成されたハッシュ値をレスポンスに含めるように加工されている。
受注者21が、検証用パッケージ42をテスト用サーバ33に導入し(ステップS13)、テスト用クライアント32を操作してテストを実行する(ステップS14)。その際、テスト用サーバ33は、テスト用の入力に対する応答に、検証用パッケージ42に含まれていたハッシュ値を含める。
すると、テスト記録装置100で、ハッシュ値によって検証用パッケージ42と関連づけられたテストレポートが生成される。その後、受注者21がテストレポートと検証用パッケージとを含む納品データ43を発注者20に渡す(ステップS15)。
発注者20は、納品データ43を受入システム200に入力し、ソフトウェアの受入検査を行う。受入システム200では、ハッシュ値によって、納品データ43に含まれた検証用パッケージ42が正しくテストされていることを確認する。これにより、必要なテストが最新版のパッケージに対して実施されたことを自動チェックできる。
このような処理が、作成されたソフトウェアの品質が所定値以上になるまで繰り返し行われる。即ち、パッケージを検証した結果、品質に不備がある場合には、再度ステップS11〜S15の手順を踏んで、すべてのテストを再度実施する必要がある。
図3は、本実施の形態に用いるテスト記録装置のハードウェア構成例を示す図である。テスト記録装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、テスト記録装置100のハードウェア構成例を示したが、受入システム200、開発マシン31、テスト用クライアント32、およびテスト用サーバ33も同様のハードウェアで実現することができる。
次に、受入システム200とテスト記録装置100との処理機能を、図4、図5を参照して説明する。
図4は、受入システムの機能を示すブロック図である。受入システム200は、検証用パッケージ生成部210、テストレポート解析部220、検証用パッケージ認証部230、および合否判定部240を有している。
検証用パッケージ生成部210は、パッケージ41を受け取り、そのパッケージ41に対応する検証用パッケージ42を生成する。そのために、検証用パッケージ生成部210は、ハッシュ値算出部211とレスポンス機能変更部212とを有している。ハッシュ値算出部211は、入力されたパッケージ41に基づいてハッシュ値を計算する。レスポンス機能変更部212は、ハッシュ値を含む検証用パッケージ42を生成する。なお、検証用パッケージ42に含まれるプログラムは、テスト時にハッシュ値を含む応答を出力するように加工されている。
テストレポート解析部220は、納品データ43に含まれるテストレポートを取得し、そのテストレポートを解析する。そして、テストレポート解析部220は、テストレポートからハッシュ値を抽出し、検証用パッケージ認証部230に渡す。また、テストレポート解析部220は、テストレポートに含まれるテスト実施ログ等の情報を合否判定部240に渡す。
検証用パッケージ認証部230は、納品データ43に含まれる検証用パッケージ42からパッケージ41を取り出し、パッケージ41からハッシュ値を計算する。そして、検証用パッケージ認証部230は、算出したハッシュ値と、テストレポート解析部220から渡されたハッシュ値とが一致するか否かにより、検証用パッケージ42が正しくテストされた否かを認証する。そして、検証用パッケージ認証部230は、ハッシュ値が一致した場合、正しいテストレポートであることを、合否判定部240に通知する。
合否判定部240は、検証用パッケージ認証部230からテストレポートの内容が正しいことを示す通知を受け取ると、テスト実施ログ等に基づいてパッケージ41の品質の合否を判定する。例えば、合否判定部240は、テストの合格率が所定の閾値以上であれば、合格と判断する。その場合、開発の初期段階では、比較的低い値を閾値に設定し、開発が進むに従って、閾値を上げていくことで、徐々にソフトウェアの完成度を高めることができる。
図5は、テスト記録装置の機能を示すブロック図である。テスト記録装置100は、テスト仕様書記憶部110、テスト番号カウンタ120、テスト入力比較部130、テスト入力送信部140、テスト出力比較部150、テスト出力送信部160、テスト結果記録部170、テスト実施ログ記憶部180、および納品部190を有している。
テスト仕様書記憶部110は、入力されたテスト仕様書51,52,53を記憶する。テスト仕様書51,52,53には、テストの内容が定義されている。また、テスト仕様書51,52,53には、テスト番号が付与されている。この例では、原則として、テスト番号順に検証用パッケージ42のテストが行われるものとする。
テスト番号カウンタ120は、実施されているテストのテスト番号を示すカウンタである。テスト番号カウンタ120の値は、テストが実施される毎にインクリメントされる。
テスト入力比較部130は、テスト用クライアント32からのテスト入力データ61を受け取り、実施するテストのテスト仕様書と比較する。次にどのテストを実施するのかは、テスト番号カウンタ120で示されている。テスト入力比較部130は、比較の結果をテスト入力送信部140に渡す。
テスト入力送信部140は、テスト入力比較部130での比較によって、一致と判定された場合、テスト用サーバ33のアドレスとポート番号とを宛先として設定し、データとしてテスト入力データを含むリクエスト62を生成し、テスト用サーバ33に送信する。
テスト出力比較部150は、テスト用サーバ33からレスポンス63を受け取ると、そのレスポンス63からテスト出力データ64とハッシュ値7とを取り出す。そして、テスト出力比較部150は、テスト出力データ64をテスト出力送信部160に渡す。また、テスト出力比較部150は、テスト出力データ64に基づいて、テストの合否を判定する。合否の判定結果は、テスト結果記録部170に渡される。
テスト出力送信部160は、レスポンス63に含まれるテスト出力データ64をテスト用クライアント32に対して送信する。
テスト結果記録部170は、テスト結果とハッシュ値7とを含むテスト実施ログを生成し、テスト実施ログ記憶部180に格納する。
テスト実施ログ記憶部180は、実施されたテスト毎のテスト実施ログを記憶するための記録媒体である。
納品部190は、検証用パッケージ42を受け取り、その検証用パッケージ42に対応するテスト仕様書をテスト仕様書記憶部110から取得し、検証用パッケージ42に対応するテスト実施ログをテスト実施ログ記憶部180から取得する。そして、納品部190は、検証用パッケージ42、テスト仕様書、およびテスト実施ログを含む納品データ43を生成し、受入システム200に送信する。
受入システム200とテスト記録装置100とが図4、図5に示す機能を有することにより、納入されるパッケージのテスト結果を、発注者20側で正しく認証することができる。
以下、パッケージの納入処理を詳細に説明する。
まず、検証用パッケージ42の生成処理について説明する。
図6は、検証用パッケージ生成処理を示す図である。受入システム200では、受注者21からパッケージ41を受け取ると、そのパッケージ41に基づいて、ハッシュ値算出部211がハッシュ値44を計算する(ステップS21)。この場合、パッケージ41の内容の一部でも変更された場合には、算出されるハッシュ値も異なる値となるような計算手法を採用する。
算出されたハッシュ値44とパッケージ41とは、レスポンス機能変更部212に渡される。そして、レスポンス機能変更部212において、検証用パッケージ42が生成される(ステップS22)。具体的には、レスポンス機能変更部212は、リクエストに対するレスポンスを出力する際に、そのレスポンスにハッシュ値44を含めるような処理が記述されたレスポンス加工プログラム213を、パッケージ41に挿入する。このような加工が施された検証用パッケージ42が受注者21に渡される。
次に、検証用パッケージ42を用いたテスト処理について説明する。
図7は、テスト処理を示す図である。テストを行う場合、まず、予め検証用パッケージ42をテスト用サーバ33に導入する。その際、実際の運用状態と同様な環境となるように、受注者21がテスト用サーバ33の環境を手動で(自動で設定可能な内容についてはOS等の機能を利用して自動で)設定する。
また、受注者21は、テスト開始前に、テスト番号カウンタ120を初期値に設定する。例えば、すべてのテストを行う場合、テスト番号カウンタ120を「1」に設定する(テスト番号が「1」から始まる場合)。また、途中のテストから実施する場合、受注者21は、そのテストのテスト番号をテスト番号カウンタ120に設定する。
そして、受注者21は、テスト用クライアント32を操作してテスト項目に応じた操作入力を行う。例えば、検証用パッケージ42がWebサーバを利用したアプリケーションソフトウェアの場合、テスト用クライアント32ではWebブラウザが起動される。そして、受注者21は、Webブラウザの画面において、テスト仕様に沿った入力を行う。すると、テスト用クライアント32からテスト記録装置100に対してテスト入力データ61が送信される。
テスト入力データ61は、テスト入力比較部130で受け取られる。テスト入力比較部130は、現在のテスト番号カウンタ120の値を参照し、次に実行されるテスト仕様書のテスト番号を認識する。そして、テスト入力比較部130は、次に実行されるテスト番号に対応するテスト仕様書をテスト仕様書記憶部110から取得する。
ここで、テスト仕様書51,52,53には、テスト番号、テスト仕様入力、テスト仕様出力、および依存テスト番号の各情報が含まれている。テスト番号は、テスト仕様書を一意に識別するための番号であり、実施されるテストの順番で採番されている。テスト仕様入力は、テスト入力データとして入力されるべき情報である。テスト仕様出力は、テスト結果として出力されるべき情報である。依存テスト番号は、対応するテストを実行する前に実行すべきテストのテスト番号が設定されるべき情報である。
テスト入力比較部130は、取得したテスト仕様書を参照し、テスト入力データ61とテスト仕様入力とを比較し、内容が一致する否かを判断する(ステップS31)。比較の結果一致しない場合、エラーとなる。
比較の結果一致した場合、テスト入力比較部130は、テスト実施ログ記憶部180を参照し、依存テスト番号で示されたテストが完了しているか否かを判断する。該当するテスト実施ログが存在しない場合、エラーとなる。該当するテスト実施ログが存在すれば、テスト入力比較部130は、テスト入力データ61をテスト入力送信部140に渡す。
テスト入力送信部140は、予め設定されているテスト用サーバ33のサーバアドレス141とポート番号142とを宛先として設定し、データとしてテスト入力データ61を含むリクエスト62を生成する。そして、テスト入力送信部140は、生成したリクエスト62をテスト用サーバ33に送信する(ステップS32)。
テスト用サーバ33では、リクエスト62を受け取ると、検証用パッケージ42に基づいた処理機能にテスト入力データ61を渡す。すると、検証用パッケージ42におけるプログラム内容に応じて処理が実行され、テスト出力データ64が生成される。そして、テスト用サーバ33は、レスポンス機能変更部212によって付加されたレスポンス加工プログラム213に基づいて、テスト出力データ64にハッシュ値44を付加したレスポンス63を生成する。生成されたレスポンス63は、テスト用サーバ33からテスト記録装置100に送信される。
テスト記録装置100は、テスト出力比較部150がレスポンス63に含まれるテスト出力データ64を取得し、テスト結果の合否を判定する(ステップS33)。具体的には、テスト出力比較部150は、テスト仕様書記憶部110から、テスト対象のテスト仕様書に含まれるテスト仕様出力を取得する。そして、テスト出力比較部150は、テスト出力データ64とテスト仕様出力とを比較し、内容が一致するか否かを判断する。内容が一致すれば、テスト出力比較部150は、テスト結果を合格(○)と判定する。内容が一致しなければ、テスト出力比較部150は、テスト結果を不合格(×)と判定する。テスト結果は、テスト結果記録部170に通知される。
テスト結果記録部170は、テスト結果に応じたテスト実施ログを生成し、テスト実施ログ記憶部180に格納する(ステップS34)。その際、テスト結果記録部170は、レスポンス63に含まれていたハッシュ値44を取得し、テスト実施ログに含める。
テスト実施ログ181,182,183には、テスト番号、テスト入力実績、テスト出力実績、テスト結果、およびハッシュ値が含まれる。テスト番号は、実施されたテストのテスト仕様書に付与された識別番号である。テスト入力実績は、実施されたテストで入力されたテスト入力データである。テスト出力実績は、実施されたテストで出力されたテスト出力データである。テスト結果は、テスト出力比較部150による判定結果である。ハッシュ値は、レスポンス63に含まれていたハッシュ値である。
その後、テスト出力送信部160が、テスト出力データ64をテスト用クライアント32に送信する。テスト用クライアント32には、テスト出力データ64に応じた画面が表示される。
なお、テスト記録装置100とテスト用サーバ33との間の通信は、例えば、SSL(Secure Socket Layer)のような技術を用いて暗号化される。これは、受注者21によるハッシュ値のすり替え等の不正を防止するためである。
このようにして、テストが実行される。以下、テスト処理の内容を、具体的例を用いて詳細に説明する。
図8は、テスト仕様書の例を示す図である。図8には、テスト仕様書51の内容が具体的に示されている。なお、検証用パッケージ42のテストに必要なテスト仕様書51,52,53のセットがテスト記録装置100に入力されると、テスト番号によって昇順にソートされた上でテスト仕様書記憶部110に格納される。
この例では、テスト仕様書51が1つのテキスト形式のファイルで作成されている。テスト仕様書51内には、テスト番号、テスト仕様入力、テスト仕様出力、依存テスト番号の項目が記述されている。各項目の下に、その項目の内容が記述されている。
ここで、テスト仕様入力とテスト仕様出力は、「キー=値」の繰り返し構造で記述する。テスト仕様入力とテスト仕様出力のキーの記述方法は以下の2通りの方法がある。1つ目は「キー1=値1&キー2=値2&・・・」といった「キー=値」の繰り返し構造を取る場合に対応して、シンプルに名前を定義する方法である。2つ目はテスト入出力データがXMLのような階層構造で記述される場合に対応して、テスト仕様入力とテスト仕様出力のキーをXPathのような階層構造内の位置を特定できるような表記法を使用する方法である。
依存テスト番号には、依存先のテスト仕様書のテスト番号と、ステータス(status)が記述される。ステータスは、依存先のテストの実行条件を定義する情報である。この例では、依存先のテストが直前に実行されていなければならない場合、ステータスの値に「0」が設定される。また、依存先のテストが過去に実行されていなければならない場合、ステータスの値に「1」が設定される。
図9は、テスト入力データのデータ構造例を示す図である。このテスト入力データ61は、テスト仕様書51に応じて入力されるデータである。この例では、テスト入力データ61には、「userId」キーと「categories」キーとが含まれている。これらのキーには、それぞれ、「U0001」と「コンピュータ、政治、医学」との値が設定されている。なお、「userId」キーと「categories」キーとの値は、テスト用クライアント32に対して、受注者21がキーボードで入力した値である。
テスト入力データ61に、「submit」キーによって各種フラグが設定されている。この「submit」キーの値は、テスト用クライアント32で動作するスクリプトプログラム等によって自動的に付与される。
図10は、テスト入力データの比較処理を示す図である。この例では、テスト番号カウンタ120の値が「10」であり、テスト仕様書51に沿ったテストが実施されるものとする。また、テスト入力データ61の内容は、図9に示した通りである。
テスト入力データ61がテスト用クライアント32からテスト記録装置100に入力されると、テスト入力比較処理が開始される。すなわち、テスト入力比較部130が、テスト番号カウンタ120の値と、テスト仕様書記憶部110に格納されたテスト処理仕様書のテスト番号とを比較する(ステップS41)。
テスト番号がテスト番号カウンタ120と一致するテスト仕様書がなければ、テスト入力比較部130はエラーメッセージをテスト用クライアント32に対して出力する。また、テスト番号がテスト番号カウンタ120と一致するテスト仕様書があれば、テスト入力比較部130はテスト入力データ61の内容比較へ、処理を進める(ステップS42)。
テスト入力比較部130は、テスト番号カウンタ120の値と同じテスト番号(この例では「10」)のテスト仕様書51をテスト仕様書記憶部110から取得し、依存テスト番号の条件が満たされているか否かを判断する(ステップS43)。具体的には、ステータスが「0」の場合、テスト入力比較部130は、テスト番号カウンタ120の値−1と、依存テスト番号(dependentTestNumber)との値が一致することを確認する。また、ステータスが「1」の場合、テスト入力比較部130は、依存テスト番号の値と一致するテスト番号のテスト実施ログがテスト実施ログ記憶部180内に存在することを確認する。
この例では、依存テスト番号に「6」(dependentTestNumber=6)が設定されており、ステータスが「1」である。すなわち、テスト番号「6」のテスト仕様書に沿ったテストが、過去に実行されていなければならないことが示されている。
そこで、テスト入力比較部130は、テスト実施ログ記憶部180内に、テスト番号「6」のテスト実施ログが格納されているか否かを判断する。該当するテスト実施ログが存在すれば、そのテスト番号のテストが過去に実施されていることが分かる。
テスト番号「6」のテスト実施ログが存在しない場合、テスト入力比較部130は、エラーメッセージをテスト用クライアント32に対して送信する。該当するテスト実施ログが存在すれば、テスト入力比較部130は、実施されるテストのテスト仕様書51に記載されているテスト仕様入力と、テスト入力データ61とが一致するか否かを判定する(ステップS44)。
具体的には、テスト入力比較部130は、テスト仕様書51のテスト仕様入力のキーを全て取得する。この例では、「userId、categories」が取得される。次に、テスト入力比較部130は、取得したキーに対応するテスト入力データの値を取得する。この例では、「userId」の値「U0001」と、「categories」の値"コンピュータ、政治、医学"とが取得される。
テスト入力比較部130は、テスト仕様書51のテスト仕様入力とテスト入力データ61との各キーの値の比較の結果、取得した値が全て一致することを確認する。なお、テスト入力比較部130は、テスト仕様入力で定義されたキー以外が、テスト入力データに含まれていた場合、そのデータは無視する。
比較の結果、少なくとも1つ不一致の値があれば、テスト入力比較部130は、エラーメッセージをテスト用クライアント32に対して送信する。全ての値が一致すれば、テスト入力比較部130は、その旨をテスト入力送信部140に伝える。すると、テスト入力送信部140が、テスト用サーバ33のサーバアドレス141とポート番号142を宛先としたリクエスト62を生成し、テスト用サーバ33に送信する(ステップS45)。
図11は、リクエストのデータ構造例を示す図である。図11には、HTTPによるリクエスト62の例が示されている。リクエスト62には、テスト入力データ61と同じ情報62aが含まれている。このようなリクエスト62がテスト用サーバ33に送信されると、テスト用サーバ33によって、検証用パッケージ42に基づいた処理が実行され、テスト用サーバ33からレスポンス63が返される。
次に、図12と図13とを参照して、レスポンス63の内容について説明する。図12は、レスポンスのデータ構造例の前半を示す図である。図13は、レスポンスのデータ構造例の後半を示す図である。
図12に示すように、レスポンス63のヘッダ部63aには、ハッシュ値44が挿入されている。ヘッダ部63a以降のHTML記述部分が、テスト出力データ64となる。図13に示すように、HTML記述内には、検索処理によって取得された文字列63b〜63eが含まれている。
このようなレスポンス63がテスト用サーバ33からテスト記録装置100に返されると、テスト記録装置100においてテスト実施ログ取得処理が行われる。
図14は、テスト実施ログ取得処理を示す図である。テスト記録装置100にレスポンス63が入力されると、テスト出力比較部150がテスト仕様出力とテスト出力データとの比較処理を行う(ステップS51)。
具体的には、テスト出力比較部150は、実施対象のテストに対応するテスト仕様書51からテスト仕様出力のキーを全て取得する。この例では、「//td[id="itemIdList_1"]」、「//td[id="itemIdList_2"]」、「//td[id="itemIdList_4"]」が取得される。
次に、テスト出力比較部150は、レスポンス63に含まれるテスト出力データ64から、テスト仕様出力のキーに対応する値を取得する。図13に示したレスポンス63によれば、「//td[id="itemIdList_1"]」キーに対応する値として「臨床検査」が取得される。同様に、「//td[id="itemIdList_2"]」キーに対応する値として「国家の罠」が取得される。「//td[id="itemIdList_4"]」キーに対応する値として「ソフトウェア工学」が取得される。
そして、テスト出力比較部150は、テスト出力データ64から取得した値が、テスト仕様書51のテスト仕様出力に設定された各キーの値と全て一致することを確認する(ステップS52)。キーの値が全て一致すればテスト結果が成功(○)となり、値が不一致のキーが少なくとも1つ存在すればテスト結果が失敗(×)となる。このとき、テスト仕様出力に設定されたキー以外のキーがテスト出力データ64に含まれていた場合、テスト出力比較部150は、該当するキーを無視する。
テスト出力データ64の比較が完了すると、テスト結果記録部170が、テスト結果として、テスト実施ログ181をテスト実施ログ記憶部180に格納する(ステップS53)。テスト実施ログ181には、テスト番号カウンタ120の値、テスト入力データ61、テスト出力データ64、テスト結果(成功または失敗)、およびレスポンス63に含まれていたハッシュ値44がそれぞれテスト番号、テスト入力実績、テスト出力実績、テスト結果、ハッシュ値として設定される。
次に、テスト結果記録部170は、テスト番号カウンタ120の値を、1だけインクリメントする。この例では、カウンタの値「10」に1を加算し、「11」とする(ステップS54)。その後、テスト出力送信部160が、テスト出力データ64をテスト用クライアント32に対して送信する(ステップS55)。
このようにして、予め用意されたテスト仕様書51,52,53に沿ったテストが実施され、そのテスト実施ログ181,182,183が取得される。そして、受注者21は、検証用パッケージ42について全てのテストが完了すると、検証用パッケージ42を受入システム200に対して納品する。
図15は、納品処理を示す図である。受注者21は、予め検証用パッケージ42をテスト記録装置100からアクセス可能な記録媒体に格納する。そして、受注者21がテスト記録装置100に対して納品の指示を入力すると、テスト記録装置100の納品部190において納品処理が実行される。
納品部190は、まず、テスト仕様書51,52,53のセットとテスト実施ログ181,182,183のセットとをまとめて、既定の納品フォーマットに変換する(ステップS61)。次に、納品部190は、納品フォーマットに変換されたデータを、予め設定されている公開鍵191で暗号化し、テストレポート43aを作成する(ステップS62)。
さらに、納品部190は、暗号化されたテストレポート43aと検証用パッケージ42をまとめて納品データ43とし、予め登録されている受入システムのアドレス192宛に、納品データ43を送信する(ステップS63)。
受入システム200には、予め公開鍵191に対応する秘密鍵231が登録されている。この秘密鍵231により、受入システム200において、テストレポート43aの復号が可能となる。
図16は、受入システムにおける受入処理を示す図である。納品データ43中のテストレポート43aは、テストレポート解析部220によって、秘密鍵231で復号される(ステップS71)。さらに、テストレポート解析部220は、復号されたデータをテスト仕様書51,52,53のセットと、テスト実施ログ181,182,183のセットとに分解する(ステップS72)。
一方、納品データ43中の検証用パッケージ42は検証用パッケージ認証部230に渡される。検証用パッケージ認証部230は、検証用パッケージ42からレスポンス加工プログラムを除去し(ステップS73)、パッケージ41を生成する。次に、検証用パッケージ認証部230は、パッケージ41からハッシュ値44を計算する(ステップS74)。
そして、検証用パッケージ認証部230は、テストレポート43aから抽出された各テスト実施ログ181,182,183のそれぞれからハッシュ値を取得し、パッケージ41から生成したハッシュ値と比較する。比較の結果、ハッシュ値が一致すれば、検証用パッケージ認証部230は、正しいテストレポートであることを合否判定部240に通知する(ステップS75)。
合否判定部240は、テスト仕様書51,52,53に基づいて、実施すべきテストの総数を把握し、テスト実施ログ181,182,183それぞれからテスト結果を取得する。そして、合否判定部240は、実施すべきテストの総数で、成功したテスト数を除算することで、テストの合格率241を計算する(ステップS76)。
さらに、合否判定部240は、予め設定されている合格ライン242と合格率241とを比較する(ステップS77)。合格率が合格ラインを超えていれば、合否判定部240は、パッケージ41のテストを合格と判定し、パッケージ41を受け入れる(ステップS78)。
このようにして、納品されるパッケージ41が正しくテストされていることを認証することができる。その結果、開発対象のソフトウェアの品質管理が容易となる。
すなわち、納品されるパッケージの品質チェックは、(1)テスト項目の網羅性、(2)環境の整合性、(3)テスト結果とパッケージの対応、といった3つの観点で行われる。
(1)についての合意を前提としたとき、(3)は本実施の形態により保証される。そのため、受入後のトラブルに対して(2)の原因に絞って究明することができる。
また、テスト項目の網羅性についても、テスト合格率によって自動判定することができる。なお、上記の実施の形態では、一定の合格ラインを超えていれば、すべてのテストに合格しなくてもパッケージ41を受け入れることとしている。これは、開発途中の段階でも、ソフトウェアの仮運用を行い、仕様変更や不具合検出等に役立てる場合があるためである。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、テスト記憶装置や受入システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録方法において、
データ送信手段が、前記プログラムと、前記プログラムに従った処理によって得られる結果に前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信し、
テスト結果判定手段が、前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成されるテスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定し、
テスト結果記録手段が、前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納する、
ことを特徴とするテスト記録方法。
(付記2) テスト入力比較手段が、前記テスト仕様書に記述されているテスト入力内容と、前記テスト用クライアントから入力された前記テスト入力データと比較し、前記テスト入力データが前記テスト仕様書の内容に沿っていることを検証し、
前記データ送信手段は、前記テスト入力データが前記テスト仕様書の内容に沿っている場合にのみ、前記テスト入力データを前記テスト用サーバに送信することを特徴とする付記1記載のテスト記録方法。
(付記3) 複数の前記テスト仕様書それぞれに、テスト実施順に沿ったテスト番号が付与されており、
前記テスト入力比較手段は、テストが実施される毎にカウントアップされるテスト番号カウンタの値に応じた前記テスト仕様書を特定し、特定した前記テスト仕様書の内容と前記テスト入力データとを比較し、
前記データ送信手段は、前記テスト入力比較手段による比較の結果が一致した場合にのみ、前記テスト入力データを送信することを特徴とする付記2記載のテスト記録方法。
(付記4) 複数の前記テスト仕様書それぞれにテスト番号が付与されていると共に、テストを実施するために事前に完了している必要がある依存テストに対応するテスト仕様書のテスト番号が依存テスト番号として設定されており、
テスト入力比較手段が、前記依存テスト番号で示される前記依存テストが既に実施されているか否かを判断し、
前記データ送信手段は、前記テスト入力比較手段により前記依存テストが実施されていると判断された場合にのみ、前記テスト入力データを送信することを特徴とする付記1記載のテスト記録方法。
(付記5) 複数の前記テスト仕様書それぞれにテスト番号が付与されていると共に、テストを実施するために直前に完了している必要がある依存テストに対応するテスト仕様書のテスト番号が依存テスト番号として設定されており、
前記テスト入力比較手段は、前記依存テスト番号で示される前記依存テストが直前に実施されているか否かを判断し、
前記データ送信手段は、前記テスト入力比較手段により前記依存テストが直前に実施されていると判断された場合にのみ、前記テスト入力データを送信することを特徴とする付記2記載のテスト記録方法。
(付記6) 納品手段が、納品要求に応じて、少なくとも前記プログラムと前記テスト実施ログ記憶手段に格納された前記テスト実施ログとを、納入先の受入システムに対して送信することを特徴とする付記1記載のテスト記録方法。
(付記7) 前記納品手段は、公開鍵によって少なくとも前記テスト実施ログを暗号化して前記受入システムに送信することを特徴とする付記6記載のテスト記録方法。
(付記8) 所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録装置において、
前記プログラムと、前記プログラムに従った処理によって得られるテスト出力データに前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信するデータ送信手段と、
前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成される前記テスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定するテスト結果判定手段と、
前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納するテスト結果記録手段と、
を有することを特徴とするテスト記録装置。
(付記9) 所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録プログラムにおいて、
コンピュータを、
前記プログラムと、前記プログラムに従った処理によって得られるテスト出力データに前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信するデータ送信手段、
前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成される前記テスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定するテスト結果判定手段、
前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納するテスト結果記録手段、
として機能させることを特徴とするテスト記録プログラム。
本実施の形態の概略を示す図である。 本実施の形態のシステム構成例を示す図である。 本実施の形態に用いるテスト記録装置のハードウェア構成例を示す図である。 受入システムの機能を示すブロック図である。 テスト記録装置の機能を示すブロック図である。 検証用パッケージ生成処理を示す図である。 テスト処理を示す図である。 テスト仕様書の例を示す図である。 テスト入力データのデータ構造例を示す図である。 テスト入力データの比較処理を示す図である。 リクエストのデータ構造例を示す図である。 レスポンスのデータ構造例の前半を示す図である。 レスポンスのデータ構造例の後半を示す図である。 テスト実施ログ取得処理を示す図である。 納品処理を示す図である。 受入システムにおける受入処理を示す図である。
符号の説明
1 テスト記録装置
1a テスト入力比較手段
1b データ送信手段
1c テスト結果判定手段
1d テスト仕様書
1e テスト結果記録手段
1f テスト実施ログ記憶手段
1g テスト実施ログ
1h プログラム
1i 納品手段
2 テスト用クライアント
2a ユーザインタフェース
3 テスト用サーバ
3a プログラム
3b レスポンス加工プログラム
4 受入システム
5 テスト入力データ
6 テスト出力データ
7 ハッシュ値

Claims (5)

  1. 所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録方法において、
    データ送信手段が、前記プログラムと、前記プログラムに従った処理によって得られる結果に前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信し、
    テスト結果判定手段が、前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成されるテスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定し、
    テスト結果記録手段が、前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納する、
    ことを特徴とするテスト記録方法。
  2. テスト入力比較手段が、前記テスト仕様書に記述されているテスト入力内容と、前記テスト用クライアントから入力された前記テスト入力データと比較し、前記テスト入力データが前記テスト仕様書の内容に沿っていることを検証し、
    前記データ送信手段は、前記テスト入力データが前記テスト仕様書の内容に沿っている場合にのみ、前記テスト入力データを前記テスト用サーバに送信することを特徴とする請求項1記載のテスト記録方法。
  3. 複数の前記テスト仕様書それぞれにテスト番号が付与されていると共に、テストを実施するために事前に完了している必要がある依存テストに対応するテスト仕様書のテスト番号が依存テスト番号として設定されており、
    テスト入力比較手段が、前記依存テスト番号で示される前記依存テストが既に実施されているか否かを判断し、
    前記データ送信手段は、前記テスト入力比較手段により前記依存テストが実施されていると判断された場合にのみ、前記テスト入力データを送信することを特徴とする請求項1記載のテスト記録方法。
  4. 所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録装置において、
    前記プログラムと、前記プログラムに従った処理によって得られるテスト出力データに前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信するデータ送信手段と、
    前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成される前記テスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定するテスト結果判定手段と、
    前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納するテスト結果記録手段と、
    を有することを特徴とするテスト記録装置。
  5. 所定の仕様に従って作成されたプログラムのテスト結果を記録するためのテスト記録プログラムにおいて、
    コンピュータを、
    前記プログラムと、前記プログラムに従った処理によって得られるテスト出力データに前記プログラムに基づいて生成されたハッシュ値を付加する処理が記述されたレスポンス加工プログラムとが実装されたテスト用サーバに対し、テスト用クライアントから入力されたテスト入力データを送信するデータ送信手段、
    前記テスト用サーバが前記テスト入力データに応じて前記プログラムを実行した結果生成される前記テスト出力データと、予めテスト内容が定義されたテスト仕様書に記述されているテスト仕様出力内容とを比較することで、テストの合否を判定するテスト結果判定手段、
    前記テスト結果判定手段による判定結果と、前記テスト用サーバが前記レスポンス加工プログラムを実行した結果生成される前記ハッシュ値とを関連づけて、テスト実施ログとしてテスト実施ログ記憶手段に格納するテスト結果記録手段、
    として機能させることを特徴とするテスト記録プログラム。

JP2005189013A 2005-06-28 2005-06-28 テスト記録方法、テスト記録装置、およびテスト記録プログラム Expired - Fee Related JP4397354B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005189013A JP4397354B2 (ja) 2005-06-28 2005-06-28 テスト記録方法、テスト記録装置、およびテスト記録プログラム
US11/236,635 US7890932B2 (en) 2005-06-28 2005-09-28 Test recording method and device, and computer-readable recording medium storing test recording program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005189013A JP4397354B2 (ja) 2005-06-28 2005-06-28 テスト記録方法、テスト記録装置、およびテスト記録プログラム

Publications (2)

Publication Number Publication Date
JP2007011512A true JP2007011512A (ja) 2007-01-18
JP4397354B2 JP4397354B2 (ja) 2010-01-13

Family

ID=37569050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005189013A Expired - Fee Related JP4397354B2 (ja) 2005-06-28 2005-06-28 テスト記録方法、テスト記録装置、およびテスト記録プログラム

Country Status (2)

Country Link
US (1) US7890932B2 (ja)
JP (1) JP4397354B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020767A (ja) * 2008-07-09 2010-01-28 Arm Ltd データ処理装置の監視およびその監視データの集計
JP2011240514A (ja) * 2010-05-14 2011-12-01 Seiko Epson Corp 記録システム、及び、記録システムの制御方法
JP2016207211A (ja) * 2015-04-15 2016-12-08 ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH メカトロニクスシステムをテストする方法およびシステム
WO2023181540A1 (ja) * 2022-03-24 2023-09-28 株式会社Jsol シミュレーション装置、シミュレーション装置の制御方法、およびシミュレーション装置のプログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4941040B2 (ja) * 2007-03-26 2012-05-30 富士通株式会社 テスト仕様書生成プログラム、およびテスト仕様書生成装置
US7698603B2 (en) * 2007-09-07 2010-04-13 Microsoft Corporation Test results management
FR2927436A1 (fr) * 2008-02-12 2009-08-14 Ingenico Sa Procede de securisation d'un programme informatique, dispositif, procede de mise a jour et serveur de mise a jour correspondants.
US8347288B1 (en) * 2009-12-28 2013-01-01 Amazon Technologies, Inc. System and method for verification of repeatable virtualized computing
US8572613B1 (en) 2009-12-28 2013-10-29 Amazon Technologies, Inc. Comparison of virtual computing states by performing identified repeatable computations in a changing virtual computing environment
US8739128B1 (en) * 2010-08-22 2014-05-27 Panaya Ltd. Method and system for automatic identification of missing test scenarios
US8615569B2 (en) * 2010-10-25 2013-12-24 Gregory A. Pearson, Inc. Dynamic content delivery systems and methods for providing same
WO2012066091A1 (en) * 2010-11-21 2012-05-24 Verifyter Ab Method and apparatus for automatic diagnosis of software failures
CN102761453B (zh) * 2011-04-26 2015-04-15 腾讯科技(深圳)有限公司 一种测试客户端可用性的方法及客户端
US8850274B2 (en) * 2012-02-01 2014-09-30 Empirix, Inc. Method of embedding configuration data in a non-configuration document
US9454464B2 (en) * 2012-08-08 2016-09-27 Cbs Interactive Inc. Application development center testing system
TWI510913B (zh) * 2013-11-12 2015-12-01 Inst Information Industry 測試裝置及其測試方法
US10509693B2 (en) 2015-03-04 2019-12-17 Verifyter Ab Method for identifying a cause for a failure of a test
CN104750488B (zh) * 2015-03-26 2018-07-31 浪潮集团有限公司 一种软件调试日志输出控制实现方法
US9921941B2 (en) * 2015-04-10 2018-03-20 Siemens Aktiengesellschaft Verification and validation of third party PLC code
CN107992389A (zh) * 2017-12-22 2018-05-04 无线生活(杭州)信息科技有限公司 一种测试方法及装置
US11736299B2 (en) * 2019-01-18 2023-08-22 Prometheus8 Data access control for edge devices using a cryptographic hash
US20230060678A1 (en) * 2021-08-24 2023-03-02 Hewlett-Packard Development Company, L.P. Verification of input files for printed documents

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371883A (en) * 1993-03-26 1994-12-06 International Business Machines Corporation Method of testing programs in a distributed environment
US6182245B1 (en) * 1998-08-31 2001-01-30 Lsi Logic Corporation Software test case client/server system and method
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
US6966013B2 (en) * 2001-07-21 2005-11-15 International Business Machines Corporation Method and system for performing automated regression tests in a state-dependent data processing system
US20030097650A1 (en) * 2001-10-04 2003-05-22 International Business Machines Corporation Method and apparatus for testing software
US7313564B2 (en) * 2002-12-03 2007-12-25 Symbioware, Inc. Web-interactive software testing management method and computer system including an integrated test case authoring tool
EP1680741B1 (en) * 2003-11-04 2012-09-05 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020767A (ja) * 2008-07-09 2010-01-28 Arm Ltd データ処理装置の監視およびその監視データの集計
US9858169B2 (en) 2008-07-09 2018-01-02 Arm Limited Monitoring a data processing apparatus and summarising the monitoring data
JP2011240514A (ja) * 2010-05-14 2011-12-01 Seiko Epson Corp 記録システム、及び、記録システムの制御方法
JP2016207211A (ja) * 2015-04-15 2016-12-08 ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH メカトロニクスシステムをテストする方法およびシステム
WO2023181540A1 (ja) * 2022-03-24 2023-09-28 株式会社Jsol シミュレーション装置、シミュレーション装置の制御方法、およびシミュレーション装置のプログラム

Also Published As

Publication number Publication date
JP4397354B2 (ja) 2010-01-13
US7890932B2 (en) 2011-02-15
US20060294434A1 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
JP4397354B2 (ja) テスト記録方法、テスト記録装置、およびテスト記録プログラム
US8621223B2 (en) Data security method and system
US6895414B2 (en) Method and apparatus for authorizing and reporting changes to device configurations
US7886193B2 (en) System and methods for processing software authorization and error feedback
CN1322387C (zh) 软件的正当性确认方法及执行软件的装置
US7904957B2 (en) Computer-readable recording medium recording a security management program, computer-readable recording medium recording a job submission management program, and security management method
WO2004056069A2 (en) Content management system
US12001822B2 (en) Multi-signature validation of deployment artifacts
KR100921512B1 (ko) 정보처리방법 및 장치, 및 컴퓨터 판독가능한 기억매체
US8996483B2 (en) Method and apparatus for recording associations with logs
US9569774B2 (en) System and method for processing feedback entries received from software
CN111222181A (zh) Ai模型的监管方法、系统、服务器及存储介质
CN112738249B (zh) 基于量化交易的文件上传方法、装置、设备及存储介质
US9223784B2 (en) Method and apparatus for archiving media using a log
US20080243752A1 (en) Method and Apparatus for Process Logging
CN112463184A (zh) 一种基板管理控制器固件安全升级方法及系统
JP2008097301A (ja) ファイル管理サーバ及びそのプログラムとファイル管理方法
JP2004128894A (ja) 電子データ送受信システム
JP2021043634A (ja) 情報処理装置、方法、およびプログラム
CN113032744B (zh) 一种数字水印一体机系统
JP2004046590A (ja) 契約書保管装置、システム及びその方法
JP2008004065A (ja) 半導体装置、電子機器及び機器認証プログラム
CN115913564B (zh) 区块链产品的安全检测方法、系统、设备及可读存储介质
JP2005339228A (ja) ソフトウェア管理システム及び管理装置及び操作装置及びソフトウェア管理方法及びソフトウェア操作方法及びプログラム
JP2008305383A (ja) 書類画像を認証するための装置及び方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091020

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091020

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees