(57)【要約】【課題】アプリケーションプログラムを含むソフトウェアの加速試験における不具合の状況を詳細に調査することのできるソフトウェアの加速試験装置及び加速試験方法を提供する。【解決手段】時計機能を備えるＯＳ（オペレーティング・システム）２５及びＣＰＵ１１を有し、このＯＳ上で稼動するソフトウェアの加速試験を行うソフトウェアの加速試験装置１において、ＯＳの時計機能の計時をｎ（ｎ＞１）倍に加速するように変更する時刻加速手段３２と、ソフトウェアに組み込まれて、加速試験において不具合が発生した場合に、不具合に関するログ情報を記録媒体に記録するログ記録手段３１と、ログ情報に含まれる不具合発生時刻よりも過去の時刻において、ＯＳの時計機能の計時をｍ（ｎ＞ｍ＞＝１）倍に加速するように変更する時刻加速度変更手段３３と、ソフトウェアで発生した不具合の状況を調査する調査手段３４とを備えた。【選択図】図２
2011197820.tif 000002
【特許請求の範囲】
【請求項１】
時計機能を備えるＯＳ（オペレーティング・システム）及びＣＰＵを有し、このＯＳ上で稼動するソフトウェアの加速試験を行うソフトウェアの加速試験装置において、
前記ＯＳの時計機能の計時をｎ（ｎ＞１）倍に加速するように変更する時刻加速手段と、
前記ソフトウェアに組み込まれて、加速試験において不具合が発生した場合に、不具合に関するログ情報を記録媒体に記録するログ記録手段と、
前記ログ情報に含まれる不具合発生時刻よりも過去の時刻において、前記ＯＳの時計機能の計時をｍ（ｎ＞ｍ＞＝１）倍に加速するように変更する時刻加速度変更手段と、
前記ソフトウェアで発生した不具合の状況を調査する調査手段と
を備えたことを特徴とする加速試験装置。
【請求項２】
時計機能を備えるＯＳ（オペレーティング・システム）、ＣＰＵ及び前記ＣＰＵを駆動するクロック信号を発生するクロックを有し、このＯＳ上で稼動するソフトウェアの加速試験を行うソフトウェアの加速試験装置において、
前記クロックのクロック周波数を第１の周波数に変更し、前記ＯＳの時計機能の計時を前記第１の周波数に対応するｎ（ｎ＞１）倍に加速するように変更する時刻加速手段と、
前記ソフトウェアに組み込まれて、加速試験において不具合が発生した場合に、不具合に関するログ情報を記録媒体に記録するログ記録手段と、
前記ログ情報に含まれる不具合発生時刻よりも過去の時刻において、前記ＯＳの時計機能の計時をｍ（ｎ＞ｍ＞＝１）倍に加速するように変更し、前記クロック周波数を前記第１の周波数よりも低い前記ｍ倍の計時速度に対応する第２の周波数で加速するように変更する時刻加速度変更手段と、
前記ソフトウェアで発生した不具合の状況を調査する調査手段と
を備えたことを特徴とする加速試験装置。
【請求項３】
前記ログ情報は、ＯＳが計時した不具合発生時刻と不具合内容とを含むことを特徴とする請求項１又は２に記載の加速試験装置。
【請求項４】
前記調査手段は、前記時刻加速度変更手段によって起動されることを特徴とする請求項１又は２に記載の加速試験装置。
【請求項５】
時計機能を備えるＯＳ（オペレーティング・システム）及びＣＰＵを有し、このＯＳ上で稼動するソフトウェアの加速試験を行う加速試験装置の加速試験方法において、
前記ＯＳの時計機能の計時をｎ（ｎ＞１）倍に加速するように変更し、
前記ソフトウェアに組み込まれたログ記録手段によって、加速試験において不具合が発生した場合に、不具合に関するログ情報を記録媒体に記録し、
前記ログ情報に含まれる不具合発生時刻よりも過去の時刻と、計時の倍数ｍ（ｎ＞ｍ＞＝１）とを取得し、
前記過去の時刻において、前記ＯＳの時計機能の計時をｍ倍で加速するように変更し、
前記ソフトウェアで発生した不具合の状況を調査手段によって調査すること
を特徴とする加速試験方法。
【請求項６】
時計機能を備えるＯＳ（オペレーティング・システム）、ＣＰＵ及び前記ＣＰＵを駆動するクロック信号を発生するクロックを有し、このＯＳ上で稼動するソフトウェアの加速試験を行う加速試験装置の加速試験方法において、
前記クロックのクロック周波数を第１の周波数に変更し、
前記ＯＳの時計機能の計時を前記第１の周波数に対応するｎ（ｎ＞１）倍に加速するように変更し、
前記ソフトウェアに組み込まれたログ記録手段によって、加速試験において不具合が発生した場合に、不具合に関するログ情報を記録媒体に記録し、
ログ情報に含まれる不具合発生時刻よりも過去の時刻と、計時の倍数ｍ（ｎ＞ｍ＞＝１）とを取得し、
前記過去の時刻において、前記ＯＳの時計機能の計時をｍ倍で加速するように変更し、
前記クロック周波数を前記第２の周波数で加速するように変更し、
前記ソフトウェアで発生した不具合の状況を調査手段によって調査すること
を特徴とする加速試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの加速試験における不具合の状況を詳細に調査することのできるソフトウェアの加速試験装置及び加速試験方法に関する。
【背景技術】
【０００２】
顧客からの要望に基づいて顧客使用のシステム製品を含むアプリケーションプログラムを新たに設計・作成した場合、或いは既に納入ずみのシステム製品に適用するアプリケーションプログラムを新たに設計・作成した場合、システム設計者や製品品質保証担当者は、この新たなアプリケーションプログラムの品質を保証するために、客先出荷前に各種の試験を実施している。
【０００３】
このようなアプリケーションプログラムの動作確認試験では、アプリケーションプログラムを実行して動作の良否を確認するため、システムによっては試験期間が１ヶ月ないし２ヶ月といった長期にわたる場合がある。そして、その間はシステムが専有されることになり、また、このような長期試験の間、試験担当者は、時間の経過を待っているだけの状態が多く発生するなど、試験の効率が非常に悪い。
【０００４】
そこで、試験の効率化を図るために、アプリケーションプログラムの動作を加速する種々の方法が提案されている。
【０００５】
アプリケーションプログラムの動作を加速するための手法として、中央演算処理装置（以下、「ＣＰＵ」と略す。）のクロック周波数変更（増加）がある（ただし電子回路的に可能な場合のみ）。クロック周波数を増やしてアプリケーションプログラムを稼動させれば、単位時間あたりにＣＰＵが処理する命令数は増加するので、連続的に動作するアプリケーションプログラムの処理は加速する。
【０００６】
また、特許文献１及び特許文献２には、アプリケーションプログラムが起床するトリガとして使用するタイマ割込みの間隔を短縮することで、アプリケーションプログラムの動作を加速してメモリリークなどのソフトウェア品質を試験する方法が提示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−３６７３８号公報
【特許文献２】特開２００４−３８３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、アプリケーションプログラムの動作において不具合が発生した場合、その原因を直ちに特定することができれば良いが、一般に、不具合の原因を特定するためには各種の調査が必要となる。例えば、デバッグ用のプログラム、コマンドを用いて、アプリケーションプログラムの稼働中に不具合に関連した状態、内容を定期的に収集し、その収集結果に基づいて後で故障解析を実行する。
【０００９】
しかしながら、システムが加速試験中の場合には、デバッグ用のプログラム、コマンドが正常に動作しないことがある。  
また、システムが加速試験中において、デバッグ用のプログラム、コマンドを実行することは、システムの加速試験を阻害する原因ともなる。
【００１０】
本発明は、かかる事情に鑑みてなされたものであって、アプリケーションプログラムを含むソフトウェアの加速試験における不具合の状況を詳細に調査することのできるソフトウェアの加速試験装置及び加速試験方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するための本発明は、時計機能を備えるＯＳ（オペレーティング・システム）及びＣＰＵを有し、このＯＳ上で稼動するソフトウェアの加速試験を行うソフトウェアの加速試験装置において、前記ＯＳの時計機能の計時をｎ（ｎ＞１）倍に加速するように変更する時刻加速手段と、前記ソフトウェアに組み込まれて、加速試験において不具合が発生した場合に、不具合に関するログ情報を記録媒体に記録するログ記録手段と、前記ログ情報に含まれる不具合発生時刻よりも過去の時刻において、前記ＯＳの時計機能の計時をｍ（ｎ＞ｍ＞＝１）倍に加速するように変更する時刻加速度変更手段と、前記ソフトウェアで発生した不具合の状況を調査する調査手段とを備えた。
【００１２】
また本発明は、時計機能を備えるＯＳ（オペレーティング・システム）及びＣＰＵを有し、このＯＳ上で稼動するソフトウェアの加速試験を行う加速試験装置の加速試験方法において、前記ＯＳの時計機能の計時をｎ（ｎ＞１）倍に加速するように変更し、前記ソフトウェアに組み込まれたログ記録手段によって、加速試験において不具合が発生した場合に、不具合に関するログ情報を記録媒体に記録し、前記ログ情報に含まれる不具合発生時刻よりも過去の時刻と、計時の倍数ｍ（ｎ＞ｍ＞＝１）とを取得し、前記過去の時刻において、前記ＯＳの時計機能の計時をｍ倍で加速するように変更し、前記ソフトウェアで発生した不具合の状況を調査手段によって調査する。
【発明の効果】
【００１３】
この発明によれば、ソフトウェアの加速試験における不具合の原因を効率的に調査することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態の加速試験装置を用いた加速試験システムの構成を示す図。
【図２】第１の実施の形態の加速試験装置の加速動作に関連するソフトウェアとハードウェアとを示す図。
【図３】加速試験装置における加速試験のフローを示す図。
【図４】加速試験装置における加速試験の不具合調査フローを示す図。
【発明を実施するための形態】
【００１５】
[第１の実施の形態]  
図１は、本発明の第１の実施の形態の加速試験装置を用いた加速試験システムの構成を示す図である。  
加速試験システムは、加速試験装置１及び入出力装置２を備えている。加速試験装置１は、アプリケーションプログラムなどのソフトウェアを記憶するとともに加速して実行する。入出力装置２は、加速試験装置１に対して指示を入力し、また加速試験装置１の情報を表示する。
【００１６】
そして加速試験装置１には、ＣＰＵ１１、ＲＯＭ１２、プログラムＲＡＭ１３、プロセス入出力インターフェース１４、データＲＡＭ１５、入出力インターフェース１６、クロック１７及び時計１８が設けられている。
【００１７】
ＣＰＵ１１は、加速試験装置１全体の動作を実行・管理する。ＲＯＭ１２には、加速試験装置１動作を実行するためのシステムプログラムが格納される。プログラムＲＡＭ１３には、アプリケーションプログラムが格納される。プロセス入出力インターフェース１４は、ＣＰＵ１１との間で実際のプロセス情報の授受を行うためのインターフェースである。データＲＡＭ１５には、入出力されるプロセス情報，制御周期その他プログラム実行上必要なシステム情報およびアプリケーションプログラムを実行するためのパラメータ等が格納される。入出力インターフェース１６は、加速試験装置１に蓄積されている情報をモニタリングさせるために入出力装置２に送出し、また入出力装置２から入力される必要な指示を加速試験装置１に導入する。
【００１８】
クロック１７は、例えば水晶発振器で構成され、このクロック１７から出力されるクロック信号は、システムプログラム、アプリケーションプログラムを実行するための基準同期信号である。時計１８は、クロック信号から生成される加速試験装置１で利用可能な実時間を出力する。
【００１９】
図２は、第１の実施の形態の加速試験装置１の加速動作に関連するソフトウェアとハードウェアとを示す図である。  
ハードウェアには、ＣＰＵボード１０上に搭載されたＣＰＵ１１、クロック１７及び時計１８が含まれる。ソフトウェアには、アプリケーションプログラム３１、時刻加速プログラム３２、時刻加速度変更プログラム３３、調査プログラム３４及びＯＳ（Operating System）２５が含まれる。また、データＲＡＭ１５にはログファイル４１が格納され、ＯＳ２５内にはデータとして加速度変数４２が設けられている。
【００２０】
ＣＰＵ１１は、クロック１７からのクロック信号を同期信号として、そのタイミング毎にＣＰＵ組込命令を順次処理する。  
クロック１７は、正確な時間周期でクロック信号であるパルス信号をＣＰＵ１１に送信する。クロック１７には、クロック信号の周波数を可変できる機能が備わっている。この周波数の可変方法としては、例えばＣＰＵボード１０上に設けられたスイッチにより設定できる場合もあるし、また他の例としてはＣＰＵ１１を介して特定の命令を実行することにより設定できる場合もある。  
時計１８は、ＣＰＵ１１あるいは外部からの命令に応じて実時間を提示する。また、ＣＰＵ１１、アプリケーションプログラムなどからの命令によりその実時間を任意に変更することができる。
【００２１】
ＣＰＵボード１０の動作は、ＯＳ２５が管理する。ＯＳ２５はＣＰＵボード１０の時計１８とは独立した時計機能を備えている。ＯＳ２５の時計機能に関しては、原則としてＯＳ２５が独自に時刻を管理する。しかし例外的に、ＯＳ２５の時計機能が、ＣＰＵボード１０の時計と連携する場合がある。例えば、ＯＳ２５が、システムの起動時にＣＰＵボード１０の時計１８の時刻を参照してＯＳ２５の時計機能を初期化し、システム停止時にＯＳ２５の時計機能を参照してＣＰＵボード１０の時計を同期させるという実装もある。このような連携のタイミングはＯＳ２５の実装により異なる。
【００２２】
アプリケーションプログラム３１は、加速試験において評価対象となるソフトウェアであり、所要の処理を実行すると共に、不具合が発生した場合はログファイル４１に発生日時と不具合内容を含む不具合情報を記録するようにコーディングされている。不具合の発生日時は、ＯＳ２５内の時計の示す日時である。即ち、不具合の発生日時は実時間ではなく加速された時間である。  
時刻加速プログラム３２は、加速試験前の準備段階で一度だけ起動し、ＯＳ２５の時刻の経過速度をｎ倍に増加させる。具体的は、ＯＳ２５内のデータである加速度変数４２を倍数ｎに書き換える。通常は、加速度変数４２には、「１」が設定されており、不図示の時刻カウントプログラムが、タイマ割り込みのたびにＯＳ２５の時刻に加速度変数４２の値「１」を加算することで、ＯＳ２５の時刻が更新される。従って、加速度変数４２の値を「ｎ」とすることで、ＯＳ２５の時刻の進みをｎ倍に加速することができる。
【００２３】
時刻加速度変更プログラム３３は、指定されたＯＳ２５の時刻に起動し、ＯＳ２５の時刻の進みを指定された状態に変更する。具体的には、加速度変数４２の値を指定された「ｍ（＜ｎ）」に変更する。  
調査プログラム３４は、アプリケーションプログラムの稼働中に不具合に関連した状態、内容を収集する。
【００２４】
図３は、加速試験装置１における加速試験のフローを示す図である。
【００２５】
ステップＳ０１において、加速試験装置１を含む加速試験システムを立ち上げる。ステップＳ０２において、入出力装置２から加速数「ｎ」を指定して、時刻加速プログラム３２を起動する。時刻加速プログラム３２は、ＯＳ２５内のデータである加速度変数４２を「ｎ」に書き換える。これにより、ＯＳ２５の時刻はｎ倍に加速される。
【００２６】
ステップＳ０３において、アプリケーションプログラム３１を起動し、アプリケーションプログラム３１の加速試験を開始する。加速試験において不具合が無ければ（ステップＳ０４  Ｎｏ）、加速試験は継続する。一方、加速試験において不具合が発生すれば（ステップＳ０４  Ｙｅｓ）、ステップＳ０５において、アプリケーションプログラム３１に組み込まれた不具合ログ記録ブロックが、不具合発生時刻と不具合内容などの情報をログとしてログファイル４１に記録する。そして、ステップＳ０６において、アプリケーションプログラム３１の実行を終了する。
【００２７】
この後、ユーザは、ログファイル４１に記録されたログを検討し、不具合の内容と共に不具合発生時刻を把握する。そして、ユーザはこの不具合発生時刻よりも過去に遡った時刻を調査開始時刻として決定する。また、ユーザは調査すべき内容を決定する。なお、この調査開始時刻は、不具合発生時刻と同様に実時刻ではなくＯＳ２５の加速された時刻である。
【００２８】
図４は、加速試験装置１における加速試験の不具合調査フローを示す図である。
【００２９】
ステップＳ１１において、加速試験装置１を含む加速試験システムを立ち上げる。ステップＳ１２において、時刻加速度変更プログラム３３を起動する。この際、入出力装置２から調査開始時刻と変更加速数「ｍ」とを指定する。時刻加速度変更プログラム３３は、ＯＳ２５の時計を監視して調査開始時刻になるまで待機する。ステップＳ１３において、入出力装置２から加速数「ｎ」を指定して、時刻加速プログラム３２を起動する。時刻加速プログラム３２は、ＯＳ２５内のデータである加速度変数４２を「ｎ」に書き換える。これにより、ＯＳ２５の時刻はｎ倍に加速される。
【００３０】
ステップＳ１４において、アプリケーションプログラム３１を起動し、アプリケーションプログラム３１の加速試験を開始する。時刻加速度変更プログラム３３は、定期的に、例えば１秒ごとにＯＳ２５の現在時刻を調べる。そして、現在時刻が調査開始時刻を初めて越えたとき（ステップＳ１５  Ｙｅｓ）に、ステップＳ１６において、加速度変数４２の値を指定された変更加速数「ｍ」に変更する。これ以降、アプリケーションプログラム３１は、加速試験時よりも遅い速度で稼動する。なお、変更加速数「ｍ」は「１」として通常の速度に変更することが多い。
【００３１】
ステップＳ１７において、ユーザは、調査プログラム３４を起動して、不具合に関連したデータを収集する。起動する調査プログラム３４は、不具合の内容に対応したものである。不具合の原因分析のために調査する内容としては、例えば、ＣＰＵ使用率、メモリ使用量、スタック使用量、ディスク使用量などが挙げられる。
【００３２】
[第１の実施の形態のバリエーション]  
なお、調査プログラム３４の起動は、ユーザが手動で行うのではなく、自動で起動するように構成しても良い。このため、図４に示すステップを次のように変更する。  
例えば、ユーザは、不具合の内容に応じた情報を収集するように予め起動する調査プログラム３４を抽出する。図４のステップＳ１２において、時刻加速度変更プログラム３３を起動する際、ユーザは、入出力装置２から調査開始時刻、変更加速数に加えて起動させる調査プログラム３４を指定する。起動させる調査プログラム３４を特定する情報は、ログファイル４１に記録される。
【００３３】
ステップＳ１７において、時刻加速度変更プログラム３３は、加速度変数４２の値を指定された変更加速数に変更すると共に、ログファイル４１に記録されている調査プログラム３４を起動する。なお、調査プログラム３４は、一度起動するとその後はタイマ起動によって所定周期でデータ収集を行う。これによって、ユーザの操作入力を不要として迅速なタイミングでのプログラム起動を行えるため、データの収集を確実に行うことができる。
【００３４】
[第２の実施の形態]  
第２の実施の形態では、ＯＳ２５の時計を加速するだけでなく、クロック１７のクロック周波数を増加する点が第１の実施の形態と異なっている。従って、第１の実施の形態と同一の部位には同一の符号を付して詳細の説明は省略する。
【００３５】
第２の実施の形態では、図３に示すステップを次のように変更する。  
ステップＳ０１において、加速試験装置１を含む加速試験システムを立ち上げる。そして、クロック１７のクロック周波数を変更（加算）する。このクロック周波数の変更は、ＣＰＵボード１０を操作して行っても良く、入出力装置２からＣＰＵ１１に対してクロック周波数の変更指示を入力して行っても良い。ステップＳ０２において、入出力装置２から加速数「ｎ」を指定して、時刻加速プログラム３２を起動する。このとき指定する加速数「ｎ」は、変更したクロック周波数の増加割合に対応させる。
【００３６】
この処理により、加速試験装置１はクロック周波数及びＯＳ２５の時計ともに加速された状態で稼動する。以降のステップＳ０３〜Ｓ０６については第１の実施の形態と同様であるため、その詳細の説明は省略する。
【００３７】
更に、第２の実施の形態では、図４に示すステップを次のように変更する。  
ステップＳ１１〜Ｓ１５は、第１の実施の形態と同様であるため、その詳細の説明は省略する。現在時刻が調査開始時刻を初めて越えたとき（ステップＳ１５  Ｙｅｓ）に、ステップＳ１６において、時刻加速度変更プログラム３３は、加速度変数４２の値を指定された変更加速数「ｍ」に変更する。そして、時刻加速度変更プログラム３３は、ＣＰＵ１１に対してクロック周波数を変更加速数「ｍ」に対応した値とする変更指示を出力する。これ以降、アプリケーションプログラム３１は、加速試験時よりも遅い指定した速度で稼動する。
【００３８】
ステップＳ１７において、ユーザは、調査プログラム３４を起動して、不具合に関連したデータを収集する。  
なお、第２の実施の形態においても、第１の実施の形態のバリエーションで説明したように、調査プログラム３４の起動を、ユーザが手動で行うのではなく、自動で起動するように構成しても良い。この内容の詳細については、既に説明しているため再度の説明は省略する。
【００３９】
以上説明した各実施の形態によれば、加速された状態において不具合詳細を調査しようとした場合、状態取得を行う各種プログラムあるいはコマンドが正常に動作しないという問題点を解決することができる。従って、加速試験における再現性のある事象について、状況を詳細に調査することが可能となる。
【００４０】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【００４１】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。  
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００４２】
１…加速試験装置、２…入出力装置、１０…ＣＰＵボード、１１…ＣＰＵ、１２…ＲＯＭ、１３…プログラムＲＡＭ、１４…プロセス入出力インターフェース、１５…データＲＡＭ、１６…入出力インターフェース、１７…クロック、２２…加速比率測定プログラム、２３…時計加速プログラム。
【図１】
2011197820.tif 000003
【図２】
2011197820.tif 000004
【図３】
2011197820.tif 000005
【図４】
2011197820.tif 000006