JP2004334541A - 標準api使用方法の検査装置及びその検査方法と、標準api使用方法検査プログラム及びそのプログラムを記録した記録媒体と、アプリケーション検査システム及びその検査方法 - Google Patents
標準api使用方法の検査装置及びその検査方法と、標準api使用方法検査プログラム及びそのプログラムを記録した記録媒体と、アプリケーション検査システム及びその検査方法 Download PDFInfo
- Publication number
- JP2004334541A JP2004334541A JP2003129661A JP2003129661A JP2004334541A JP 2004334541 A JP2004334541 A JP 2004334541A JP 2003129661 A JP2003129661 A JP 2003129661A JP 2003129661 A JP2003129661 A JP 2003129661A JP 2004334541 A JP2004334541 A JP 2004334541A
- Authority
- JP
- Japan
- Prior art keywords
- application
- inspection
- api
- standard api
- scenario
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】本発明は、アプリケーションの標準API仕様への適合性試験に要する資源等を削減し、かつ、より精緻な検査を行えるようにすることを目的とする。
【解決手段】検査を司るベリファイアと、アプリケーションを起動するランチャと、クライアントの動作について記述するシナリオを作成するエディタとを備え、更に、ベリファイアは、アプリケーションから渡された標準APIの使用方法に関する情報を各機能部に提供する手段と、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供する手段と、アプリケーションの標準APIに関する準拠性を検査する手段と、シナリオに従ってクライアントの動作を模擬する手段と、提供されるAPIプラットフォームを使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証する手段とを備える。
【選択図】 図1
【解決手段】検査を司るベリファイアと、アプリケーションを起動するランチャと、クライアントの動作について記述するシナリオを作成するエディタとを備え、更に、ベリファイアは、アプリケーションから渡された標準APIの使用方法に関する情報を各機能部に提供する手段と、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供する手段と、アプリケーションの標準APIに関する準拠性を検査する手段と、シナリオに従ってクライアントの動作を模擬する手段と、提供されるAPIプラットフォームを使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証する手段とを備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、アプリケーションが標準仕様として定められたAPI(Application Programming Interface)を正しく使用しているかどうかを検査する標準API使用方法の検査装置及びその検査方法と、その検査方法の実現に用いられる標準API使用方法検査プログラム及びそのプログラムを記録した記録媒体と、その検査装置を用いてアプリケーションが標準APIを正しく使用しているのかを検査するアプリケーション検査システム及びその検査方法とに関する。
【0002】
【従来の技術】
従来、JAINやParlay といった団体によって、アプリケーション・プログラミング・インタフェース(API)の仕様は標準化されている。しかし、従来のAPI仕様には、使用方法に柔軟性を持たせるために、APIの具体的なパラメータ値や、APIの呼び出しシーケンスについて規定を定めていない。このため、標準APIの仕様を採用するベンダによって、その解釈に差異が生じる。
【0003】
また、標準APIに準拠したアプリケーションを採用してサービスを提供するサービスプロバイダについてみるならば、サービスプロバイダは、各アプリケーションにおける標準APIの使用方法について、仕様書との照合を行うか、標準APIを搭載した実プラットフォーム上で動作試験を行うか、実プラットフォームの動作を擬似する擬似装置上で動作確認を行う必要があり、標準APIを用いたアプリケーションによるサービス提供の可能性の判別には、多大な試験、試験機の稼働を要するといった問題があった。
【0004】
また、公知の技術として提供されているAPI−プラットフォーム(Platform :PF)の動作そのものを擬似する擬似装置では、アプリケーションのある特定の動作による正常性については確認できるものの、その動作シナリオが固定的で限られているために、アプリケーションが適正な標準APIの使用方法を遵守しており、その動作によってPF側に異常をもたらすことがないかといったような確認を行うことはできない。
【0005】
その他に、本発明に関連する従来技術として、システム開発のオブジェクト指向設計において、ユースケースとAPIとの対応表を用いることにより、既存のAPIの組み合せから、新たに複雑な動作を行うシナリオを容易に設計するという処理を行う発明がある(例えば、特許文献1参照)。しかしながら、この従来技術は、APIの検査を行うものでない。
【0006】
また、本発明に関連する従来技術として、高級言語からコンピュータ用中間言語に変換したプログラムをネットワークを介して取得し、その取得したプログラムを検証するという処理を行う発明がある(例えば、特許文献2参照)。しかしながら、この従来技術は、スタックの深さ(記憶容量)に関する検査を行っており、APIの検査を行うものでない。
【0007】
【特許文献1】
特開2000−235485
【特許文献2】
特開2001−142720
【0008】
【発明が解決しようとする課題】
このように、従来技術に従っていると、アプリケーションが標準仕様として定められたAPIを正しく使用しているかどうかを検査するために、多大な試験機資源や費用や時間が要求されることになるという問題があるとともに、検査内容が固定的で限られていることで、十分な検査が行えないという問題がある。
【0009】
本発明はかかる事情に鑑みてなされたものであって、アプリケーションの標準API仕様への適合性試験に要する試験機資源、費用、時間を削減し、かつ、より精緻な検査を行うことができるようにすることで、標準API仕様に準拠するアプリケーションのサービス提供機会の増大を図ることができるようにする新たな検査技術の提供を目的とする。
【0010】
【課題を解決するための手段】
(1)本発明に係る標準API使用方法の検査装置の構成
この目的を達成するために、本発明に係る標準API使用方法の検査装置では、標準APIに準拠して開発されたアプリケーションが標準APIを正しく使用しているのかを検査するために、(イ)検査を司るベリファイアと、(ロ)アプリケーションを起動するランチャと、(ハ)クライアントの動作について記述するシナリオを作成するエディタとを備え、更に、ベリファイアは、▲1▼アプリケーションから渡された標準APIの使用方法に関する情報をベリファイアの各機能部に提供するAPIトレーサ部と、▲2▼標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供するAPI−PF部と、▲3▼アプリケーションの標準APIに関する準拠性を検査する検査管理部と、▲4▼エディタの作成したシナリオに従ってクライアントの動作を模擬するシナリオ実行部と、▲5▼API−PF部を使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証するベリファイア制御部と、▲6▼エディタの作成したシナリオの実行に伴って発行されるメソッドコール情報を受け取りメモリに蓄積するシーケンスデータ部と、▲7▼ベリファイアの各機能部からアプリケーションの試験に関する情報を受け取りメモリに蓄積するレポートデータ部と、▲8▼シーケンスデータ部により蓄積されるメソッドコール情報を出力するシーケンスブラウザと、▲9▼レポートデータ部により蓄積されるアプリケーションの試験に関する情報を出力するレポートブラウザとを備えるように構成する。
【0011】
この構成を採るときにあって、API−PF部は、仕様解釈の異なるその他のAPI−PF部と交換可能となるようにとパッケージ化されて実装されることがある。ここで、このパッケージ化を実現するために、標準APIの実行環境と検査実行制御・検査シナリオとの間を標準APIの実装に依存しないインタフェースを介して接続するようにしている。
【0012】
また、準拠性の検査に用いられる判定基準を自在に変更可能となるようにするために、準拠性の検査に用いられる判定基準を格納する外付けの検査ファイルから、準拠性の検査に用いられる判定基準を入力する判定基準入力部を備えることがある。
【0013】
また、検査管理部は、例えば、使用者からの指示に従って、あらかじめこういう場合にはこういう例外イベントを発生するということを設定しておいて、その条件が成立するときに例外イベントを発生することで、標準APIで定められたアプリケーションに対する例外イベントを自動的に発生したり、その条件が成立するときに発生する例外イベントの候補を複数設定しておくようにして、使用者からの指示に従って、その中から例外イベントを選択して発生することで、標準APIで定められたアプリケーションに対する例外イベントを手動で発生することがある。
【0014】
また、シナリオ実行部は、アプリケーションの成熟度に合わせた検査などを実行するために、エディタにより作成された複数のシナリオの中から1つのシナリオを選択して、その選択したシナリオに従ってクライアント(具体的にはアプリケーションを利用する機器)の動作を模擬することがある。
【0015】
以上の各処理手段が動作することで実現される本発明に係る標準API使用方法の検査方法はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどの記録媒体に記録して提供したり、ネットワークを介して提供することができる。
【0016】
このように構成される本発明に係る標準API使用方法の検査装置では、エディタがクライアントの動作について記述するシナリオを作成することで検査の準備が完了した後に、ランチャが検査対象のアプリケーションを起動すると、先ず最初に、APIトレーサ部は、アプリケーションから渡された標準APIの使用方法に関する情報をベリファイアの各機能部に提供する。
【0017】
次に、検査管理部は、アプリケーションの標準APIに関する準拠性を検査する。このとき、外付けの検査ファイルから入力された準拠性の検査に用いられる判定基準を用いて、その準拠性を検査する。
【0018】
次に、API−PF部は、標準APIに関する準拠性の検査を終えたアプリケーションに対して、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームを提供する。このとき、APIプラットフォームはAPIプラットフォームを提供するベンダによって仕様解釈などに相違があることから、独立したクラスファイルとすることで交換可能となっている。
【0019】
最後に、アプリケーションについての要求仕様の実現度の検証に入って、シナリオ実行部がエディタの作成したシナリオに従ってクライアントの動作を模擬し、これを受けて、ベリファイア制御部は、API−PF部を使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証する。このとき、検査管理部は、使用者からの指示に応答して、標準APIで定められたアプリケーションに対する例外イベントを発生する。
【0020】
このようにしてアプリケーションに対する検査を行うときに、シーケンスデータ部は、シナリオの実行に伴って発行されるメソッドコール情報を受け取ってメモリに蓄積し、レポートデータ部は、ベリファイアの各機能部からアプリケーションの試験に関する情報を受け取ってメモリに蓄積する。
【0021】
このようにして、本発明に係る標準API使用方法の検査装置は、アプリケーションが標準仕様として定められたAPIを正しく使用しているかどうかを検査するのである。
【0022】
以上に説明したことから分かるように、本発明に係る標準API使用方法の検査装置を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、実プラットフォームを用いることなく標準APIへの適合性を判別することができるようになるとともに、標準APIに関する準拠性の判別機能を持たず、しかも、アプリケーションの動作が固定的なものとなる擬似装置を用いていたのでは判別不能であった標準APIへの適合性についても判別することができるようになる。
【0023】
そして、本発明に係る標準API使用方法の検査装置では、標準APIの実行環境と検査実行制御・検査シナリオとの間を標準APIの実装に依存しないインタフェースを介して接続することにより、標準APIの種類に合わせた標準APIへの実行環境の差し替えが可能となり、これにより、標準APIの種類に依存することなく、様々な標準API仕様への適合性を検査することができるようになるとともに、新たな標準APIに対しても柔軟な拡張により対応することができるようになる。
【0024】
そして、本発明に係る標準API使用方法の検査装置では、プラットフォームベンダ毎に異なる標準APIの仕様解釈の差異を吸収するために、検査管理部とその検査管理部が実行する準拠性検査に用いる判定基準を格納する検査ファイルとを分離することにより、仕様解釈ごとに検査ファイルを差し替えることを可能にし、これにより、プラットフォームベンダ毎に異なる標準APIの仕様解釈の差異を吸収することができるようになる。
【0025】
そして、本発明に係る標準API使用方法の検査装置では、アプリケーションを動作させるために必要な例外イベントを本発明の検査装置の側から手動又は自動的に送出することにより、アプリケーションの動作パターンを複数擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0026】
そして、本発明に係る標準API使用方法の検査装置では、アプリケーションを利用する機器の動作を標準のフォーマットを用いて記述されたシナリオにより記述し、そのシナリオを読み込むことで実行させることにより、連続した動作や、繰り返し動作、休止など、よりアプリケーションのサービス提供形態を想定した機器動作を擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0027】
このようにして、本発明を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、アプリケーションの標準API仕様への適合性試験に要する試験機資源、費用、時間を削減し、かつ、より精緻な検査を行うことができるようになる。
【0028】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションのサービス提供機会の増大を図ることができるようになる。
【0029】
(2)本発明に係るアプリケーション検査システムの構成
一般的に、アプリケーションの開発は成熟度を上げながら行われる。これから、標準APIに準拠して開発するアプリケーションの示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようにする技術を構築する必要がある。
【0030】
本発明に係るアプリケーション検査システムは、この技術の構築を実現するものであって、▲1▼本発明に係る標準API使用方法の検査装置で構成され、クライアントの動作について記述して、アプリケーションの成熟度に応じて用意される複数のシナリオを作成して、それを使って検査対象のアプリケーションが標準APIを正しく使用しているのかを検査する検査装置と、▲2▼検査装置により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断する判断装置と、▲3▼判断装置がアプリケーションの不合格を判断する場合に、アプリケーションの開発者に対して、アプリケーションの修正を指示し、一方、判断装置がアプリケーションの合格を判断する場合に、検査装置に対して、次の成熟度に対応付けて用意されるシナリオを使って、検査対象のアプリケーションの検査を行うことを指示する指示装置とを備えるように構成する。
【0031】
このように構成されるときにあって、指示装置は、アプリケーションの修正指示に応答して検査対象のアプリケーションが修正される場合に、検査装置に対して、最も低い成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示したり、その修正前のアプリケーションが合格したシナリオの成熟度の次の成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示する。
【0032】
このように構成される本発明に係るアプリケーション検査システムでは、検査装置を使って、検査対象のアプリケーションが標準APIを正しく使用しているのかを検査し、その検査により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断する。
【0033】
この判断によりアプリケーションの合格を判断する場合には、検査装置に対して、次の成熟度に対応付けて用意されるシナリオを使って、検査対象のアプリケーションの検査を行うことを指示する。
【0034】
このようにして成熟度を順次上げながら検査対象のアプリケーションの検査を行っていくときに、アプリケーションの不合格を判断する場合には、アプリケーションの開発者に対して、アプリケーションの修正を指示する。
【0035】
この修正指示を受けて、アプリケーションの開発者は、アプリケーションを修正して、その修正したアプリケーションを検査対象として検査を依頼してくるので、再び、検査装置を使って、検査対象のアプリケーションが標準APIを正しく使用しているのかを検査し、その検査により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断するすることを繰り返していく。
【0036】
このようにして、本発明に係るアプリケーション検査システムを用いることで、標準APIに準拠して開発するアプリケーションの示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようになる。
【0037】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションの開発を効率的に行うことができるようになる。
【0038】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【0039】
図1に、本発明を具備するAPIベリファイア1のソフトウェア構成の一実施形態例を図示する。
【0040】
本発明のAPIベリファイア1は、標準APIに準拠して開発された検査対象のアプリケーション2が標準APIを正しく使用しているのかを検査する処理を行うものであって、検査の中心的処理を司るベリファイア10を備える他に、APIベリファイア1の構成要素として用意されるアプリケーションランチャ11、シナリオエディタ12、シーケンスブラウザ13、使用期限設定ツール14及びレポートブラウザ15を備え、さらに、ベリファイア10に備えられて、APIベリファイア1に使用される構成要素として用意されるシナリオプロセッサ部20、シーケンスデータ部21、プロテクト部22及びレポートデータ部23を備える。
【0041】
ここで、11aはアプリケーションランチャ11に備えられるアプリケーション起動部である。
【0042】
そして、この検査の中心的処理を司るベリファイア10は、APIトレーサ部30と、検査管理部31と、API−PF部32と、ベリファイア制御部33と、ユーティリティ部34とを備える。
【0043】
次に、これらの各構成要素の機能について説明する。
【0044】
アプリケーション起動部11aは、アプリケーション開発者の作成した標準APIに準拠するアプリケーション2を起動するアプリケーションランチャ11の機能を果たす。アプリケーションランチャ11により起動されたアプリケーション2は、ベリファイア10に移る。
【0045】
ベリファイア10では、まず、APIトレーサ部30で、アプリケーション2とAPI−PF部32との間の仲立ちをし、検証のための情報やシーケンスデータなどを収集して、レポートデータ部23を含む各機能ブロックに提供する。
【0046】
次に、検査管理部31で、アプリケーション開発者の作成したアプリケーション2の標準APIに関する準拠性を検査する。
【0047】
例えば、メソッドを仕様通り使用しているのかとか(メソッド名に誤りがないかとか)、アプリケーション2が使用するAPIのパラメータに値が入力されているのかとか、その値の範囲が正しいのかとか、その値が該当するオブジェクトの値と等しいのかとか、該当のオブジェクトが生存しているのかといったような標準APIに関する準拠性の検査を、標準APIの使用方法の検査の内容を定めた検査クラスにより行う。なお、後述するように、この検査クラス自体は選択可能となっている。
【0048】
そして、この検査に応じて、例えば、バグなどのベリファイア10の実行が不可能となるような致命的なErrorレベルのメソッドの使用方法であるとか、ファイル、ディレクトリへのアクセス権の不備などのユーザ対処により改善できる可能性があるWARNINGレベルのメソッドの使用方法であるとか、正しい使用方法にて使用していることを示すOKレベルのメソッドの使用方法であるとかに分類する。
【0049】
ここで、この標準APIに関する準拠性の検査結果については、レポートデータ部23に報告する。
【0050】
検査管理部31は、この他に、アプリケーション2の検証実行時に、手動により例外状況(例外イベント)を発生させる機能を使用者(アプリケーション開発者など)に提供する。この検査クラスは標準仕様の変更、または解釈の変更に柔軟に対応できるように、独立したクラスファイルとしてアプリケーション2に対して提供する。
【0051】
次に、API−PF部32で、標準APIに関する準拠性の検査を終えたアプリケーション2に対して、サービスプロバイダの要求する仕様実現度判定のための準備として、インタフェース規定および実装規定に基づいたAPIプラットフォームを提供する。
【0052】
このAPIプラットフォームは、APIプラットフォームを提供するベンダによって仕様解釈などに相違があるため、独立したクラスファイルとすることで取り替え可能となっている。この取り替えを可能とするために、API−PF部32とベリファイア制御部33との間と、API−PF部32とシナリオプロセッサ部20との間については、標準APIのPFの種類やバージョンに依存しない、Platform Access Interface によって接続される構成が採られている。
【0053】
ここで、サービスプロバイダの要求する仕様とは、サービスプロバイダがクライアントに対してサービスを提供するために、アプリケーションに対して要求する仕様であり、サービスプロバイダごとに異なる。例えば、48時間以上連続運転できることとか、連続運転状態でのCPUやメモリの使用率が何パーセント以内にあることといったようなものが仕様として要求されることになる。
【0054】
最後に、ベリファイア制御部33で、ベリファイア10の起動および実行制御を行い、API−PF部32の提供するAPIプラットフォームを使って、アプリケーション2がサービスプロバイダの要求する仕様をどの程度実現しているのかの検証を自動で行い、その結果をレポートデータ部23に報告する。
【0055】
ベリファイア10には、以上に説明した各機能の他に、ユーティリティ部34が備えられており、このユーティリティ部34は、ベリファイア10を構成する各機能部が使用するメソッドライブラリなどのユーティリティを提供する。
【0056】
APIベリファイア1とベリファイア10とにまたがって存在する、シナリオプロセッサ部20、シーケンスデータ部21、プロテクト部22及びレポートデータ部23は、ベリファイア制御部33からアプリケーション2についての要求仕様の実現度検査に関する各種の情報を得る。
【0057】
次に、これらの各構成要素の機能について説明する。
【0058】
シナリオプロセッサ部20は、アプリケーション2の要求仕様の実現度検証時に、要求仕様が含む端末操作に関する自動実行する機能(端末操作を模擬する機能)を有する他、その自動実行のためのシナリオファイルを作成する機能をシナリオエディタ12として、APIベリファイア1に提供する。
【0059】
シーケンスデータ部21は、アプリケーション2の要求仕様の実現度検証時に発行されるメソッドコール情報を図2に示すような形でシーケンスデータとして蓄積する他、その情報を表示する機能をシーケンスブラウザ13として、APIベリファイア1に提供する。
【0060】
プロテクト部22は、ベリファイア10の使用を制限する機能および使用期限を設定する機能を使用期限設定ツール14として、APIベリファイア1に提供する。
【0061】
レポートデータ部23は、前述のとおり、ベリファイア10を構成する各構成要素からアプリケーション2に関する試験データや試験結果の情報を受け、その情報を蓄積する他、図3に示すような表示画面を使って、その情報を表示し編集する機能をレポートブラウザ15として、APIベリファイア1に提供する。
【0062】
これらのAPIベリファイア1とベリファイア10とにまたがって存在する構成要素を受けて、APIベリファイア1は、前述のアプリケーションランチャ10の他に、アプリケーション2の要求仕様の実現度検証時における端末操作を自動実行させるためのシナリオファイルを作成するシナリオエディタ12と、要求仕様の実現度検証時に発行されるメソッドコール情報を表示するシーケンスブラウザ13と、ベリファイア10の使用を制限する機能および使用期限を設定する機能を実現する使用期限設定ツール14と、アプリケーション2に関する試験データや試験結果の情報を表示し編集するレポートブラウザ15とを備えることになる。
【0063】
次に、図4及び図5を使って、検査管理部31の機能構成と動作とについて、さらに詳細に説明する。
【0064】
図4は、検査管理部31における検査機能の機能構成と動作とを示す図である。この図に示すように、検査管理部31は、検査管理機能40と、検査クラスローダ画面41と、マニフェスト読み込み機能42と、検査クラス読み込み機能43と、検査実行機能44とを備え、更に、外付けのファイルとして用意される検査ファイル45を接続する。
【0065】
この検査ファイル45は、検査クラスの目録を表すマニフェストファイル46と、実際の検査判定項目を示す検査クラス47(チェックのロジックが埋め込まれているプログラム)とからなる。
【0066】
本発明のAPIベリファイア1の使用者は、あらかじめ、検査クラスを記述したマニフェストファイル46と検査クラス47とを用意する。
【0067】
このマニフェストファイル46はマニフェスト読み込み機能42によって読み込まれ、アプリケーションランチャ11を通して、使用者によってあらかじめ使う検査クラス47を参照、選択することができるようになる。そして、そのようにして選択された検査クラス47は検査クラス読み込み機能43によって読み込まれ、検査実行機能44の実行の判定基準として用いられて、アプリケーション2の標準APIに関する準拠性の検査が行われて、その検査結果がレポートデータ部23に通知されることになる。
【0068】
このようにして、検査管理部31は、外付けのファイルとして用意される検査ファイル45の中から準拠性の判定基準となる検査クラス47を選択して、それを使ってアプリケーション2の標準APIに関する準拠性の検査を行って、その検査結果をレポートデータ部23に出力するように処理するのである。これにより、標準仕様の変更、または解釈の変更に柔軟に対応できるようになる。
【0069】
図5は、検査管理部31におけるException発生・管理機能の機能構成と動作とを示す図である。この図に示すように、検査管理部31は、Exception発生・管理機能50と、Exception発生対象設定画面51と、発生Exception選択画面52とを備える。
【0070】
本発明のAPIベリファイア1の使用者は、Exception発生対象設定画面51により、アプリケーション2のどのインタフェースに対してExceptionを発生させるのかを決定し、発生Exception選択画面52によって、どのExceptionを発生させるかを決定して入力する。このようにして発生されるExceptionについては、レポートデータ部23に対して通知される。
【0071】
このようにして、検査管理部31は、アプリケーション2の検証実行時に、手動により例外状況(例外イベント)を発生させる機能を使用者に提供するように処理するのである。ここで、ある状態になったら自動的にある例外イベントを発生するようにと設定することも可能であり、この場合には、その状態になると、自動的に例外イベントを発生することになる。
【0072】
このような例外イベントの発生機能が用意されることで、アプリケーションの動作パターンを複数擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0073】
次に、図6ないし図9を使って、シナリオプロセッサ部20の機能構成と動作とについて、さらに詳細に説明する。
【0074】
図6は、シナリオプロセッサ部20の機能構成と動作とを示す図である。この図に示すように、シナリオプロセッサ部20は、シナリオの実行を受け持つシナリオ実行部60と、シナリオファイルを読み込むファイルI/O部61と、タグ定義ファイル62によって規定され、標準のフォーマットであるXML(Extensible Markup Language)によって記述されたシナリオファイル63と、検査に用いるシナリオを使用者が選択するためのシナリオメニュー画面64と、使用者が用いたいシナリオを自由かつ容易に作成するためのシナリオエディタ画面65と、シナリオ作成時に使用者にシナリオ作成方法を示すヘルプ表示画面66とからなる。
【0075】
シナリオプロセッサ部20(シナリオエディタ12)は、図7に示すようなシナリオエディタ画面65を使って使用者と対話することで、例えば、電話番号“12345”の電話をオンフックし、続いて、電話番号“23456”の電話をオンフックし、続いて、電話番号“12345”の電話から電話番号“23456”の電話を呼び出し、続いて、500ms待ってから、電話番号“23456”の電話をオフフックし、続いて、500ms待ってから、電話番号“23456”の電話をオンフックするというようなアプリケーション2を利用する機器の動作を模擬するシナリオを作成する。
【0076】
このようにして作成されたシナリオファイル63は、図8に示すように、標準のフォーマットであるXMLによって記述されて、図9に示すようなシナリオ実行画面を使って実行されることになる。
【0077】
このように構成される本発明のAPIベリファイア1では、シナリオエディタ12がアプリケーション2を利用する機器の動作について記述するシナリオを作成することで検査の準備が完了した後に、アプリケーションランチャ11が検査対象のアプリケーション2を起動すると、先ず最初に、APIトレーサ部30は、アプリケーション2から渡された標準APIの使用方法に関する情報をベリファイア10の各機能部に提供する。
【0078】
次に、検査管理部31は、アプリケーション2の標準APIに関する準拠性を検査する。このとき、外付けの検査ファイル45から入力された準拠性の検査に用いられる判定基準を用いて、その準拠性を検査する。
【0079】
次に、API−PF部32は、標準APIに関する準拠性の検査を終えたアプリケーション2に対して、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームを提供する。このとき提供されるAPIプラットフォームはAPIプラットフォームを提供するベンダによって仕様解釈などに相違があることから、独立したクラスファイルとすることで交換可能となっている。
【0080】
最後に、アプリケーション2についての要求仕様の実現度の検証に入って、シナリオプロセッサ部20がシナリオエディタ12の作成したシナリオに従ってアプリケーション2を利用する機器の動作を模擬し、これを受けて、ベリファイア制御部33は、API−PF部32を使い、アプリケーション2を利用する機器の動作に応答して動作するアプリケーション2についての要求仕様の実現度を検証する。このとき、検査管理部31は、使用者からの指示に応答して、標準APIで定められたアプリケーションに対する例外イベントを発生する。
【0081】
そして、このアプリケーション2に対する検査を行うときに、シーケンスデータ部21は、シナリオの実行に伴って発行されるメソッドコール情報を受け取ってメモリに蓄積し、レポートデータ部23は、ベリファイア10の各機能部からアプリケーション2の試験に関する情報を受け取ってメモリに蓄積する。
【0082】
このようにして、本発明のAPIベリファイア1は、アプリケーション2が標準仕様として定められたAPIを正しく使用しているかどうかを検査するのである。
【0083】
通常の場合、アプリケーション2の開発は成熟度を上げながら行われる。これから、標準APIに準拠して開発するアプリケーション2の示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようにする技術を構築する必要がある。
【0084】
図10に、この技術を実現する本発明のアプリケーション検査システム100の一実施形態例を図示する。ここで、図中に示す10、11、21、23は、それぞれ図1で説明したベリファイア、アプリケーションランチャ、シーケンスデータ部、レポートデータ部を示している。
【0085】
この図に示すように、本発明のアプリケーション検査システム100は、検査装置200と、判断装置300と、指示装置400とを備える。
【0086】
検査装置200は、上述した本発明のAPIベリファイア1で構成されて、検査対象のアプリケーション2が標準APIを正しく使用しているのかを検査する処理を行う。
【0087】
ここで、検査装置200は、本発明のアプリケーション検査システム100に実装される場合、アプリケーション開発者からのアプリケーションの検査要求を受け付ける検査受付部201と、シナリオエディタ12により作成された複数のシナリオ202の中からベリファイア10の検査対象となるシナリオを選択するシナリオ選択部203とを備えることになる。
【0088】
また、検査装置200は、本発明のアプリケーション検査システム100に実装される場合、アプリケーション2を利用する機器の動作を模擬するシナリオ202として、アプリケーション2の成熟度に応じて用意される複数のシナリオ202(例えば、試験の難易度に応じた複数のシナリオ202)を作成することになる。
【0089】
例えば、4つのシナリオ202を作成する場合に、▲1▼最も成熟度の低いアプリケーション2に対応付けられるシナリオ202として、例えば、通常の1コールで構成されるような正常系の動作を模擬するものを作成し、▲2▼成熟度の低いアプリケーション2に対応付けられるシナリオ202として、例えば、呼び出し中の放棄などを含むような準正常系の動作を模擬するものを作成し、▲3▼成熟度の高いアプリケーション2に対応付けられるシナリオ202として、例えば、サーバ異常による通話切断などを含むような異常系の動作を模擬するものを作成し、▲4▼最も成熟度の高いアプリケーション2に対応付けられるシナリオ202として、例えば、異常系も組み合わせた48時間連続運転を模擬するようなものを作成するというように、アプリケーション2の成熟度に応じて用意される複数のシナリオ202を作成するのである。
【0090】
判断装置300は、検査装置200により得られた準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーション2の合否を判断する。
【0091】
指示装置400は、判断装置300がアプリケーション2の不合格を判断する場合には、アプリケーション2の開発者に対して、アプリケーション2の修正を指示し、一方、判断装置300がアプリケーション2の合格を判断する場合には、検査装置200に対して、次の成熟度に対応付けて用意されるシナリオ202を使って、検査対象のアプリケーション2の検査を行うことを指示する。
【0092】
次に、図11の処理フローに従って、本発明のアプリケーション検査システム100の実行する処理について詳細に説明する。
【0093】
本発明のアプリケーション検査システム100は、アプリケーション開発者からアプリケーション2を指定して検査要求が発行されると、図11の処理フローに示すように、先ず最初に、ステップ10で、アプリケーション開発者から検査開始シナリオの選択指示があるのか否かを判断する。
【0094】
後述するように、指示装置400がアプリケーション開発者に対して、検査対象のアプリケーション2の修正を指示すると、アプリケーション開発者は、その修正指示に応答してアプリケーション2を修正して、それを新たな検査対象のアプリケーション2として指定して検査要求を発行してくることになる。このとき、アプリケーション開発者は、修正前のアプリケーション2が既にある成熟度のシナリオ202まで合格している場合には、その成熟度に続く成熟度のシナリオ202から検査を続行するように指示することがあるので、このステップ10では、そのような検査開始シナリオの選択指示があるのか否かを判断することになる。
【0095】
この判断処理により、検査開始シナリオの選択指示がないことを判断するときには、ステップ11に進んで、最も成熟度の低いアプリケーション2に対応付けられるシナリオ202の番号を示す変数iに対して“1”を設定し、一方、検査開始シナリオの選択指示があることを判断するときには、ステップ12に進んで、その変数iに対して指定された検査開始シナリオの番号を示す“n”を設定する。
【0096】
続いて、ステップ13で、検査装置200を起動して、変数iの指す成熟度のシナリオ202を使って検査要求のアプリケーション2の検査を行うことで、アプリケーション2の標準APIに関する準拠性と、アプリケーション2についての要求仕様の実現度とについて評価する。
【0097】
この検査により、標準APIに関する準拠性については、例えば、Errorが何回発生し、WARNINGが何回発生したというような検査結果が得られるとともに、要求仕様の実現度については、例えば、メモリの使用率が何パーセント以内になければならないという要求仕様を充足しているのか否かというような検査結果が得られて、それらの検査結果がレポートデータ部23に書き込まれることになる。
【0098】
これから、続いて、ステップ14で、その検査結果とあらかじめアプリケーション開発者により設定された合否判断基準とを比較することで、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格したのか否かを判断する。
【0099】
この判断処理により、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格したことを判断するときには、ステップ15に進んで、変数iの値を1つインクリメントし、続くステップ16で、変数iの値が最後のシナリオ202の番号であるimax を超えたのか否かを判断して、imax を超えていないことを判断するときには、ステップ13に戻り、imax を超えたことを判断するときには、処理を終了する。
【0100】
このようにして、ステップ13〜ステップ16の処理に従って、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格したことを判断するときには、その次のレベルの成熟度のシナリオ202を使って検査要求のアプリケーション2の検査を行うことを繰り返していくのである。
【0101】
一方、ステップ14で、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格しないことを判断するときには、ステップ17に進んで、そのアプリケーション2の開発者に対して、どの成熟度までのシナリオ202による検査については合格したのかを知らせつつ、そのアプリケーション2が検査に合格しなかった旨を通知する。
【0102】
この通知を受けて、アプリケーション開発者は、その修正指示に応答してアプリケーション2を修正して、それを新たな検査対象のアプリケーション2として指定して検査要求を発行してくることになる。
【0103】
このようにして、本発明のアプリケーション検査システム100を用いることで、アプリケーション開発者は、標準APIに準拠して開発するアプリケーション2の示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようになる。これにより、標準API仕様に準拠するアプリケーションの開発を効率的に行うことができるようになる。
【0104】
次に、本発明のAPIベリファイア1を用いて実現できるアプリケーション2の検査方法について説明する。
【0105】
本発明のAPIベリファイア1はソフトウェアで構成されることから、アプリケーション開発者に配付することができる。
【0106】
アプリケーション開発者は、この配付されたAPIベリファイア1を使い、標準APIに準拠して開発したアプリケーションをその試験環境において、主として、標準APIの準拠性を中心にして検査を行い、その結果をベリファイア10にログし、アプリケーションの選定および認定申請を行う。このステップにより、サービスプロバイダの要求するアプリケーションの開発に先立って、標準APIの基本的使用方法が確認できる。
【0107】
次に、ベリファイア10は、アプリケーションの選定および認定申請/受付けの機能において、標準APIの準拠性の確認されたアプリケーションを受け取り、このアプリケーションを処理対象として、サービスプロバイダの要求するサービス使用の実現度を判定する。
【0108】
このとき、まず、アプリケーションの追加項目に関する試験を実施し、部分的に再試験を行い、試験結果のデータを収集する。次に、サービスプロバイダの要求するサービス仕様についてのアプリケーションの実現度を判定する。検証できない項目については、実機により試験を行い、試験データを収集する。
【0109】
次に、検査結果の良否判定に移り、収集した標準APIの準拠性に関する追加試験および実機試験に伴う、サーピスプロバイダの要求仕様の実現度試験結果の各データによりアプリケーションの各試験の合否判定を行う。この判定結果が合格であれば、標準APIの準拠性とサービスプロバイダの要求仕様の実現度試験に合格したアプリケーションを、ベリファイア10のデータベースに登録、WEBに公開する。
【0110】
このようにして、サービスプロバイダには、標準APIの準拠性と自身の要求仕様の実現度試験に合格し、WEB上に公開されたアプリケーションが提供されることになる。それと同時に、アプリケーション開発者からはアプリケーションの提供を受け、API−PFベンダからはプラットフォームの提供を受けることになる。
【0111】
【発明の効果】
以上説明したように、本発明を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、アプリケーションの標準API仕様への適合性試験に要する試験機資源、費用、時間を削減し、かつ、より精緻な検査を行うことができるようになる。
【0112】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションのサービス提供機会の増大を図ることができるようになる。
【0113】
そして、本発明を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、標準APIに準拠して開発するアプリケーションの示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようになる。
【0114】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションの開発を効率的に行うことができるようになる。
【0115】
このようにして、本発明によれば、アプリケーション開発者には、事前の標準APIの準拠性検査により、API仕様への適合性試験に要する費用、時間を削減し、各種のサービスプロバイダ向けの開発コストが低減し、サービスプロバイダへのアプリケーションの提供機会が増大するという利益が得られる。また、サービスプロバイダには、標準APIに準拠する多数のアプリケーションのサービス導入機会が増えるという利益が得られる。また、API−PFベンダには、API−PF上でサービス可能なアプリケーションが増え、API−PFの付加価値が高まるという利益が得られる。また、サービスプロバイダの加入者には、より多くのサービスを享受できるようになるという利益が得られる。
【0116】
さらに説明するならば、本発明によれば、実プラットフォームを用いることなく標準APIへの適合性を判別することができるようになるとともに、標準APIに関する準拠性の判別機能を持たず、しかも、アプリケーションの動作が固定的なものとなる擬似装置を用いていたのでは判別不能であった標準APIへの適合性についても判別することができるようになる。
【0117】
そして、本発明によれば、標準APIの種類に合わせた標準APIの実行環境の差し替えが可能となることで、標準APIの種類に依存することなく、様々な標準API仕様への適合性を検査することができるようになるとともに、新たな標準APIに対しても柔軟な拡張により対応することができるようになる。
【0118】
そして、本発明によれば、仕様解釈ごとに検査ファイルを差し替えることが可能になることで、プラットフォームベンダ毎に異なる標準APIの仕様解釈の差異を吸収することができるようになる。
【0119】
そして、本発明によれば、アプリケーションを動作させるために必要な例外イベントを手動又は自動的に送出することができるようになることでアプリケーションの動作パターンを複数擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0120】
そして、本発明によれば、アプリケーションを利用する機器の動作を標準のフォーマットを用いて記述されたシナリオを実行させることにより、連続した動作や、繰り返し動作、休止など、よりアプリケーションのサービス提供形態を想定した機器動作を擬似することが可能になることで、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【図面の簡単な説明】
【図1】本発明のAPIベリファイアのソフトウェア構成の一実施形態例である。
【図2】シーケンスデータの一例を示す図である。
【図3】レポートブラウザの表示する画面の一例を示す図である。
【図4】検査管理部の機能構成の説明図である。
【図5】検査管理部の機能構成の説明図である。
【図6】シナリオプロセッサ部の機能構成の説明図である。
【図7】シナリオエディタ画面の説明図である。
【図8】シナリオファイルの一例を示す図である。
【図9】シナリオ実行画面の説明図である。
【図10】本発明のアプリケーション検査システムの一実施形態例である。
【図11】本発明のアプリケーション検査システムの実行する処理フローである。
【符号の説明】
1 APIベリファイア
10 ベリファイア
11 アプリケーションランチャ
12 シナリオエディタ
13 シーケンスブラウザ
14 使用期限設定ツール
15 レポートブラウザ
20 シナリオプロセッサ部
21 シーケンスデータ部
22 プロテクト部
23 レポートデータ部
30 APIトレーサ部
31 検査管理部
32 API−PF部
33 ベリファイア制御部
34 ユーティリティ部
11a アプリケーション起動部
【発明の属する技術分野】
本発明は、アプリケーションが標準仕様として定められたAPI(Application Programming Interface)を正しく使用しているかどうかを検査する標準API使用方法の検査装置及びその検査方法と、その検査方法の実現に用いられる標準API使用方法検査プログラム及びそのプログラムを記録した記録媒体と、その検査装置を用いてアプリケーションが標準APIを正しく使用しているのかを検査するアプリケーション検査システム及びその検査方法とに関する。
【0002】
【従来の技術】
従来、JAINやParlay といった団体によって、アプリケーション・プログラミング・インタフェース(API)の仕様は標準化されている。しかし、従来のAPI仕様には、使用方法に柔軟性を持たせるために、APIの具体的なパラメータ値や、APIの呼び出しシーケンスについて規定を定めていない。このため、標準APIの仕様を採用するベンダによって、その解釈に差異が生じる。
【0003】
また、標準APIに準拠したアプリケーションを採用してサービスを提供するサービスプロバイダについてみるならば、サービスプロバイダは、各アプリケーションにおける標準APIの使用方法について、仕様書との照合を行うか、標準APIを搭載した実プラットフォーム上で動作試験を行うか、実プラットフォームの動作を擬似する擬似装置上で動作確認を行う必要があり、標準APIを用いたアプリケーションによるサービス提供の可能性の判別には、多大な試験、試験機の稼働を要するといった問題があった。
【0004】
また、公知の技術として提供されているAPI−プラットフォーム(Platform :PF)の動作そのものを擬似する擬似装置では、アプリケーションのある特定の動作による正常性については確認できるものの、その動作シナリオが固定的で限られているために、アプリケーションが適正な標準APIの使用方法を遵守しており、その動作によってPF側に異常をもたらすことがないかといったような確認を行うことはできない。
【0005】
その他に、本発明に関連する従来技術として、システム開発のオブジェクト指向設計において、ユースケースとAPIとの対応表を用いることにより、既存のAPIの組み合せから、新たに複雑な動作を行うシナリオを容易に設計するという処理を行う発明がある(例えば、特許文献1参照)。しかしながら、この従来技術は、APIの検査を行うものでない。
【0006】
また、本発明に関連する従来技術として、高級言語からコンピュータ用中間言語に変換したプログラムをネットワークを介して取得し、その取得したプログラムを検証するという処理を行う発明がある(例えば、特許文献2参照)。しかしながら、この従来技術は、スタックの深さ(記憶容量)に関する検査を行っており、APIの検査を行うものでない。
【0007】
【特許文献1】
特開2000−235485
【特許文献2】
特開2001−142720
【0008】
【発明が解決しようとする課題】
このように、従来技術に従っていると、アプリケーションが標準仕様として定められたAPIを正しく使用しているかどうかを検査するために、多大な試験機資源や費用や時間が要求されることになるという問題があるとともに、検査内容が固定的で限られていることで、十分な検査が行えないという問題がある。
【0009】
本発明はかかる事情に鑑みてなされたものであって、アプリケーションの標準API仕様への適合性試験に要する試験機資源、費用、時間を削減し、かつ、より精緻な検査を行うことができるようにすることで、標準API仕様に準拠するアプリケーションのサービス提供機会の増大を図ることができるようにする新たな検査技術の提供を目的とする。
【0010】
【課題を解決するための手段】
(1)本発明に係る標準API使用方法の検査装置の構成
この目的を達成するために、本発明に係る標準API使用方法の検査装置では、標準APIに準拠して開発されたアプリケーションが標準APIを正しく使用しているのかを検査するために、(イ)検査を司るベリファイアと、(ロ)アプリケーションを起動するランチャと、(ハ)クライアントの動作について記述するシナリオを作成するエディタとを備え、更に、ベリファイアは、▲1▼アプリケーションから渡された標準APIの使用方法に関する情報をベリファイアの各機能部に提供するAPIトレーサ部と、▲2▼標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供するAPI−PF部と、▲3▼アプリケーションの標準APIに関する準拠性を検査する検査管理部と、▲4▼エディタの作成したシナリオに従ってクライアントの動作を模擬するシナリオ実行部と、▲5▼API−PF部を使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証するベリファイア制御部と、▲6▼エディタの作成したシナリオの実行に伴って発行されるメソッドコール情報を受け取りメモリに蓄積するシーケンスデータ部と、▲7▼ベリファイアの各機能部からアプリケーションの試験に関する情報を受け取りメモリに蓄積するレポートデータ部と、▲8▼シーケンスデータ部により蓄積されるメソッドコール情報を出力するシーケンスブラウザと、▲9▼レポートデータ部により蓄積されるアプリケーションの試験に関する情報を出力するレポートブラウザとを備えるように構成する。
【0011】
この構成を採るときにあって、API−PF部は、仕様解釈の異なるその他のAPI−PF部と交換可能となるようにとパッケージ化されて実装されることがある。ここで、このパッケージ化を実現するために、標準APIの実行環境と検査実行制御・検査シナリオとの間を標準APIの実装に依存しないインタフェースを介して接続するようにしている。
【0012】
また、準拠性の検査に用いられる判定基準を自在に変更可能となるようにするために、準拠性の検査に用いられる判定基準を格納する外付けの検査ファイルから、準拠性の検査に用いられる判定基準を入力する判定基準入力部を備えることがある。
【0013】
また、検査管理部は、例えば、使用者からの指示に従って、あらかじめこういう場合にはこういう例外イベントを発生するということを設定しておいて、その条件が成立するときに例外イベントを発生することで、標準APIで定められたアプリケーションに対する例外イベントを自動的に発生したり、その条件が成立するときに発生する例外イベントの候補を複数設定しておくようにして、使用者からの指示に従って、その中から例外イベントを選択して発生することで、標準APIで定められたアプリケーションに対する例外イベントを手動で発生することがある。
【0014】
また、シナリオ実行部は、アプリケーションの成熟度に合わせた検査などを実行するために、エディタにより作成された複数のシナリオの中から1つのシナリオを選択して、その選択したシナリオに従ってクライアント(具体的にはアプリケーションを利用する機器)の動作を模擬することがある。
【0015】
以上の各処理手段が動作することで実現される本発明に係る標準API使用方法の検査方法はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどの記録媒体に記録して提供したり、ネットワークを介して提供することができる。
【0016】
このように構成される本発明に係る標準API使用方法の検査装置では、エディタがクライアントの動作について記述するシナリオを作成することで検査の準備が完了した後に、ランチャが検査対象のアプリケーションを起動すると、先ず最初に、APIトレーサ部は、アプリケーションから渡された標準APIの使用方法に関する情報をベリファイアの各機能部に提供する。
【0017】
次に、検査管理部は、アプリケーションの標準APIに関する準拠性を検査する。このとき、外付けの検査ファイルから入力された準拠性の検査に用いられる判定基準を用いて、その準拠性を検査する。
【0018】
次に、API−PF部は、標準APIに関する準拠性の検査を終えたアプリケーションに対して、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームを提供する。このとき、APIプラットフォームはAPIプラットフォームを提供するベンダによって仕様解釈などに相違があることから、独立したクラスファイルとすることで交換可能となっている。
【0019】
最後に、アプリケーションについての要求仕様の実現度の検証に入って、シナリオ実行部がエディタの作成したシナリオに従ってクライアントの動作を模擬し、これを受けて、ベリファイア制御部は、API−PF部を使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証する。このとき、検査管理部は、使用者からの指示に応答して、標準APIで定められたアプリケーションに対する例外イベントを発生する。
【0020】
このようにしてアプリケーションに対する検査を行うときに、シーケンスデータ部は、シナリオの実行に伴って発行されるメソッドコール情報を受け取ってメモリに蓄積し、レポートデータ部は、ベリファイアの各機能部からアプリケーションの試験に関する情報を受け取ってメモリに蓄積する。
【0021】
このようにして、本発明に係る標準API使用方法の検査装置は、アプリケーションが標準仕様として定められたAPIを正しく使用しているかどうかを検査するのである。
【0022】
以上に説明したことから分かるように、本発明に係る標準API使用方法の検査装置を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、実プラットフォームを用いることなく標準APIへの適合性を判別することができるようになるとともに、標準APIに関する準拠性の判別機能を持たず、しかも、アプリケーションの動作が固定的なものとなる擬似装置を用いていたのでは判別不能であった標準APIへの適合性についても判別することができるようになる。
【0023】
そして、本発明に係る標準API使用方法の検査装置では、標準APIの実行環境と検査実行制御・検査シナリオとの間を標準APIの実装に依存しないインタフェースを介して接続することにより、標準APIの種類に合わせた標準APIへの実行環境の差し替えが可能となり、これにより、標準APIの種類に依存することなく、様々な標準API仕様への適合性を検査することができるようになるとともに、新たな標準APIに対しても柔軟な拡張により対応することができるようになる。
【0024】
そして、本発明に係る標準API使用方法の検査装置では、プラットフォームベンダ毎に異なる標準APIの仕様解釈の差異を吸収するために、検査管理部とその検査管理部が実行する準拠性検査に用いる判定基準を格納する検査ファイルとを分離することにより、仕様解釈ごとに検査ファイルを差し替えることを可能にし、これにより、プラットフォームベンダ毎に異なる標準APIの仕様解釈の差異を吸収することができるようになる。
【0025】
そして、本発明に係る標準API使用方法の検査装置では、アプリケーションを動作させるために必要な例外イベントを本発明の検査装置の側から手動又は自動的に送出することにより、アプリケーションの動作パターンを複数擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0026】
そして、本発明に係る標準API使用方法の検査装置では、アプリケーションを利用する機器の動作を標準のフォーマットを用いて記述されたシナリオにより記述し、そのシナリオを読み込むことで実行させることにより、連続した動作や、繰り返し動作、休止など、よりアプリケーションのサービス提供形態を想定した機器動作を擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0027】
このようにして、本発明を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、アプリケーションの標準API仕様への適合性試験に要する試験機資源、費用、時間を削減し、かつ、より精緻な検査を行うことができるようになる。
【0028】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションのサービス提供機会の増大を図ることができるようになる。
【0029】
(2)本発明に係るアプリケーション検査システムの構成
一般的に、アプリケーションの開発は成熟度を上げながら行われる。これから、標準APIに準拠して開発するアプリケーションの示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようにする技術を構築する必要がある。
【0030】
本発明に係るアプリケーション検査システムは、この技術の構築を実現するものであって、▲1▼本発明に係る標準API使用方法の検査装置で構成され、クライアントの動作について記述して、アプリケーションの成熟度に応じて用意される複数のシナリオを作成して、それを使って検査対象のアプリケーションが標準APIを正しく使用しているのかを検査する検査装置と、▲2▼検査装置により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断する判断装置と、▲3▼判断装置がアプリケーションの不合格を判断する場合に、アプリケーションの開発者に対して、アプリケーションの修正を指示し、一方、判断装置がアプリケーションの合格を判断する場合に、検査装置に対して、次の成熟度に対応付けて用意されるシナリオを使って、検査対象のアプリケーションの検査を行うことを指示する指示装置とを備えるように構成する。
【0031】
このように構成されるときにあって、指示装置は、アプリケーションの修正指示に応答して検査対象のアプリケーションが修正される場合に、検査装置に対して、最も低い成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示したり、その修正前のアプリケーションが合格したシナリオの成熟度の次の成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示する。
【0032】
このように構成される本発明に係るアプリケーション検査システムでは、検査装置を使って、検査対象のアプリケーションが標準APIを正しく使用しているのかを検査し、その検査により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断する。
【0033】
この判断によりアプリケーションの合格を判断する場合には、検査装置に対して、次の成熟度に対応付けて用意されるシナリオを使って、検査対象のアプリケーションの検査を行うことを指示する。
【0034】
このようにして成熟度を順次上げながら検査対象のアプリケーションの検査を行っていくときに、アプリケーションの不合格を判断する場合には、アプリケーションの開発者に対して、アプリケーションの修正を指示する。
【0035】
この修正指示を受けて、アプリケーションの開発者は、アプリケーションを修正して、その修正したアプリケーションを検査対象として検査を依頼してくるので、再び、検査装置を使って、検査対象のアプリケーションが標準APIを正しく使用しているのかを検査し、その検査により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断するすることを繰り返していく。
【0036】
このようにして、本発明に係るアプリケーション検査システムを用いることで、標準APIに準拠して開発するアプリケーションの示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようになる。
【0037】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションの開発を効率的に行うことができるようになる。
【0038】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【0039】
図1に、本発明を具備するAPIベリファイア1のソフトウェア構成の一実施形態例を図示する。
【0040】
本発明のAPIベリファイア1は、標準APIに準拠して開発された検査対象のアプリケーション2が標準APIを正しく使用しているのかを検査する処理を行うものであって、検査の中心的処理を司るベリファイア10を備える他に、APIベリファイア1の構成要素として用意されるアプリケーションランチャ11、シナリオエディタ12、シーケンスブラウザ13、使用期限設定ツール14及びレポートブラウザ15を備え、さらに、ベリファイア10に備えられて、APIベリファイア1に使用される構成要素として用意されるシナリオプロセッサ部20、シーケンスデータ部21、プロテクト部22及びレポートデータ部23を備える。
【0041】
ここで、11aはアプリケーションランチャ11に備えられるアプリケーション起動部である。
【0042】
そして、この検査の中心的処理を司るベリファイア10は、APIトレーサ部30と、検査管理部31と、API−PF部32と、ベリファイア制御部33と、ユーティリティ部34とを備える。
【0043】
次に、これらの各構成要素の機能について説明する。
【0044】
アプリケーション起動部11aは、アプリケーション開発者の作成した標準APIに準拠するアプリケーション2を起動するアプリケーションランチャ11の機能を果たす。アプリケーションランチャ11により起動されたアプリケーション2は、ベリファイア10に移る。
【0045】
ベリファイア10では、まず、APIトレーサ部30で、アプリケーション2とAPI−PF部32との間の仲立ちをし、検証のための情報やシーケンスデータなどを収集して、レポートデータ部23を含む各機能ブロックに提供する。
【0046】
次に、検査管理部31で、アプリケーション開発者の作成したアプリケーション2の標準APIに関する準拠性を検査する。
【0047】
例えば、メソッドを仕様通り使用しているのかとか(メソッド名に誤りがないかとか)、アプリケーション2が使用するAPIのパラメータに値が入力されているのかとか、その値の範囲が正しいのかとか、その値が該当するオブジェクトの値と等しいのかとか、該当のオブジェクトが生存しているのかといったような標準APIに関する準拠性の検査を、標準APIの使用方法の検査の内容を定めた検査クラスにより行う。なお、後述するように、この検査クラス自体は選択可能となっている。
【0048】
そして、この検査に応じて、例えば、バグなどのベリファイア10の実行が不可能となるような致命的なErrorレベルのメソッドの使用方法であるとか、ファイル、ディレクトリへのアクセス権の不備などのユーザ対処により改善できる可能性があるWARNINGレベルのメソッドの使用方法であるとか、正しい使用方法にて使用していることを示すOKレベルのメソッドの使用方法であるとかに分類する。
【0049】
ここで、この標準APIに関する準拠性の検査結果については、レポートデータ部23に報告する。
【0050】
検査管理部31は、この他に、アプリケーション2の検証実行時に、手動により例外状況(例外イベント)を発生させる機能を使用者(アプリケーション開発者など)に提供する。この検査クラスは標準仕様の変更、または解釈の変更に柔軟に対応できるように、独立したクラスファイルとしてアプリケーション2に対して提供する。
【0051】
次に、API−PF部32で、標準APIに関する準拠性の検査を終えたアプリケーション2に対して、サービスプロバイダの要求する仕様実現度判定のための準備として、インタフェース規定および実装規定に基づいたAPIプラットフォームを提供する。
【0052】
このAPIプラットフォームは、APIプラットフォームを提供するベンダによって仕様解釈などに相違があるため、独立したクラスファイルとすることで取り替え可能となっている。この取り替えを可能とするために、API−PF部32とベリファイア制御部33との間と、API−PF部32とシナリオプロセッサ部20との間については、標準APIのPFの種類やバージョンに依存しない、Platform Access Interface によって接続される構成が採られている。
【0053】
ここで、サービスプロバイダの要求する仕様とは、サービスプロバイダがクライアントに対してサービスを提供するために、アプリケーションに対して要求する仕様であり、サービスプロバイダごとに異なる。例えば、48時間以上連続運転できることとか、連続運転状態でのCPUやメモリの使用率が何パーセント以内にあることといったようなものが仕様として要求されることになる。
【0054】
最後に、ベリファイア制御部33で、ベリファイア10の起動および実行制御を行い、API−PF部32の提供するAPIプラットフォームを使って、アプリケーション2がサービスプロバイダの要求する仕様をどの程度実現しているのかの検証を自動で行い、その結果をレポートデータ部23に報告する。
【0055】
ベリファイア10には、以上に説明した各機能の他に、ユーティリティ部34が備えられており、このユーティリティ部34は、ベリファイア10を構成する各機能部が使用するメソッドライブラリなどのユーティリティを提供する。
【0056】
APIベリファイア1とベリファイア10とにまたがって存在する、シナリオプロセッサ部20、シーケンスデータ部21、プロテクト部22及びレポートデータ部23は、ベリファイア制御部33からアプリケーション2についての要求仕様の実現度検査に関する各種の情報を得る。
【0057】
次に、これらの各構成要素の機能について説明する。
【0058】
シナリオプロセッサ部20は、アプリケーション2の要求仕様の実現度検証時に、要求仕様が含む端末操作に関する自動実行する機能(端末操作を模擬する機能)を有する他、その自動実行のためのシナリオファイルを作成する機能をシナリオエディタ12として、APIベリファイア1に提供する。
【0059】
シーケンスデータ部21は、アプリケーション2の要求仕様の実現度検証時に発行されるメソッドコール情報を図2に示すような形でシーケンスデータとして蓄積する他、その情報を表示する機能をシーケンスブラウザ13として、APIベリファイア1に提供する。
【0060】
プロテクト部22は、ベリファイア10の使用を制限する機能および使用期限を設定する機能を使用期限設定ツール14として、APIベリファイア1に提供する。
【0061】
レポートデータ部23は、前述のとおり、ベリファイア10を構成する各構成要素からアプリケーション2に関する試験データや試験結果の情報を受け、その情報を蓄積する他、図3に示すような表示画面を使って、その情報を表示し編集する機能をレポートブラウザ15として、APIベリファイア1に提供する。
【0062】
これらのAPIベリファイア1とベリファイア10とにまたがって存在する構成要素を受けて、APIベリファイア1は、前述のアプリケーションランチャ10の他に、アプリケーション2の要求仕様の実現度検証時における端末操作を自動実行させるためのシナリオファイルを作成するシナリオエディタ12と、要求仕様の実現度検証時に発行されるメソッドコール情報を表示するシーケンスブラウザ13と、ベリファイア10の使用を制限する機能および使用期限を設定する機能を実現する使用期限設定ツール14と、アプリケーション2に関する試験データや試験結果の情報を表示し編集するレポートブラウザ15とを備えることになる。
【0063】
次に、図4及び図5を使って、検査管理部31の機能構成と動作とについて、さらに詳細に説明する。
【0064】
図4は、検査管理部31における検査機能の機能構成と動作とを示す図である。この図に示すように、検査管理部31は、検査管理機能40と、検査クラスローダ画面41と、マニフェスト読み込み機能42と、検査クラス読み込み機能43と、検査実行機能44とを備え、更に、外付けのファイルとして用意される検査ファイル45を接続する。
【0065】
この検査ファイル45は、検査クラスの目録を表すマニフェストファイル46と、実際の検査判定項目を示す検査クラス47(チェックのロジックが埋め込まれているプログラム)とからなる。
【0066】
本発明のAPIベリファイア1の使用者は、あらかじめ、検査クラスを記述したマニフェストファイル46と検査クラス47とを用意する。
【0067】
このマニフェストファイル46はマニフェスト読み込み機能42によって読み込まれ、アプリケーションランチャ11を通して、使用者によってあらかじめ使う検査クラス47を参照、選択することができるようになる。そして、そのようにして選択された検査クラス47は検査クラス読み込み機能43によって読み込まれ、検査実行機能44の実行の判定基準として用いられて、アプリケーション2の標準APIに関する準拠性の検査が行われて、その検査結果がレポートデータ部23に通知されることになる。
【0068】
このようにして、検査管理部31は、外付けのファイルとして用意される検査ファイル45の中から準拠性の判定基準となる検査クラス47を選択して、それを使ってアプリケーション2の標準APIに関する準拠性の検査を行って、その検査結果をレポートデータ部23に出力するように処理するのである。これにより、標準仕様の変更、または解釈の変更に柔軟に対応できるようになる。
【0069】
図5は、検査管理部31におけるException発生・管理機能の機能構成と動作とを示す図である。この図に示すように、検査管理部31は、Exception発生・管理機能50と、Exception発生対象設定画面51と、発生Exception選択画面52とを備える。
【0070】
本発明のAPIベリファイア1の使用者は、Exception発生対象設定画面51により、アプリケーション2のどのインタフェースに対してExceptionを発生させるのかを決定し、発生Exception選択画面52によって、どのExceptionを発生させるかを決定して入力する。このようにして発生されるExceptionについては、レポートデータ部23に対して通知される。
【0071】
このようにして、検査管理部31は、アプリケーション2の検証実行時に、手動により例外状況(例外イベント)を発生させる機能を使用者に提供するように処理するのである。ここで、ある状態になったら自動的にある例外イベントを発生するようにと設定することも可能であり、この場合には、その状態になると、自動的に例外イベントを発生することになる。
【0072】
このような例外イベントの発生機能が用意されることで、アプリケーションの動作パターンを複数擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0073】
次に、図6ないし図9を使って、シナリオプロセッサ部20の機能構成と動作とについて、さらに詳細に説明する。
【0074】
図6は、シナリオプロセッサ部20の機能構成と動作とを示す図である。この図に示すように、シナリオプロセッサ部20は、シナリオの実行を受け持つシナリオ実行部60と、シナリオファイルを読み込むファイルI/O部61と、タグ定義ファイル62によって規定され、標準のフォーマットであるXML(Extensible Markup Language)によって記述されたシナリオファイル63と、検査に用いるシナリオを使用者が選択するためのシナリオメニュー画面64と、使用者が用いたいシナリオを自由かつ容易に作成するためのシナリオエディタ画面65と、シナリオ作成時に使用者にシナリオ作成方法を示すヘルプ表示画面66とからなる。
【0075】
シナリオプロセッサ部20(シナリオエディタ12)は、図7に示すようなシナリオエディタ画面65を使って使用者と対話することで、例えば、電話番号“12345”の電話をオンフックし、続いて、電話番号“23456”の電話をオンフックし、続いて、電話番号“12345”の電話から電話番号“23456”の電話を呼び出し、続いて、500ms待ってから、電話番号“23456”の電話をオフフックし、続いて、500ms待ってから、電話番号“23456”の電話をオンフックするというようなアプリケーション2を利用する機器の動作を模擬するシナリオを作成する。
【0076】
このようにして作成されたシナリオファイル63は、図8に示すように、標準のフォーマットであるXMLによって記述されて、図9に示すようなシナリオ実行画面を使って実行されることになる。
【0077】
このように構成される本発明のAPIベリファイア1では、シナリオエディタ12がアプリケーション2を利用する機器の動作について記述するシナリオを作成することで検査の準備が完了した後に、アプリケーションランチャ11が検査対象のアプリケーション2を起動すると、先ず最初に、APIトレーサ部30は、アプリケーション2から渡された標準APIの使用方法に関する情報をベリファイア10の各機能部に提供する。
【0078】
次に、検査管理部31は、アプリケーション2の標準APIに関する準拠性を検査する。このとき、外付けの検査ファイル45から入力された準拠性の検査に用いられる判定基準を用いて、その準拠性を検査する。
【0079】
次に、API−PF部32は、標準APIに関する準拠性の検査を終えたアプリケーション2に対して、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームを提供する。このとき提供されるAPIプラットフォームはAPIプラットフォームを提供するベンダによって仕様解釈などに相違があることから、独立したクラスファイルとすることで交換可能となっている。
【0080】
最後に、アプリケーション2についての要求仕様の実現度の検証に入って、シナリオプロセッサ部20がシナリオエディタ12の作成したシナリオに従ってアプリケーション2を利用する機器の動作を模擬し、これを受けて、ベリファイア制御部33は、API−PF部32を使い、アプリケーション2を利用する機器の動作に応答して動作するアプリケーション2についての要求仕様の実現度を検証する。このとき、検査管理部31は、使用者からの指示に応答して、標準APIで定められたアプリケーションに対する例外イベントを発生する。
【0081】
そして、このアプリケーション2に対する検査を行うときに、シーケンスデータ部21は、シナリオの実行に伴って発行されるメソッドコール情報を受け取ってメモリに蓄積し、レポートデータ部23は、ベリファイア10の各機能部からアプリケーション2の試験に関する情報を受け取ってメモリに蓄積する。
【0082】
このようにして、本発明のAPIベリファイア1は、アプリケーション2が標準仕様として定められたAPIを正しく使用しているかどうかを検査するのである。
【0083】
通常の場合、アプリケーション2の開発は成熟度を上げながら行われる。これから、標準APIに準拠して開発するアプリケーション2の示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようにする技術を構築する必要がある。
【0084】
図10に、この技術を実現する本発明のアプリケーション検査システム100の一実施形態例を図示する。ここで、図中に示す10、11、21、23は、それぞれ図1で説明したベリファイア、アプリケーションランチャ、シーケンスデータ部、レポートデータ部を示している。
【0085】
この図に示すように、本発明のアプリケーション検査システム100は、検査装置200と、判断装置300と、指示装置400とを備える。
【0086】
検査装置200は、上述した本発明のAPIベリファイア1で構成されて、検査対象のアプリケーション2が標準APIを正しく使用しているのかを検査する処理を行う。
【0087】
ここで、検査装置200は、本発明のアプリケーション検査システム100に実装される場合、アプリケーション開発者からのアプリケーションの検査要求を受け付ける検査受付部201と、シナリオエディタ12により作成された複数のシナリオ202の中からベリファイア10の検査対象となるシナリオを選択するシナリオ選択部203とを備えることになる。
【0088】
また、検査装置200は、本発明のアプリケーション検査システム100に実装される場合、アプリケーション2を利用する機器の動作を模擬するシナリオ202として、アプリケーション2の成熟度に応じて用意される複数のシナリオ202(例えば、試験の難易度に応じた複数のシナリオ202)を作成することになる。
【0089】
例えば、4つのシナリオ202を作成する場合に、▲1▼最も成熟度の低いアプリケーション2に対応付けられるシナリオ202として、例えば、通常の1コールで構成されるような正常系の動作を模擬するものを作成し、▲2▼成熟度の低いアプリケーション2に対応付けられるシナリオ202として、例えば、呼び出し中の放棄などを含むような準正常系の動作を模擬するものを作成し、▲3▼成熟度の高いアプリケーション2に対応付けられるシナリオ202として、例えば、サーバ異常による通話切断などを含むような異常系の動作を模擬するものを作成し、▲4▼最も成熟度の高いアプリケーション2に対応付けられるシナリオ202として、例えば、異常系も組み合わせた48時間連続運転を模擬するようなものを作成するというように、アプリケーション2の成熟度に応じて用意される複数のシナリオ202を作成するのである。
【0090】
判断装置300は、検査装置200により得られた準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーション2の合否を判断する。
【0091】
指示装置400は、判断装置300がアプリケーション2の不合格を判断する場合には、アプリケーション2の開発者に対して、アプリケーション2の修正を指示し、一方、判断装置300がアプリケーション2の合格を判断する場合には、検査装置200に対して、次の成熟度に対応付けて用意されるシナリオ202を使って、検査対象のアプリケーション2の検査を行うことを指示する。
【0092】
次に、図11の処理フローに従って、本発明のアプリケーション検査システム100の実行する処理について詳細に説明する。
【0093】
本発明のアプリケーション検査システム100は、アプリケーション開発者からアプリケーション2を指定して検査要求が発行されると、図11の処理フローに示すように、先ず最初に、ステップ10で、アプリケーション開発者から検査開始シナリオの選択指示があるのか否かを判断する。
【0094】
後述するように、指示装置400がアプリケーション開発者に対して、検査対象のアプリケーション2の修正を指示すると、アプリケーション開発者は、その修正指示に応答してアプリケーション2を修正して、それを新たな検査対象のアプリケーション2として指定して検査要求を発行してくることになる。このとき、アプリケーション開発者は、修正前のアプリケーション2が既にある成熟度のシナリオ202まで合格している場合には、その成熟度に続く成熟度のシナリオ202から検査を続行するように指示することがあるので、このステップ10では、そのような検査開始シナリオの選択指示があるのか否かを判断することになる。
【0095】
この判断処理により、検査開始シナリオの選択指示がないことを判断するときには、ステップ11に進んで、最も成熟度の低いアプリケーション2に対応付けられるシナリオ202の番号を示す変数iに対して“1”を設定し、一方、検査開始シナリオの選択指示があることを判断するときには、ステップ12に進んで、その変数iに対して指定された検査開始シナリオの番号を示す“n”を設定する。
【0096】
続いて、ステップ13で、検査装置200を起動して、変数iの指す成熟度のシナリオ202を使って検査要求のアプリケーション2の検査を行うことで、アプリケーション2の標準APIに関する準拠性と、アプリケーション2についての要求仕様の実現度とについて評価する。
【0097】
この検査により、標準APIに関する準拠性については、例えば、Errorが何回発生し、WARNINGが何回発生したというような検査結果が得られるとともに、要求仕様の実現度については、例えば、メモリの使用率が何パーセント以内になければならないという要求仕様を充足しているのか否かというような検査結果が得られて、それらの検査結果がレポートデータ部23に書き込まれることになる。
【0098】
これから、続いて、ステップ14で、その検査結果とあらかじめアプリケーション開発者により設定された合否判断基準とを比較することで、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格したのか否かを判断する。
【0099】
この判断処理により、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格したことを判断するときには、ステップ15に進んで、変数iの値を1つインクリメントし、続くステップ16で、変数iの値が最後のシナリオ202の番号であるimax を超えたのか否かを判断して、imax を超えていないことを判断するときには、ステップ13に戻り、imax を超えたことを判断するときには、処理を終了する。
【0100】
このようにして、ステップ13〜ステップ16の処理に従って、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格したことを判断するときには、その次のレベルの成熟度のシナリオ202を使って検査要求のアプリケーション2の検査を行うことを繰り返していくのである。
【0101】
一方、ステップ14で、検査対象のアプリケーション2が準拠性および要求仕様の実現度について合格しないことを判断するときには、ステップ17に進んで、そのアプリケーション2の開発者に対して、どの成熟度までのシナリオ202による検査については合格したのかを知らせつつ、そのアプリケーション2が検査に合格しなかった旨を通知する。
【0102】
この通知を受けて、アプリケーション開発者は、その修正指示に応答してアプリケーション2を修正して、それを新たな検査対象のアプリケーション2として指定して検査要求を発行してくることになる。
【0103】
このようにして、本発明のアプリケーション検査システム100を用いることで、アプリケーション開発者は、標準APIに準拠して開発するアプリケーション2の示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようになる。これにより、標準API仕様に準拠するアプリケーションの開発を効率的に行うことができるようになる。
【0104】
次に、本発明のAPIベリファイア1を用いて実現できるアプリケーション2の検査方法について説明する。
【0105】
本発明のAPIベリファイア1はソフトウェアで構成されることから、アプリケーション開発者に配付することができる。
【0106】
アプリケーション開発者は、この配付されたAPIベリファイア1を使い、標準APIに準拠して開発したアプリケーションをその試験環境において、主として、標準APIの準拠性を中心にして検査を行い、その結果をベリファイア10にログし、アプリケーションの選定および認定申請を行う。このステップにより、サービスプロバイダの要求するアプリケーションの開発に先立って、標準APIの基本的使用方法が確認できる。
【0107】
次に、ベリファイア10は、アプリケーションの選定および認定申請/受付けの機能において、標準APIの準拠性の確認されたアプリケーションを受け取り、このアプリケーションを処理対象として、サービスプロバイダの要求するサービス使用の実現度を判定する。
【0108】
このとき、まず、アプリケーションの追加項目に関する試験を実施し、部分的に再試験を行い、試験結果のデータを収集する。次に、サービスプロバイダの要求するサービス仕様についてのアプリケーションの実現度を判定する。検証できない項目については、実機により試験を行い、試験データを収集する。
【0109】
次に、検査結果の良否判定に移り、収集した標準APIの準拠性に関する追加試験および実機試験に伴う、サーピスプロバイダの要求仕様の実現度試験結果の各データによりアプリケーションの各試験の合否判定を行う。この判定結果が合格であれば、標準APIの準拠性とサービスプロバイダの要求仕様の実現度試験に合格したアプリケーションを、ベリファイア10のデータベースに登録、WEBに公開する。
【0110】
このようにして、サービスプロバイダには、標準APIの準拠性と自身の要求仕様の実現度試験に合格し、WEB上に公開されたアプリケーションが提供されることになる。それと同時に、アプリケーション開発者からはアプリケーションの提供を受け、API−PFベンダからはプラットフォームの提供を受けることになる。
【0111】
【発明の効果】
以上説明したように、本発明を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、アプリケーションの標準API仕様への適合性試験に要する試験機資源、費用、時間を削減し、かつ、より精緻な検査を行うことができるようになる。
【0112】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションのサービス提供機会の増大を図ることができるようになる。
【0113】
そして、本発明を用いてアプリケーションの標準API仕様への適合性試験を行うことにより、標準APIに準拠して開発するアプリケーションの示すサービスプロバイダの要求する仕様に対しての実現度合いを、アプリケーション開発の成熟度に応じて判定できるようになる。
【0114】
これにより、本発明によれば、標準API仕様に準拠するアプリケーションの開発を効率的に行うことができるようになる。
【0115】
このようにして、本発明によれば、アプリケーション開発者には、事前の標準APIの準拠性検査により、API仕様への適合性試験に要する費用、時間を削減し、各種のサービスプロバイダ向けの開発コストが低減し、サービスプロバイダへのアプリケーションの提供機会が増大するという利益が得られる。また、サービスプロバイダには、標準APIに準拠する多数のアプリケーションのサービス導入機会が増えるという利益が得られる。また、API−PFベンダには、API−PF上でサービス可能なアプリケーションが増え、API−PFの付加価値が高まるという利益が得られる。また、サービスプロバイダの加入者には、より多くのサービスを享受できるようになるという利益が得られる。
【0116】
さらに説明するならば、本発明によれば、実プラットフォームを用いることなく標準APIへの適合性を判別することができるようになるとともに、標準APIに関する準拠性の判別機能を持たず、しかも、アプリケーションの動作が固定的なものとなる擬似装置を用いていたのでは判別不能であった標準APIへの適合性についても判別することができるようになる。
【0117】
そして、本発明によれば、標準APIの種類に合わせた標準APIの実行環境の差し替えが可能となることで、標準APIの種類に依存することなく、様々な標準API仕様への適合性を検査することができるようになるとともに、新たな標準APIに対しても柔軟な拡張により対応することができるようになる。
【0118】
そして、本発明によれば、仕様解釈ごとに検査ファイルを差し替えることが可能になることで、プラットフォームベンダ毎に異なる標準APIの仕様解釈の差異を吸収することができるようになる。
【0119】
そして、本発明によれば、アプリケーションを動作させるために必要な例外イベントを手動又は自動的に送出することができるようになることでアプリケーションの動作パターンを複数擬似することが可能になり、これにより、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【0120】
そして、本発明によれば、アプリケーションを利用する機器の動作を標準のフォーマットを用いて記述されたシナリオを実行させることにより、連続した動作や、繰り返し動作、休止など、よりアプリケーションのサービス提供形態を想定した機器動作を擬似することが可能になることで、より精緻な標準API仕様への適合性試験を行うことができるようになる。
【図面の簡単な説明】
【図1】本発明のAPIベリファイアのソフトウェア構成の一実施形態例である。
【図2】シーケンスデータの一例を示す図である。
【図3】レポートブラウザの表示する画面の一例を示す図である。
【図4】検査管理部の機能構成の説明図である。
【図5】検査管理部の機能構成の説明図である。
【図6】シナリオプロセッサ部の機能構成の説明図である。
【図7】シナリオエディタ画面の説明図である。
【図8】シナリオファイルの一例を示す図である。
【図9】シナリオ実行画面の説明図である。
【図10】本発明のアプリケーション検査システムの一実施形態例である。
【図11】本発明のアプリケーション検査システムの実行する処理フローである。
【符号の説明】
1 APIベリファイア
10 ベリファイア
11 アプリケーションランチャ
12 シナリオエディタ
13 シーケンスブラウザ
14 使用期限設定ツール
15 レポートブラウザ
20 シナリオプロセッサ部
21 シーケンスデータ部
22 プロテクト部
23 レポートデータ部
30 APIトレーサ部
31 検査管理部
32 API−PF部
33 ベリファイア制御部
34 ユーティリティ部
11a アプリケーション起動部
Claims (16)
- 標準APIに準拠して開発されたアプリケーションが標準APIを正しく使用しているのかを検査するための装置であって、
検査を司るベリファイアと、アプリケーションを起動するランチャと、クライアントの動作について記述するシナリオを作成するエディタとを備え、
更に、上記ベリファイアは、
アプリケーションから渡された標準APIの使用方法に関する情報をベリファイアの各機能部に提供するAPIトレーサ部と、
標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供するAPI−PF部と、
アプリケーションの標準APIに関する準拠性を検査する検査管理部と、
上記シナリオに従ってクライアントの動作を模擬するシナリオ実行部と、
上記API−PF部を使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証するベリファイア制御部とを備えることを、
特徴とする標準API使用方法の検査装置。 - 請求項1記載の標準API使用方法の検査装置において、
上記ベリファイアは、更に、
上記シナリオの実行に伴って発行されるメソッドコール情報を受け取りメモリに蓄積するシーケンスデータ部と、
上記ベリファイアの各機能部からアプリケーションの試験に関する情報を受け取りメモリに蓄積するレポートデータ部とを備えることを、
特徴とする標準API使用方法の検査装置。 - 請求項2記載の標準API使用方法の検査装置において、
上記シーケンスデータ部により蓄積されるメソッドコール情報を出力するシーケンスブラウザと、
上記レポートデータ部により蓄積されるアプリケーションの試験に関する情報を出力するレポートブラウザとを備えることを、
特徴とする標準API使用方法の検査装置。 - 請求項1ないし3のいずれか1項に記載の標準API使用方法の検査装置において、
上記API−PF部は、仕様解釈の異なるその他のAPI−PF部と交換可能となるようにとパッケージ化されて実装されることを、
特徴とする標準API使用方法の検査装置。 - 請求項1ないし4のいずれか1項に記載の標準API使用方法の検査装置において、
上記準拠性の検査に用いられる判定基準を格納する外付けの検査ファイルから、該判定基準を入力する判定基準入力部を備えることを、
特徴とする標準API使用方法の検査装置。 - 請求項1ないし5のいずれか1項に記載の標準API使用方法の検査装置において、
上記検査管理部は、使用者からの指示に従って、標準APIで定められたアプリケーションに対する例外イベントを発生することを、
特徴とする標準API使用方法の検査装置。 - 請求項1ないし6のいずれか1項に記載の標準API使用方法の検査装置において、
上記シナリオ実行部は、上記エディタにより作成された複数のシナリオの中から1つのシナリオを選択して、その選択したシナリオに従ってクライアントの動作を模擬することを、
特徴とする標準API使用方法の検査装置。 - ベリファイアとアプリケーションを起動するランチャとクライアントの動作について記述するシナリオを作成するエディタとを備え、更に、ベリファイアがAPIトレーサ部とAPI−PF部と検査管理部とシナリオ実行部とベリファイア制御部とシーケンスデータ部とレポートデータ部とを備えるコンピュータで実行されて、標準APIに準拠して開発されたアプリケーションが標準APIを正しく使用しているのかを検査するための方法であって、
上記APIトレーサ部は、アプリケーションから渡された標準APIの使用方法に関する情報をベリファイアの各機能部に提供し、
上記API−PF部は、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供し、
上記検査管理部は、アプリケーションの標準APIに関する準拠性を検査し、
上記シナリオ実行部は、上記シナリオに従ってクライアントの動作を模擬し、
上記ベリファイア制御部は、上記API−PF部を使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証し、
上記シーケンスデータ部は、上記シナリオの実行に伴って発行されるメソッドコール情報を受け取ってメモリに蓄積し、
上記レポートデータ部は、ベリファイアの各機能部からアプリケーションの試験に関する情報を受け取ってメモリに蓄積することを、
特徴とする標準API使用方法の検査方法。 - 請求項8記載の標準API使用方法の検査方法の実現に用いられる処理をコンピュータに実行させるための標準API使用方法検査プログラム。
- 請求項8記載の標準API使用方法の検査方法の実現に用いられる処理をコンピュータに実行させるための標準API使用方法検査プログラムを記録した記録媒体。
- クライアントの動作について記述して、アプリケーションの成熟度に応じて用意される複数のシナリオを作成する手段と、アプリケーションの標準APIに関する準拠性を検査する手段と、該シナリオに従ってクライアントの動作を模擬する手段と、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供する手段と、該APIプラットフォームを使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証する手段とを備えて、検査対象のアプリケーションが標準APIを正しく使用しているのかを検査する検査装置と、
上記検査装置により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断する判断装置と、
上記判断装置がアプリケーションの不合格を判断する場合に、アプリケーションの開発者に対して、アプリケーションの修正を指示し、一方、上記判断装置がアプリケーションの合格を判断する場合に、上記検査装置に対して、次の成熟度に対応付けて用意されるシナリオを使って、検査対象のアプリケーションの検査を行うことを指示する指示装置とを備えることを、
特徴とするアプリケーション検査システム。 - 請求項11記載のアプリケーション検査システムにおいて、
上記指示装置は、上記アプリケーションの修正指示に応答して検査対象のアプリケーションが修正される場合に、上記検査装置に対して、最も低い成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示することを、
特徴とするアプリケーション検査システム。 - 請求項11記載のアプリケーション検査システムにおいて、
上記指示装置は、上記アプリケーションの修正指示に応答して検査対象のアプリケーションが修正される場合に、上記検査装置に対して、その修正前のアプリケーションが合格したシナリオの成熟度の次の成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示することを、
特徴とするアプリケーション検査システム。 - クライアントの動作について記述して、アプリケーションの成熟度に応じて用意される複数のシナリオを作成する手段と、アプリケーションの標準APIに関する準拠性を検査する手段と、該シナリオに従ってクライアントの動作を模擬する手段と、標準APIにて規定されるインタフェース及び実装規定に基づいたAPIプラットフォームをアプリケーションに対して提供する手段と、該APIプラットフォームを使い、クライアントの動作に応答して動作するアプリケーションについての要求仕様の実現度を検証する手段とを備える検査装置を使って、標準APIに準拠して開発されたアプリケーションが標準APIを正しく使用しているのかを検査するための方法であって、
上記検査装置を使って、検査対象のアプリケーションが標準APIを正しく使用しているのかを検査する過程と、
その検査により得られる準拠性の検査結果と要求仕様の実現度の検証結果とから、検査対象のアプリケーションの合否を判断する過程と、
その判断によりアプリケーションの不合格を判断する場合に、アプリケーションの開発者に対して、アプリケーションの修正を指示し、一方、合格を判断する場合に、上記検査装置に対して、次の成熟度に対応付けて用意されるシナリオを使って、検査対象のアプリケーションの検査を行うことを指示する過程とを備えることを、
特徴とするアプリケーション検査方法。 - 請求項14記載のアプリケーション検査方法において、
上記指示する過程では、上記アプリケーションの修正指示に応答して検査対象のアプリケーションが修正される場合に、上記検査装置に対して、最も低い成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示することを、
特徴とするアプリケーション検査方法。 - 請求項14記載のアプリケーション検査方法において、
上記指示する過程では、上記アプリケーションの修正指示に応答して検査対象のアプリケーションが修正される場合に、上記検査装置に対して、その修正前のアプリケーションが合格したシナリオの成熟度の次の成熟度に対応付けて用意されるシナリオを起点として、検査対象のアプリケーションの検査を行うことを指示することを、
特徴とするアプリケーション検査方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003129661A JP2004334541A (ja) | 2003-05-08 | 2003-05-08 | 標準api使用方法の検査装置及びその検査方法と、標準api使用方法検査プログラム及びそのプログラムを記録した記録媒体と、アプリケーション検査システム及びその検査方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003129661A JP2004334541A (ja) | 2003-05-08 | 2003-05-08 | 標準api使用方法の検査装置及びその検査方法と、標準api使用方法検査プログラム及びそのプログラムを記録した記録媒体と、アプリケーション検査システム及びその検査方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004334541A true JP2004334541A (ja) | 2004-11-25 |
Family
ID=33505393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003129661A Pending JP2004334541A (ja) | 2003-05-08 | 2003-05-08 | 標準api使用方法の検査装置及びその検査方法と、標準api使用方法検査プログラム及びそのプログラムを記録した記録媒体と、アプリケーション検査システム及びその検査方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004334541A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008027172A (ja) * | 2006-07-20 | 2008-02-07 | Kyocera Mita Corp | 画像形成装置 |
JP2012073682A (ja) * | 2010-09-27 | 2012-04-12 | Nec Corp | 移行検査プログラム作成装置、移行検査プログラム作成方法および移行検査プログラム作成プログラム |
CN115516574A (zh) * | 2020-06-18 | 2022-12-23 | 柠檬医疗保健有限公司 | 用于以同时并发的方式联动多台医院服务器和联盟服务器的基于云的api规格管理方法 |
-
2003
- 2003-05-08 JP JP2003129661A patent/JP2004334541A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008027172A (ja) * | 2006-07-20 | 2008-02-07 | Kyocera Mita Corp | 画像形成装置 |
JP2012073682A (ja) * | 2010-09-27 | 2012-04-12 | Nec Corp | 移行検査プログラム作成装置、移行検査プログラム作成方法および移行検査プログラム作成プログラム |
CN115516574A (zh) * | 2020-06-18 | 2022-12-23 | 柠檬医疗保健有限公司 | 用于以同时并发的方式联动多台医院服务器和联盟服务器的基于云的api规格管理方法 |
CN115516574B (zh) * | 2020-06-18 | 2023-08-01 | 柠檬医疗保健有限公司 | 用于以同时并发的方式联动多台医院服务器和联盟服务器的基于云的api规格管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651366B (zh) | Sdk测试方法、装置、设备及存储介质 | |
US7596778B2 (en) | Method and system for automatic error prevention for computer software | |
US8074204B2 (en) | Test automation for business applications | |
JP5295269B2 (ja) | コンポーネント・モデル基盤の仮想ソフトウェア・プラットホームを生成する方法、これを利用してソフトウェア・プラットホーム・アーキテクチャを検証する方法及びその装置 | |
US7926038B2 (en) | Method, system and computer program for testing a command line interface of a software product | |
US8677327B2 (en) | Service testing method and service testing system | |
US8561024B2 (en) | Developing software components and capability testing procedures for testing coded software component | |
US8522214B2 (en) | Keyword based software testing system and method | |
Mariani et al. | Compatibility and regression testing of COTS-component-based software | |
EP3769223A1 (en) | Unified test automation system | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
Geiger et al. | BPMN conformance in open source engines | |
EP1179776A1 (en) | Test automation framework | |
Sarma et al. | Model-based testing in industry: a case study with two MBT tools | |
CN110928777B (zh) | 测试用例的处理方法、装置、设备及存储介质 | |
Jacinto et al. | Test mocks for low-code applications built with OutSystems | |
US20020133753A1 (en) | Component/Web services Tracking | |
CN113296787A (zh) | 一种基于云平台的在线开发与代码托管系统与使用方法 | |
CN113094251B (zh) | 嵌入式系统测试方法、装置、计算机设备和存储介质 | |
CN103064783A (zh) | 使用重复利用动态链接库进行功能测试的系统和方法 | |
Lipka et al. | A method for semi-automated generation of test scenarios based on use cases | |
JP2004334541A (ja) | 標準api使用方法の検査装置及びその検査方法と、標準api使用方法検査プログラム及びそのプログラムを記録した記録媒体と、アプリケーション検査システム及びその検査方法 | |
CN116150033A (zh) | 一种软件测试方法、系统、计算机设备及存储介质 | |
Santos-Neto et al. | Requirements for information systems model-based testing | |
CN109669868A (zh) | 软件测试的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080610 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081021 |