JP2008186103A - 被テストプログラム資源競合テスト方法及び競合プログラム - Google Patents
被テストプログラム資源競合テスト方法及び競合プログラム Download PDFInfo
- Publication number
- JP2008186103A JP2008186103A JP2007017232A JP2007017232A JP2008186103A JP 2008186103 A JP2008186103 A JP 2008186103A JP 2007017232 A JP2007017232 A JP 2007017232A JP 2007017232 A JP2007017232 A JP 2007017232A JP 2008186103 A JP2008186103 A JP 2008186103A
- Authority
- JP
- Japan
- Prior art keywords
- program
- resource
- test
- computer
- usage rate
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】従来は、目視によるリソースの使用状態を監視しながら同時走行プログラムの走行パラメータや、多重起動、ループ回数等の設定を駆使し、微調整しながら手動で制御していたため、テスト担当者のスキルに依存しており、かつ、同一条件の再現性や長時間安定性、問題時の再現性においても、テストの信頼性に欠けていた。
【解決手段】コンピュータ上で動作するテスト対象の被テストプログラム2に対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、コンピュータ資源に対して意図的に該当資源を使用することで、コンピュータ資源の競合状態を作り出す機能を有する競合プログラム4により、被テストプログラム2の処理に外乱を与えて前記動作検証を行う。
【選択図】図1
【解決手段】コンピュータ上で動作するテスト対象の被テストプログラム2に対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、コンピュータ資源に対して意図的に該当資源を使用することで、コンピュータ資源の競合状態を作り出す機能を有する競合プログラム4により、被テストプログラム2の処理に外乱を与えて前記動作検証を行う。
【選択図】図1
Description
本発明は、コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法及びコンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する際に使用する競合プログラムに関するものである。
特に、本発明では、被テストプログラムと他のプログラムがシステムリソース(コンピュータ資源)を競合している環境下での被テストプログラムのテスト方法及び前記テストに使用する競合プログラムに関するものである。
(1) :従来例1
従来、コンピュータのシステムリソース(コンピュータ資源)競合状態のテストでは、テスト対象の被テストプログラムと単純なステップで構成されたプログラムやスクリプト作成したり、又はメジャーなアプリケーションプログラムでシステムリソース競合発生の代用として、被テストプログラムと同時走行させることでテスト環境を構築していた。
従来、コンピュータのシステムリソース(コンピュータ資源)競合状態のテストでは、テスト対象の被テストプログラムと単純なステップで構成されたプログラムやスクリプト作成したり、又はメジャーなアプリケーションプログラムでシステムリソース競合発生の代用として、被テストプログラムと同時走行させることでテスト環境を構築していた。
また、目的とするシステムリソース競合条件の発生方法は、目視で各システムリソースの使用状態をシステムが持っているパフォーマンス機能等で目視で監視しながら、同時走行プログラムの走行パラメータや、多重起動、ループ回数等の設定をテストの実施者が駆使し、微調整しながら手動で制御していた。
図13は従来のテストによるリソース使用率例である。図13において、横軸はリソース名(コンピュータのハード資源名)、縦軸はリソース使用率(%)である。この場合、前記リソース名は、CPU、メモリ、I/O、ネットワーク等のハード資源が含まれる。また、図13中、A、B、C、Dはそれぞれ変動率(%)を示す。
従来例1のテストでは、目視によるリソースの使用状態を監視しながら同時走行プログラムの走行パラメータや、多重起動、ループ回数等の設定を駆使し、微調整しながら手動で制御していたため、テスト担当者のスキルに依存しており、かつ、同一条件の再現性や長時間安定性、問題時の再現性においても、テストの信頼性に欠けていた。
信頼性に欠けていた理由は次の通りである。
(a) :ツールが狙ったリソースを使用するか不明である。
(b) :ツールがリソースを適当なタイミングで使用するため、競合状態が変動する。
(c) :テスト担当者のツールの内容の理解度にバラツキがある。
(d) :被テストプログラムとツール(プログラム)のタイミングが取れない(人手によるため)。
従って、リソースの使用率は、競合させるプログラムにより大きく変動する。図13の例は、サーバのデータ上を表計算アプリケーションプログラムで操作(グラフ作成)するような場合の例であり、時間的にみると大きく変動している(図のA乃至Dの変動率を参照)。すなわち、図13の例では、各リソースの使用率が全体の半分以上変動していることが明らかである。
(2) :従来例2
以下、特許文献1を従来例2として説明する。従来例2には次のような内容が記載されている。
以下、特許文献1を従来例2として説明する。従来例2には次のような内容が記載されている。
(a) :「この発明は、試験環境に対する負荷量を自動調整することを目的とする。」・・・要約の欄を参照。
(b) :「情報処理機器にて性能測定処理実行手段を実行し、負荷処理実行手段は、情報処理機器に対して負荷情報記憶手段に記憶された任意の負荷プログラムを同時実行数分、並行して実行する。エラー状態確認手段では、負荷プログラムによる負荷によって情報処理機器でエラーが起きていないかをチェックする。エラーが発生していなかった場合には、事前性能予測手段は、再度同時実行数に加減値を加算する処理に戻る。逆にエラーが発生していた場合には、事前性能予測手段は、先ず、同時実行数を一つ前の状態に戻す。次に、前回用いた加減値を半分にする。その結果、加減値が0となった場合には、同時実行数を評価時に掛ける負荷量と予測する。」・・・要約の欄を参照。
(3) :従来例3
以下、特許文献2を従来例3として説明する。従来例3には次のような内容が記載されている。
以下、特許文献2を従来例3として説明する。従来例3には次のような内容が記載されている。
(a) :「負荷を適用することによってコンピュータシステムをテストする。」・・・要約の欄を参照。
(b) :「負荷仕様を受け取ることであって、当該負荷仕様が、システムの少なくとも1つの資源を特定し、かつ、当該資源に適用される負荷を指定する。負荷仕様を受け取ることと、および負荷仕様で特定された各資源について、対応する指定された負荷を当該資源に適用することとを含む。」・・・要約の欄を参照。
(4) :従来例4
以下、特許文献3を従来例4として説明する。従来例4には次のような内容が記載されている。
以下、特許文献3を従来例4として説明する。従来例4には次のような内容が記載されている。
(a) :「人手操作無しに、自動的に試験プログラムの組合わせの制御を行い、計算機内部の該バスの負荷を自動的に変動させて試験の効率化を図る、バス負荷試験方法の提供。」・・・要約の欄を参照。
(b) :「システムバス、IOバス等の複数のバスを含む計算機システムのバス負荷試験方法において、各バス毎に、該バスに負荷を与えるプログラムの組合わせを予め記述した組合わせ記述データをバス負荷試験条件に対応して記憶しておき、バス負荷試験時に前記組合わせ記述データを順次読み込み、今回読み込んだ組合わせ記述データと前回読込んだ組合わせ記述データとの差分を抽出して、この差分から終了させるべきプログラムを終了し、起動させるべきプログラムを起動する。」・・・要約の欄を参照。
特開2004−326386号公報
特開2005−182813号公報
特開平11−24954号公報
(1) :従来例1では、目視によるリソースの使用状態を監視しながら同時走行プログラムの走行パラメータや、多重起動、ループ回数等の設定を駆使し、微調整しながら手動で制御していたため、テスト担当者のスキルに依存しており、かつ、同一条件の再現性や長時間安定性、問題時の再現性においても、テストの信頼性に欠けていた。
(2) :従来例2には、試験環境に対する負荷量を自動調整することが記載されている。しかし、従来例2はシステムリソースのテストであって、本発明の参考程度の技術である。
(3) :従来例3には、負荷を適用することによってコンピュータシステムをテストすることが記載されている。しかし、従来例3はシステムリソース(ハード資源)のテストであって、本発明の参考程度の技術である。
(4) :従来例4には、人手操作無しに、自動的に試験プログラムの組合わせの制御を行い、計算機内部の該バスの負荷を自動的に変動させて試験の効率化を図る、バス負荷試験方法が記載されている。しかし、従来例4には、本発明のような被テストプログラムのテストに関しては記載されておらず、本発明の参考程度の技術である。
(5) :従来、一般に、プログラムのテストでは、テスト環境の構築内容により、テストで問題を検出できる範囲(テストカバレッジ)が左右され、また、問題発生時の原因調査の容易さに大きく影響する。
このため、テストカバレッジを明確にしたテストの場合、および問題の原因特定に主眼を置いた場合、競合プログラムとして次の条件が求められる。
(a) :テスト環境には同一条件の再現性があること。
(b) :テスト環境の状態を長時間、安定させることができること。
(c) :テスト環境の構築が、担当者のスキルに依存せず、誰でも均一な環境が構築できること。
(d) :システムのハード性能に合わせテスト環境を調整できること。
しかし、従来のテストでは、前記条件を満たしていなかった。
本発明は従来の課題を解決するためになされたものであり、競合プログラムとして、前記(a) 乃至(d) の条件を満たすようにすることで、効率良く、効果的なテスト環境を提供することを目的とする。
本発明は前記の目的を達成するため、次のように構成した。
(1) :コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、前記コンピュータ資源に対して、意図的に該当資源を使用することで、前記コンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、前記被テストプログラムの処理に外乱を与えて前記動作検証を行うことを特徴とする。
(2) :コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、前記被テストプログラムが使用するコンピュータ資源のアクセスパターンを測定し、前記測定したアクセスパターンを狙って、意図的に該当資源を使用することでコンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、前記被テストプログラムの処理に外乱を与えて前記動作検証を行うことを特徴とする。
(3) :コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、前記コンピュータ資源の使用率の設定値と測定した使用率を比較し、各コンピュータ資源の使用率を調整及び制御を行う機能を有する競合プログラムを用い、前記被テストプログラムが使用するコンピュータ資源に対し、前記競合プログラムの資源使用率を意図した値に制御することで、狙った割合の競合状態を生成し、前記被テストプログラムの処理に、狙った外乱を与えて前記動作検証を行うことを特徴とする。
(4) :コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する際に使用する競合プログラムであって、全体の制御を行う機能を有する競合発生制御部と、コンピュータ資源の使用率を測定する機能を有する使用率測定モジュールと、コンピュータ資源の使用率の設定値と測定した使用率を比較し、コンピュータ資源の使用率を調整及び制御する機能を有する使用率制御モジュールと、スケジュールに従い、競合の発生を制御する機能を有するスケジュール制御モジュールと、コンピュータ資源の実測した使用率と競合発生モジュールの対応テーブルであるリソース使用率測定テーブルと、コンピュータ資源の競合を発生させる機能を有する複数の競合発生モジュールで構成された競合発生モジュール群と、被テストプログラムのコンピュータ資源アクセスをトレースし、アクセスパターンをテーブル化する機能を有する被テストプログラム測定モジュールとを備えていることを特徴とする競合プログラム。
(作用)
以下、前記構成に基づく本発明の作用を説明する。
以下、前記構成に基づく本発明の作用を説明する。
(a) :前記(1) の作用
コンピュータ資源に対して、意図的に該当資源を使用することで、コンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、被テストプログラムの処理に外乱を与えて動作検証を行う。このようにすれば、競合プログラムとして、前記「発明が解決しようとする課題」の(a) 乃至(d) に記載した条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
コンピュータ資源に対して、意図的に該当資源を使用することで、コンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、被テストプログラムの処理に外乱を与えて動作検証を行う。このようにすれば、競合プログラムとして、前記「発明が解決しようとする課題」の(a) 乃至(d) に記載した条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
すなわち、前記(1) では、(a) :テスト環境には同一条件の再現性があること、(b) :テスト環境の状態を長時間、安定させることができること、(c) :テスト環境の構築が、担当者のスキルに依存せず、誰でも均一な環境が構築できること、(d) :システムのハード性能に合わせテスト環境を調整できること、の各条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
(b) :前記(2) の作用
被テストプログラムが使用するコンピュータ資源のアクセスパターンを測定し、前記測定したアクセスパターンを狙って、意図的に該当資源を使用することでコンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、被テストプログラムの処理に外乱を与えて前記動作検証を行う。
被テストプログラムが使用するコンピュータ資源のアクセスパターンを測定し、前記測定したアクセスパターンを狙って、意図的に該当資源を使用することでコンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、被テストプログラムの処理に外乱を与えて前記動作検証を行う。
このようにすれば、競合プログラムとして、前記「発明が解決しようとする課題」の(a) 乃至(d) に記載した条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
(c) :前記(3) の作用
コンピュータ資源の使用率の設定値と測定した使用率を比較し、各コンピュータ資源の使用率を調整及び制御を行う機能を有する競合プログラムを用い、前記被テストプログラムが使用するコンピュータ資源に対し、前記競合プログラムの資源使用率を意図した値に制御することで、狙った割合の競合状態を生成し、前記被テストプログラムの処理に、狙った外乱を与えて動作検証を行う。
コンピュータ資源の使用率の設定値と測定した使用率を比較し、各コンピュータ資源の使用率を調整及び制御を行う機能を有する競合プログラムを用い、前記被テストプログラムが使用するコンピュータ資源に対し、前記競合プログラムの資源使用率を意図した値に制御することで、狙った割合の競合状態を生成し、前記被テストプログラムの処理に、狙った外乱を与えて動作検証を行う。
このようにすれば、競合プログラムとして、前記「発明が解決しようとする課題」の(a) 乃至(d) に記載した条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
(d) :前記(4) の作用
コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する際に使用する競合プログラムは、全体の制御を行う機能を有する競合発生制御部と、コンピュータ資源の使用率を測定する機能を有する使用率測定モジュールと、コンピュータ資源の使用率の設定値と測定した使用率を比較し、コンピュータ資源の使用率を調整及び制御する機能を有する使用率制御モジュールと、スケジュールに従い、競合の発生を制御する機能を有するスケジュール制御モジュールと、コンピュータ資源の実測した使用率と競合発生モジュールの対応テーブルであるリソース使用率測定テーブルと、コンピュータ資源の競合を発生させる機能を有する複数の競合発生モジュールで構成された競合発生モジュール群と、被テストプログラムのコンピュータ資源アクセスをトレースし、アクセスパターンをテーブル化する機能を有する被テストプログラム測定モジュールとを備えている。
コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する際に使用する競合プログラムは、全体の制御を行う機能を有する競合発生制御部と、コンピュータ資源の使用率を測定する機能を有する使用率測定モジュールと、コンピュータ資源の使用率の設定値と測定した使用率を比較し、コンピュータ資源の使用率を調整及び制御する機能を有する使用率制御モジュールと、スケジュールに従い、競合の発生を制御する機能を有するスケジュール制御モジュールと、コンピュータ資源の実測した使用率と競合発生モジュールの対応テーブルであるリソース使用率測定テーブルと、コンピュータ資源の競合を発生させる機能を有する複数の競合発生モジュールで構成された競合発生モジュール群と、被テストプログラムのコンピュータ資源アクセスをトレースし、アクセスパターンをテーブル化する機能を有する被テストプログラム測定モジュールとを備えている。
従って、このような競合プログラムを使用して被テストプログラムの資源競合状態を発生させて動作検証を行うことができるので、競合プログラムとして、前記「発明が解決しようとする課題」の(a) 乃至(d) に記載した条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
本発明は請求項1乃至4により次のような効果がある。
(1) :競合プログラムとして、前記「発明が解決しようとする課題」の(a) 乃至(d) に記載した条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
すなわち、本発明は、(a) :テスト環境には同一条件の再現性があること、(b) :テスト環境の状態を長時間、安定させることができること、(c) :テスト環境の構築が、担当者のスキルに依存せず、誰でも均一な環境が構築できること、(d) :システムのハード性能に合わせテスト環境を調整できること、の各条件を満たすので、効率良く、効果的なテスト環境を提供することができる。
(2) :競合プログラムの競合モジュール構造と制御により、環境は同一条件の再現性が高い。
(3) :競合プログラムの競合モジュール構造と制御により、競合状態は長時間安定している。
(4) :競合プログラムによりリソース使用率を自動制御するため、環境の構築は担当者のスキルに依存しない。
(5) :競合プログラムによりリソース使用率を測定するため、ハード性能に合わせて調整可能である。
(6) :競合プログラムを使用することにより、各リソース毎のリソース競合状態使用率の変動は、従来例に比べて極めて少なくなっており、変動は最少である。
(7) :競合プログラムを使用することにより、テスト環境の競合状態を予めスケジュールし、スケジュール制御モジュールと連携することで、テストの自動化が容易になる。
§1:テストの概要説明
図1は本発明の原理説明図である。以下、図1に基づいてテストの概要を説明する。
図1は本発明の原理説明図である。以下、図1に基づいてテストの概要を説明する。
(1) :被テストプログラム資源競合テスト方法は、コンピュータ上で動作するテスト対象の被テストプログラム2(ハードディスク装置26内に格納されている)に対し、コンピュータ資源の競合に関して動作検証する。この場合、コンピュータ資源(例えば、CPU25、メモリ27、I/O制御部28、通信制御部29を含むハードウエア資源)に対して、意図的に該当資源を使用することで、コンピュータ資源の競合状態を作り出す機能を有する競合プログラム4により、被テストプログラム2の処理に外乱を与えて動作検証を行う。
(2) :被テストプログラム資源競合テスト方法は、コンピュータ上で動作するテスト対象の被テストプログラム2(ハードディスク装置26内に格納されている)に対し、コンピュータ資源の競合に関して動作検証する。この場合、被テストプログラム2が使用するコンピュータ資源(例えば、CPU25、メモリ27、I/O制御部28、通信制御部29を含むハードウエア資源)のアクセスパターンを測定し、前記測定したアクセスパターンを狙って、意図的に該当資源を使用することでコンピュータ資源の競合状態を作り出す機能を有する競合プログラム4により、前記被テストプログラム2の処理に外乱を与えて動作検証を行う。
(3) :被テストプログラム資源競合テスト方法は、コンピュータ上で動作するテスト対象の被テストプログラム2(ハードディスク装置26内に格納されている)に対し、コンピュータ資源の競合に関して動作検証する。この場合、コンピュータ資源(例えば、CPU25、メモリ27、I/O制御部28、通信制御部29を含むハードウエア資源)の使用率の設定値と測定した使用率を比較し、各コンピュータ資源の使用率を調整及び制御を行う機能を有する競合プログラム4を用い、被テストプログラム2が使用するコンピュータ資源に対し、競合プログラム4の資源使用率を意図した値に制御することで、狙った割合の競合状態を生成し、被テストプログラム2の処理に、狙った外乱を与えて前記動作検証を行う。
(4) :コンピュータ上で動作するテスト対象の被テストプログラム2(ハードディスク装置26内に格納されている)に対し、コンピュータ資源(例えば、CPU25、メモリ27、I/O制御部28、通信制御部29を含むハードウエア資源)の競合に関して動作検証する際に使用する競合プログラム4は、全体の制御を行う機能を有する競合発生制御部11と、コンピュータ資源の使用率を測定する機能を有する使用率測定モジュール12と、コンピュータ資源の使用率の設定値と測定した使用率を比較し、コンピュータ資源の使用率を調整及び制御する機能を有する使用率制御モジュール13と、スケジュールに従い、競合の発生を制御する機能を有するスケジュール制御モジュール14と、コンピュータ資源の実測した使用率と競合発生モジュールの対応テーブルであるリソース使用率測定テーブル15と、コンピュータ資源の競合を発生させる機能を有する複数の競合発生モジュールで構成された競合発生モジュール群16と、被テストプログラムのコンピュータ資源アクセスをトレースし、アクセスパターンをテーブル化する機能を有する被テストプログラム測定モジュール17とを備えている。
なお、前記「コンピュータ資源」という用語は、コンピュータ上の資源(CPU25、メモリ27、I/O制御部28、通信制御部29を含む資源)を対象とした用語であり、資源、コンピュータ資源、システムリソース、リソース等の用語で呼ばれることもあるが、以下の説明では、「リソース」という用語を用いて説明する。また、前記「被テストプログラム資源競合テスト方法」のことを、単に「テスト方法」とも記す。
§2:テスト方法の概念の説明
図2はテスト方法の概念図である。以下、図2に基づいて、テスト方法の概念を説明する。
図2はテスト方法の概念図である。以下、図2に基づいて、テスト方法の概念を説明する。
一般にコンピュータ1上では、複数のプログラムが同時に動作しており、コンピュータ1の各種リソース(CPU、メモリ、I/O、ネットワーク等)を取り合いながら処理を続けている。しかし、プログラム(被テストプログラム2)はリソース3の競合状態においても、正しく処理する安定性が求められており、プログラムの動作検証(以降も「テスト」と記す)においては、コンピュータ1の各種リソース競合状態における機能の安定性をテストする事は重要事項である。
図2は、このリソース競合状態におけるテスト方法の概念図であるが、被テストプログラム2に対して、リソース3の競合状態を発生させる競合プログラム4を同時に走行させてテストを行うものである。競合プログラム4としては、テストの狙いとするリソース3の競合状態を発生させる機能が必要になる。この場合、競合プログラム4が対象とするリソース3の競合は、CPU、メモリ、I/O、ネットワーク等のハード資源である。
§3:コンピュータの構成例の説明
図3はコンピュータの構成例である。この例では、コンピュータ1(コンピュータ本体)には入力部21、表示装置22やネットワーク等が接続されている。また、コンピュータ1の内部には、CPU25、メモリ27、I/O制御部28、通信制御部29、ハードディスク装置(HDD)26等のリソース(資源)が設けてある。そして、前記ハードディスク装置26の記憶媒体(ハードディスク)には、DB(データベース)5、被テストプログラム2、競合プログラム4等が格納されている。
図3はコンピュータの構成例である。この例では、コンピュータ1(コンピュータ本体)には入力部21、表示装置22やネットワーク等が接続されている。また、コンピュータ1の内部には、CPU25、メモリ27、I/O制御部28、通信制御部29、ハードディスク装置(HDD)26等のリソース(資源)が設けてある。そして、前記ハードディスク装置26の記憶媒体(ハードディスク)には、DB(データベース)5、被テストプログラム2、競合プログラム4等が格納されている。
§4:競合プログラムの説明
(1) :競合プログラムの構成の説明
図4は競合プログラムの構成例である。図4に示したように、競合プログラム4には、競合発生制御部11と、使用率測定モジュール12と、使用率制御モジュール13と、スケジュール制御モジュール14と、リソース使用率測定テーブル15と、競合発生モジュール群16と、被テストプログラム測定モジュール17が設けてある。前記各部の機能等は次の通りである。
(1) :競合プログラムの構成の説明
図4は競合プログラムの構成例である。図4に示したように、競合プログラム4には、競合発生制御部11と、使用率測定モジュール12と、使用率制御モジュール13と、スケジュール制御モジュール14と、リソース使用率測定テーブル15と、競合発生モジュール群16と、被テストプログラム測定モジュール17が設けてある。前記各部の機能等は次の通りである。
(a) :競合発生モジュール群16は、各リソース(CPU、メモリ、I/O、ネットワーク等の資源)の競合を発生させる機能を有する複数の競合発生モジュールで構成されている。
(b) :使用率測定モジュール12は、各リソース(CPU、メモリ、I/O、ネットワーク等の資源)の使用率を測定する機能を有する。
(c) :使用率制御モジュール13は、使用率の設定値と測定した使用率を比較し、各リソース(CPU、メモリ、I/O、ネットワーク等の資源)の使用率を調整及び制御する機能を有する。
(d) :スケジュール制御モジュール14は、スケジュールに従い、競合の発生を制御する機能を有する。
(e) :リソース使用率測定テーブル15は、実測した使用率と使用率測定モジュール12の対応テーブルである。
(f) :被テストプログラム測定モジュール17は、被テストプログラム2のリソースアクセスをトレースし、アクセスパターンをテーブル化するものである。
(2) :競合プログラムの動作の説明
競合プログラムの動作は次の通りである。
競合プログラムの動作は次の通りである。
競合発生制御部11は、テスト実施者が期待する競合状態(競合プログラム4のリソース使用状態)の指示に従い、使用率制御モジュール13に対し指示を出す。使用率制御モジュール13は、使用率測定モジュール12により、リソース使用率を監視し、競合発生モジュール群16を制御することで、リソース使用率が指示値になるようにする。
ここで、競合発生モジュール群16の各競合発生モジュールは、各リソースに対して単純な使用をするもので、CPU25は外部アクセスしない演算命令列(数キロステップ程度)、メモリ27では連続領域の参照(数キロバイト程度)、I/O(I/O制御部28)ではレコードの読み込み(数レコード程度)、ネットワークではPING(数回程度)の単純な構成として、リソースの大小の制御は、例えば、同時実行プログラムの多重度で制御するものとする。
(3) :競合プログラムの特徴の説明
以上の通り、各競合発生モジュールをリソース使用に特化し、かつ単純に構成し、繰り返すのみとして余計な動作をしない事で、次のような特徴が得られる。
以上の通り、各競合発生モジュールをリソース使用に特化し、かつ単純に構成し、繰り返すのみとして余計な動作をしない事で、次のような特徴が得られる。
(a) :同一条件の再現性が高められる。
(b) :リソース使用状態が長時間安定している。
また、リソース使用率は、自動的に行われるため、競合環境の構築は競合プログラム4への指示に統一され、特にスキルに依存しない。
なお、リソース使用率は、ハードウェア性能に依存することから、予め競合発生モジュールの走行条件とリソース使用率の関係を測定し、リソース使用率測定テーブル15に記録する。テスト実施時に、競合プログラム4は指示されたリソース使用率に該当する条件を、リソース使用率測定テーブル15から読み出し、競合発生モジュール群16を制御する。
以上のことをまとめると、次のような特徴が得られる。
(a) :競合モジュール構造と制御により、環境は同一条件の再現性が高い。
(b) :競合モジュール構造と制御により、競合状態は長時間安定している。
(c) :リソース使用率を自動制御するため、環境の構築は担当者のスキルに依存しない。
(d) :リソース使用率を測定するため、ハード性能に合わせて調整可能である。
(4) :リソース使用率等の説明
図5は本発明のテストによるリソース使用率例である。図5において、横軸はリソース名(ハード資源名)、縦軸は各リソース毎のリソース使用率(%)を示す。また、図5のA、B、C、Dはそれぞれ変動率(%)を示している。
図5は本発明のテストによるリソース使用率例である。図5において、横軸はリソース名(ハード資源名)、縦軸は各リソース毎のリソース使用率(%)を示す。また、図5のA、B、C、Dはそれぞれ変動率(%)を示している。
図5から明らかなように、各リソース毎のリソース競合状態使用率の変動は、従来例に比べて極めて少なくなっており、変動は最少である。
更に、テスト環境の競合状態を予めスケジュールし、スケジュール制御モジュール14と連携することで、テストの自動化が容易になる。
(5) :その他の説明
被テストプログラム2はブラックボックスであるため、リソースへのアクセスがどのように行われるかが不明であり、競合プログラム4のみでは狙いとするリソース競合状態を起こすことはできない。
被テストプログラム2はブラックボックスであるため、リソースへのアクセスがどのように行われるかが不明であり、競合プログラム4のみでは狙いとするリソース競合状態を起こすことはできない。
そこで、被テストプログラム2のリソースへのアクセスパターンを知るために、被テストプログラム2を単独で走行させ、この時のリソースアクセスを競合プログラム4がトレースして記録し、記録されたトレースデータからリソースのアクセスパターンを得て、このパターンを基に競合プログラム4を制御することで、リソースへのアクセス競合を発生させるものである。
図6はアクセスパターンテーブル例、アクセスパターン例及びスケジュール機能による競合環境の変化例であり、図6のA図はアクセスパターンのテーブル例である。
被テストプログラム測定モジュール17は、被テストプログラム2が各リソースへのアクセス時間(時間)、アクセス間隔(時間)、データの方向(読み/書き)、データの大きさ(バイト)、等のトレースを測定し、このトレースデータをアクセスパターンとしてテーブル化するものである。
競合プログラム4によるリソースアクセス競合のテスト時は、スケジュール制御モジュール14が、アクセスパターンのテーブルの値をパラメータとして入力し、競合発生モジュール群16を制御して、リソースの競合を発生させる。
§5:テスト時における競合プログラムの処理等の概要説明
競合プログラムの処理は以降に説明する(図7〜図12参照)に示すが、テスト時において競合プログラムは、次のような処理を行う。この例では、テストの順番を、A:リソース使用率測定、B:競合発生、C:被テストプログラム測定の3つに分けている。以下、これらの処理について説明する。
競合プログラムの処理は以降に説明する(図7〜図12参照)に示すが、テスト時において競合プログラムは、次のような処理を行う。この例では、テストの順番を、A:リソース使用率測定、B:競合発生、C:被テストプログラム測定の3つに分けている。以下、これらの処理について説明する。
A:リソース使用率測定の概要
この処理では、先ず、リソース使用率がハードウェアの環境に依存するため、テストの初めに、リソース使用率の測定を実施し、テストで使用する各種のリソース使用率が発生する条件を、リソースの使用率測定テーブル15に記録する処理を行う。
この処理では、先ず、リソース使用率がハードウェアの環境に依存するため、テストの初めに、リソース使用率の測定を実施し、テストで使用する各種のリソース使用率が発生する条件を、リソースの使用率測定テーブル15に記録する処理を行う。
使用率測定テーブル15の各項の若い順に、使用率条件を期待値として、競合発生モジュール群16内の指示した競合発生モジュールを走行させながらリソース使用率測定を行い、リソース使用率が期待値になる様に競合発生モジュール群16を追加起動させる(例では、多重度を制御する)。期待したリソース使用率条件に達したところで、この時の発生条件をリソース使用率測定テーブル15に記録し、次の項の測定を行う。テーブルを全部埋めたところで、測定を完了する。
B:競合発生の概要
次に、競合発生であるが、発生させたい競合状態(リソースの使用率)に対応して、競合発生モジュール群16内の競合発生モジュールの走行条件(本例では、多重度)がリソース使用率測定テーブル15に作成してあり、該当の条件でスケジュール制御モジュール14が起動する。
次に、競合発生であるが、発生させたい競合状態(リソースの使用率)に対応して、競合発生モジュール群16内の競合発生モジュールの走行条件(本例では、多重度)がリソース使用率測定テーブル15に作成してあり、該当の条件でスケジュール制御モジュール14が起動する。
C:被テストプログラム測定の概要
更に、競合発生モジュール群16の競合発生モジュールは、アクセス時間やアクセス間隔、ライト/リード(Write/Read)、データ長のパラメータをスケジュール制御モジュール14から渡され、そのパラメータに従って動作する。
更に、競合発生モジュール群16の競合発生モジュールは、アクセス時間やアクセス間隔、ライト/リード(Write/Read)、データ長のパラメータをスケジュール制御モジュール14から渡され、そのパラメータに従って動作する。
§6:テスト時における競合プログラムの処理等の具体例の説明
(1) :被テストプログラム測定の具体例
図6のB図はアクセスパターン例を示した図、図6のC図はスケジュール機能による競合環境の変化例である。
(1) :被テストプログラム測定の具体例
図6のB図はアクセスパターン例を示した図、図6のC図はスケジュール機能による競合環境の変化例である。
例として、或る特定のリソースに対して、図6のB図の(A)のようなリソースアクセスがトレースされた場合、トレーステーブル(図12のA図参照)の各要素を最大/最少/平均等の丸め処理により、アクセスパターンテーブル(図6のA図参照)には、図6のB図の(B)や図6のB図の(C)のようなアクセスパターンが生成される。
なお、リソースアクセスのトレースからアクセスパターンテーブルに変換する処理をより緻密に行い、アクセスパターンテーブルの各値(パラメータ)を増やす等の処理を行うことで、より正確なリソースのアクセス競合状態が実現できる。
また、この例の発展例として、以下の機能も考えられる。
(a) :予め、リソース使用率測定はせずに、競合発生時点で使用率測定を行いながら使用率条件に近づける制御方法。(測定時間の短縮効果が期待できる。)
(b) :競合発生モジュールの内部動作に、リソースの使用方法等制御できる機能を持ち、外部から指示するパラメータで制御できるようにし、使用率測定時にパラメータ設定することでリソース使用率の条件をきめ細かく制御できる方法。(テスト精度の向上ができる。)
(c) :競合発生の制御部に、スケジュール機能を持たせ、予め作ったスケジュールに従い、競合条件を制御する方法。(各種競合条件のテストが自動化され、テストの効率化が期待できる。)(図6のC図参照)
(b) :競合発生モジュールの内部動作に、リソースの使用方法等制御できる機能を持ち、外部から指示するパラメータで制御できるようにし、使用率測定時にパラメータ設定することでリソース使用率の条件をきめ細かく制御できる方法。(テスト精度の向上ができる。)
(c) :競合発生の制御部に、スケジュール機能を持たせ、予め作ったスケジュールに従い、競合条件を制御する方法。(各種競合条件のテストが自動化され、テストの効率化が期待できる。)(図6のC図参照)
§7:競合プログラムのフローチャート等による説明
図7は競合プログラムの処理フローチャート(その1)、図8は競合プログラムの処理フローチャート(その2)、図9は競合プログラムの処理フローチャート(その3)、図10はリソース使用率測定テーブル例/競合モジュール群の説明図であり、図10のA図はリソース使用率測定テーブル例、図10のB図は競合発生モジュール群の説明図である。
図7は競合プログラムの処理フローチャート(その1)、図8は競合プログラムの処理フローチャート(その2)、図9は競合プログラムの処理フローチャート(その3)、図10はリソース使用率測定テーブル例/競合モジュール群の説明図であり、図10のA図はリソース使用率測定テーブル例、図10のB図は競合発生モジュール群の説明図である。
以下、図7乃至図10に基づいて、競合プログラムの処理を説明する。なお、図7乃至図10において、S1〜S20は各処理ステップを示す。また、S1乃至S6の処理は使用率制御モジュール13が行う競合状態生成の処理であり、S7乃至S20は使用率測定モジュール12が行うリソース使用率測定処理である。
先ず、リソース使用率測定か否かを判定し(S1)、リソース使用率測定でなければ、テストか否かを判定する(S2)。その結果、テストでなければ、被テストプログラム測定(後述する処理を参照)を行い、テストであれば、外部から指示されたリソース使用率に該当する項をリソース使用率測定テーブル15から探す(S3)。
次に、アクセスパターンテーブルの値を、競合発生モジュール群16の走行条件としてパラメータ渡しする(S4)。次に、リソース使用率測定テーブル15の条件に従い、競合発生モジュール群16から選択し、起動する(S5)。そして、競合状態の生成完了となる(S6)。
また、S1の処理で、リソース使用率測定であると判断した場合には、次のようにリソース使用率測定の処理を行う。先ず、リソース使用率測定テーブル15を初期化し(S7)、リソース使用率測定テーブル15のポインタの初期化を行い(S8)、競合発生モジュール群16のポインタを初期化する(S9)。
次に、競合発生モジュール群16のポインタが指す競合発生モジュールを起動し(S10)、リソース使用率測定を行う(S11)。次に、リソース使用率は予定より低いかどうかを判断し(S12)、リソース使用率が予定より低い場合には、同じ競合発生モジュールを起動し(S13)、S10の処理へ移行する。
また、S12の処理において、リソース使用率が予定より低くない場合には、リソース使用率測定テーブル15にモジュール数(多重度)を記録し(S14)、競合発生モジュール群16のポインタが指す競合発生モジュールを停止する(S15)。
次に、リソース使用率測定ポインタを更新し(S16)、競合発生モジュール群16のポインタを更新する(S17)。次に、競合発生モジュール群16のポインタが指す競合発生モジュールを起動する(S18)。そして、競合発生モジュール群16のポインタは最後まで終わったかを判断し(S19)、最後まで終わっていなければ、S10の処理へ移行し、最後まで終わっていれば、リソース使用率測定完了とする(S20)。
前記リソース使用率測定テーブル例は図10のA図に示した通りである。この例では、項が1乃至nで、各項毎に、リソース使用率(%)と、各リソース(ハード資源)毎の多重度のデータが記載されるようになっている。そして、ポインタ(リソース使用率測定テーブルのポインタ)がどの項を選択するかを示している。なお、意図した値は、n項の100%である。
また、図10のB図に示すように、競合発生モジュール群16には複数の競合発生モジュールが含まれており、どの競合発生モジュールを選択するかを指定するためにポインタが設けてある。すなわち、このポインタ(競合発生モジュール群16のポインタ)により選択する競合発生モジュールを指定できるようになっている。
§8:被テストプログラムの測定処理フローチャート等による説明
図11は被テストプログラムの測定処理フローチャートである。また、図12はトレーステーブル例/アクセスパターンテーブル例であり、図12のA図はトレーステーブル例、図12のB図はアクセスパターンテーブル例である。
図11は被テストプログラムの測定処理フローチャートである。また、図12はトレーステーブル例/アクセスパターンテーブル例であり、図12のA図はトレーステーブル例、図12のB図はアクセスパターンテーブル例である。
以下、図11、図12に基づいて、被テストプログラムの測定処理を説明する。なお、図11において、S31〜S40は各処理ステップを示す。また、以下の処理は、被テストプログラム測定モジュール17が行う処理である。
先ず、トレーステーブル(図12のA図参照)を初期化し(S31)、リソースアクセスのシステムコールをフックする(S32)。次に、フックされて得られたパラメータからリソースを特定し、かつ、ライト/リード(Write/Read)及びデータ長を求め、トレーステーブルに記録する(S33)。
そして、トレーステーブルを更新し(S34)、測定(被テストプログラムの測定)完了かどうかを判定する(S35)。その結果、測定完了でなければS33の処理へ移行し、測定完了ならば、アクセスパターンテーブル(図12のB図参照)を初期化し(S36)、トレーステーブルから同じリソースを抽出(ソート)する(S37)。
次に、同じリソースの平均/最大/最小アクセス時間及びアクセス間隔、ライト/リード(Write/Read)、データ長(最大/平均/最小)を求め、アクセスパターンテーブルに記録し(S38)、テーブルは終わりか否かを判断する(S39)。その結果、テーブルが終わりでなければS38の処理へ移行し、テーブルが終わりであれば測定完了とする(S40)。
なお、トレーステーブル例は図12のA図の通りであり、アクセスパターンテーブル例は図12のB図に示す。前記トレーステーブル例では、リソース名、データ方向、データ長、時刻の項目が設けてあり、各項目毎にデータが記録されている。例えば、リソース名=リソース−aでは、データ方向=Write、データ長=L1、時刻=T1となっており、リソース名=リソース−bでは、データ方向=Write、データ長=L2、時刻=T2となっており、以下同様にして各項目毎にデータが記録されている。
また、アクセスパターンテーブル例では、リソース名、アクセス時間、アクセス間隔、データ方向、データ長の各項目が設けてあり、各項目毎にデータが記録されている。例えば、リソース名=リソース−aでは、アクセス時間=t1、アクセス間隔=A1、データ方向=ライト(Write)、データ長=S1となっており、リソース名=リソース−bでは、アクセス時間=t2、アクセス間隔=A2、データ方向=ライト(Write)、データ長=S2となっており、以下同様にして各項目毎にデータが記録されている。
1 コンピュータ
2 被テストプログラム
3 リソース(コンピュータ資源)
4 競合プログラム
11 競合発生制御部
12 使用率測定モジュール
13 使用率制御モジュール
14 スケジュール制御モジュール
15 リソース使用率測定テーブル
16 競合発生モジュール群
17 被テストプログラム測定モジュール
21 入力部
22 表示装置
25 CPU
26 ハードディスク装置
27 メモリ
28 I/O制御部
29 通信制御部
2 被テストプログラム
3 リソース(コンピュータ資源)
4 競合プログラム
11 競合発生制御部
12 使用率測定モジュール
13 使用率制御モジュール
14 スケジュール制御モジュール
15 リソース使用率測定テーブル
16 競合発生モジュール群
17 被テストプログラム測定モジュール
21 入力部
22 表示装置
25 CPU
26 ハードディスク装置
27 メモリ
28 I/O制御部
29 通信制御部
Claims (4)
- コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、
前記コンピュータ資源に対して、意図的に該当資源を使用することで、前記コンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、前記被テストプログラムの処理に外乱を与えて前記動作検証を行うことを特徴とする被テストプログラム資源競合テスト方法。 - コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、
前記被テストプログラムが使用するコンピュータ資源のアクセスパターンを測定し、前記測定したアクセスパターンを狙って、意図的に該当資源を使用することでコンピュータ資源の競合状態を作り出す機能を有する競合プログラムにより、前記被テストプログラムの処理に外乱を与えて前記動作検証を行うことを特徴とする被テストプログラム資源競合テスト方法。 - コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する被テストプログラム資源競合テスト方法において、
前記コンピュータ資源の使用率の設定値と測定した使用率を比較し、各コンピュータ資源の使用率を調整及び制御を行う機能を有する競合プログラムを用い、
前記被テストプログラムが使用するコンピュータ資源に対し、前記競合プログラムの資源使用率を意図した値に制御することで、狙った割合の競合状態を生成し、前記被テストプログラムの処理に、狙った外乱を与えて前記動作検証を行うことを特徴とする被テストプログラム資源競合テスト方法。 - コンピュータ上で動作するテスト対象の被テストプログラムに対し、コンピュータ資源の競合に関して動作検証する際に使用する競合プログラムであって、
全体の制御を行う機能を有する競合発生制御部と、
コンピュータ資源の使用率を測定する機能を有する使用率測定モジュールと、
コンピュータ資源の使用率の設定値と測定した使用率を比較し、コンピュータ資源の使用率を調整及び制御する機能を有する使用率制御モジュールと、
スケジュールに従い、競合の発生を制御する機能を有するスケジュール制御モジュールと、
コンピュータ資源の実測した使用率と競合発生モジュールの対応テーブルであるリソース使用率測定テーブルと、
コンピュータ資源の競合を発生させる機能を有する複数の競合発生モジュールで構成された競合発生モジュール群と、
被テストプログラムのコンピュータ資源アクセスをトレースし、アクセスパターンをテーブル化する機能を有する被テストプログラム測定モジュールと、
を備えていることを特徴とする競合プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007017232A JP2008186103A (ja) | 2007-01-29 | 2007-01-29 | 被テストプログラム資源競合テスト方法及び競合プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007017232A JP2008186103A (ja) | 2007-01-29 | 2007-01-29 | 被テストプログラム資源競合テスト方法及び競合プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008186103A true JP2008186103A (ja) | 2008-08-14 |
Family
ID=39729131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007017232A Withdrawn JP2008186103A (ja) | 2007-01-29 | 2007-01-29 | 被テストプログラム資源競合テスト方法及び競合プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008186103A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010224629A (ja) * | 2009-03-19 | 2010-10-07 | Hitachi Information Systems Ltd | ソフトウェア検証システムと方法およびプログラム |
JP2011123842A (ja) * | 2009-12-14 | 2011-06-23 | Ricoh Co Ltd | 画像形成装置、機能追加方法、及びプログラム |
JP2013127685A (ja) * | 2011-12-19 | 2013-06-27 | Hitachi Ltd | 情報処理システムおよび運用管理方法 |
-
2007
- 2007-01-29 JP JP2007017232A patent/JP2008186103A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010224629A (ja) * | 2009-03-19 | 2010-10-07 | Hitachi Information Systems Ltd | ソフトウェア検証システムと方法およびプログラム |
JP2011123842A (ja) * | 2009-12-14 | 2011-06-23 | Ricoh Co Ltd | 画像形成装置、機能追加方法、及びプログラム |
US8635633B2 (en) | 2009-12-14 | 2014-01-21 | Ricoh Company, Ltd. | Image forming apparatus, function adding method, and computer-readable recording medium |
JP2013127685A (ja) * | 2011-12-19 | 2013-06-27 | Hitachi Ltd | 情報処理システムおよび運用管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10748083B2 (en) | Automated tuning of a service configuration | |
US7486096B2 (en) | Method and apparatus for testing to determine minimum operating voltages in electronic devices | |
US10521335B2 (en) | Context-based device testing | |
US9026998B2 (en) | Selecting relevant tests to quickly assess code stability | |
US20110288846A1 (en) | Technique and tool for efficient testing of controllers in development (h-act project) | |
EP3379358A2 (en) | Control system, control device, control program, and control method | |
US20130326486A1 (en) | Keyword based software testing system and method | |
US10169002B2 (en) | Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team | |
US7797598B1 (en) | Dynamic timer for testbench interface synchronization | |
US20120233596A1 (en) | Measuring coupling between coverage tasks and use thereof | |
US20130091490A1 (en) | Method to automatically discover whether new code is covered by tests | |
US11119901B2 (en) | Time-limited dynamic testing pipelines | |
KR101519450B1 (ko) | 멀티스레드 프로그램에 대한 테스트 커버리지 정보를 이용한 자동 테스트 생성 장치, 방법 및 기록매체 | |
Gambi et al. | Testing elastic computing systems | |
CN117009243A (zh) | 芯片性能自动化测试方法、装置、计算机设备及存储介质 | |
US11907103B2 (en) | Test environment determination device and test environment determination method | |
CN116594913A (zh) | 一种智能软件自动化测试方法 | |
Cámara et al. | Towards bridging the gap between control and self-adaptive system properties | |
JP2008186103A (ja) | 被テストプログラム資源競合テスト方法及び競合プログラム | |
US8850407B2 (en) | Test script generation | |
Ozawa et al. | How do software metrics affect test case prioritization? | |
Yu et al. | Simlatte: A framework to support testing for worst-case interrupt latencies in embedded software | |
Jacobvitz et al. | Multi-program benchmark definition | |
US20220382610A1 (en) | Systems and methods for margin based diagnostic tools for priority preemptive schedulers | |
US10733345B1 (en) | Method and system for generating a validation test |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100406 |