(57)【要約】      （修正有）【課題】費用や工数を抑えつつ、ソフトウェアの運用中に発生する事象を再現するソフトウェア自動試験装置を提供する。【解決手段】ソフトウェア自動試験装置は、記録／再生・試験部１およびデータセントリックフレームワーム２，３を含む。記録再生試験部は、記録媒体１０、記録処理部１１および再生・試験部１２を備えている。記録処理手段は、ソフトウェアの運用中に当該ソフトウェアから生成される個々のデータ、および、所定のヒューマンインタフェースを通じて得られる個々のイベントを、時系列の順に所定の記録媒体に記録する。再生・試験手段は、記録媒体に記録された個々のデータおよび個々のイベントを時系列の順に再生することによりソフトウェアの運用中に発生した個々の事象を順次再現するとともに、各再生結果とそれぞれの期待値との照合を行って試験結果を表示装置１３に出力する。【選択図】図１
2019057089.tif 000002
【特許請求の範囲】
【請求項１】
データセントリック指向で開発されたソフトウェアの動作を試験するソフトウェア自動試験装置であって、
前記ソフトウェアの運用中に当該ソフトウェアから生成される個々のデータ、および、所定のヒューマンインタフェースを通じて得られる個々のイベントを、時系列の順に所定の記録媒体に記録する記録処理手段と、
前記記録媒体に記録された個々のデータおよび個々のイベントを時系列の順に再生することにより前記ソフトウェアの運用中に発生した個々の事象を順次再現するとともに、各再生結果とそれぞれの期待値との照合を行って試験結果を出力する再生・試験手段と
を具備する、ソフトウェア自動試験装置。
【請求項２】
前記再生・試験手段は、各データから各事象を生じさせるデータドリブンの制御を行う、請求項１に記載のソフトウェア自動試験装置。
【請求項３】
前記再生・試験手段は、同一のプロセッサ内でやり取りされる個々のデータもしくはイベントについては、ソフトウェア割込みが実現する単位時間刻みの精度で個々のデータもしくはイベントを時系列の順に再生する、請求項１又は２に記載のソフトウェア自動試験装置。
【請求項４】
前記再生・試験手段は、異なるプロセッサ間でやり取りされる個々のデータもしくはイベントについては、所定の転送プロトコルが実現する単位時間刻みの精度で個々のデータもしくはイベントを時系列の順に再生する、請求項１乃至３のいずれか１項に記載のソフトウェア自動試験装置。
【請求項５】
前記所定の転送プロトコルは、ＰＴＰ（Picture Transfer Protocol）に相当するものである、請求項１に記載のソフトウェア自動試験装置。
【請求項６】
前記再生・試験手段は、再生結果および試験結果を表示装置の画面に表示させる、請求項１乃至５のいずれか１項に記載のソフトウェア自動試験装置。
【請求項７】
データセントリック指向で開発されたソフトウェアの動作を試験するソフトウェア自動試験方法であって、
記録処理手段により、前記ソフトウェアの運用中に当該ソフトウェアから生成される個々のデータ、および、所定のヒューマンインタフェースを通じて得られる個々のイベントを、時系列の順に所定の記録媒体に記録し、
再生・試験手段により、前記記録媒体に記録された個々のデータおよび個々のイベントを時系列の順に再生することにより前記ソフトウェアの運用中に発生した個々の事象を順次再現するとともに、各再生結果とそれぞれの期待値との照合を行って試験結果を出力する
ことを含む、ソフトウェア自動試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ソフトウェア自動試験装置およびソフトウェア自動試験方法に関する。
【背景技術】
【０００２】
周知のソフトウェア自動試験装置の例としては、ＨＭＩ（Human Machine Interface）のマウスイベント等の単一のイベントを記録することでオペレータの操作を再現して試験を行う自動試験装置などが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１０８７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＨＭＩを通じたオペレータの操作のみを再現することは容易であるが、システム全体を制御するソフトウェアの運用中に発生する様々な事象を再現することは容易なことではない。一般にソフトウェアの試験は人の手で行われ、再試験の実施を繰り返すことにもなるため、実現のために莫大な作業工数を要し、改修時にデグレーションも生じやすい。
【０００５】
例えば航空機に搭載されるシステムなどでは、重量等に制限があることから、大容量の記憶装置等を積むことができず、メモリの容量も限られるため、ソフトウェアの運用中に発生するあらゆる事象を記録できるわけではない。飛行中に生じたソフトウェアに起因する不具合の事象を再現するには、メモリ内の限られたログと、人が書き残したメモ等に頼らざるをえない。このような状況のもとで、再現性のない不具合等の事象を再現することは、非常に困難なことである。また、これを実現しようとすると莫大な費用と時間がかかる。
【０００６】
発明が解決しようとする課題は、費用や工数を抑えつつ、ソフトウェアの運用中に発生する事象を再現することを可能にするソフトウェア自動試験装置およびソフトウェア自動試験方法を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態のソフトウェア自動試験装置は、データセントリック指向で開発されたソフトウェアの動作を試験するソフトウェア自動試験装置であって、前記ソフトウェアの運用中に当該ソフトウェアから生成される個々のデータ、および、所定のヒューマンインタフェースを通じて得られる個々のイベントを、時系列の順に所定の記録媒体に記録する記録処理手段と、前記記録媒体に記録された個々のデータおよび個々のイベントを時系列の順に再生することにより前記ソフトウェアの運用中に発生した個々の事象を順次再現するとともに、各再生結果とそれぞれの期待値との照合を行って試験結果を出力する再生・試験手段とを具備する。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るソフトウェア自動試験装置を含むシステム全体の構成の一例を示す図。
【図２】表示装置の画面に表示される再生結果の画像の例（もしくは試験結果の画像の例）を示す図。
【図３】表示装置の画面に表示される試験結果の要約の例を示す図。
【図４】ソフトウェア自動試験装置による動作の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施の形態について説明する。
【００１０】
以下に説明する実施形態に示されるソフトウェア自動試験装置は、例えばデータセントリック指向で開発したソフトウェアのデータ（操作環境状況、サブシステム状況、認識状況等の情報、イベント、コマンド、ビデオ／オーディオ、ストリーム等）とＨＭＩのイベント（ＧＵＩツールのＸイベント等）を時系列で記録し、運用中に発生した事象の再現、および、記録データの再生と期待値との照合による自動試験を実施するものである。これにより、ソフトウェア完成後の再現性のない事象の効率的な解析と再試験に要する莫大な工数の削減を実現しながら品質を確保することを実現する。
【００１１】
図１は、一実施形態に係るソフトウェア自動試験装置を含むシステム全体の構成の一例を示す図である。
【００１２】
図１に示されるように、本システムは、記録／再生・試験部１およびデータセントリックフレームワーム２，３を含む。記録再生試験部１は、記録媒体１０、記録処理部１１、および再生・試験部１２を備えている。データセントリックフレームワーム２側には、ＨＭＩが用意され、このＨＭＩには入力装置および表示装置を備えた情報処理装置（コンピュータ等）が接続される。また、データセントリックフレームワーム３側には、表示装置１３あるいは表示部を備えたコンピュータ等（以下、「表示装置１３」と称す。）が用意される。
【００１３】
本実施形態に係るソフトウェア自動試験装置は、予め定められたデータセントリックアーキテクチャに従いデータセントリック指向で開発されたソフトウェアを対象とし、その動作（振る舞い）を自動試験する装置である。このソフトウェア自動試験装置は、例えば、少なくとも記録／再生・試験部１を含む。但し、ソフトウェア自動試験装置の構成要素はこれに限定されるものではない。
【００１４】
例えば、本実施形態に係るソフトウェア自動試験装置は、記録／再生・試験部１に加えて、データセントリックフレームワーム２，３の両方を有する構成であってもよいし、あるいは、データセントリックフレームワーム２，３の少なくとも一部を有する構成であってもよい。また、本実施形態に係るソフトウェア自動試験装置は、記録処理部１１および再生・試験部１２のみからなる構成、あるいは、再生・試験部１２のみからなる構成とし、これ以外の機能を別の情報処理装置が補う構成としてもよい。
【００１５】
データセントリックフレームワーム２は、ソフトウェアの運用中に当該ソフトウェアから順次生成される個々のデータ（例えば、複数のプロセスＡ，Ｂ，・・・の間でやり取りされる個々の情報。以下、「デイタム」と称す。）を取得して記録処理部１１へ順次供給する機能と、同ソフトウェアの運用中にヒューマンインタフェース（ＨＭＩ）を通じて送受される個々のイベント（例えば、オペレータの入力操作に応じて生成されるＧＵＩツールのＸイベント）を記録処理部１１へ順次供給する機能とを有する。
【００１６】
デイタムの例としては、操作環境状況、サブシステム状況、認識状況等の情報、イベント、コマンド、ビデオ／オーディオ、ストリーム等が挙げられる。
【００１７】
記録処理部１１は、ソフトウェアの運用中にデータセントリックフレームワーム２から順次供給される個々のデイタムを時系列の順に記録媒体１０に記録するデイタム記録機能（DatumREC機能）と、同ソフトウェアの運用中にデータセントリックフレームワーム２から順次供給されるＨＭＩの個々のイベントを時系列の順に記録媒体１０に記録するイベント記録機能（HMIREC機能）とを有する。
【００１８】
DatumREC機能により時系列の順に記録された個々のデイタムおよびDatumREC機能により時系列の順に記録された個々のイベントは、データドリブンの制御によりソフトウェア運用時における個々の事象を時系列の順に再現することを保証する。
【００１９】
記録媒体１０は、記録処理部１１のDatumREC機能により記録された個々のデイタムと記録処理部１１のHMIREC機能により記録された個々のイベントとが混在する一連の時系列記録データを保管する。この時系列記録データは、試験実行時に再生・試験部１２により読み出されて使用される。
【００２０】
なお、時系列記録データは、個々のデイタムと個々のイベントとが混在する一連の時系列記録データとして保管してもよいが、個々のデイタムと個々のイベントとを別々に分けて保管するように構成してもよい。その場合、再生時には、個々のデイタムと個々のイベントとを合わせて時系列の順に配列させた上で再生を行うようにする。
【００２１】
再生・試験部１２は、記録媒体１０に記録された時系列記録データ（個々のデイタムおよび個々のイベント）から個々の事象を生じさせるデータドリブンの制御を行う機能を有する。この再生・試験部１２は、このデータドリブンの制御を行う機能により当該時系列記録データ（個々のデイタムおよび個々のイベント）を時系列の順に再生して、上記ソフトウェアの運用中に発生した個々の事象を順次再現するとともに、各再生結果とそれぞれの期待値との照合を行って試験結果を出力する機能を有する。この再生・試験部１２は、当該再生結果および試験結果を、例えば表示装置１３の画面に表示させることができる。
【００２２】
なお、個々のデイタムやイベントの再生時には、時間整合を確実にするための工夫を施しておくことが望ましい。そのためには、例えば、再生・試験部１２は、同一のプロセッサ内でやり取りされる個々のデイタムもしくはイベントについては、ソフトウェア割込みが実現する単位時間刻みの精度で個々のデイタムもしくはイベントを時系列の順に再生するようにし、また、異なるプロセッサ間でやり取りされる個々のデイタムもしくはイベントについては、所定の転送プロトコル、例えば、ＰＴＰ（Picture Transfer Protocol）が実現する単位時間刻みの精度で個々のデイタムもしくはイベントを時系列の順に再生するようにする。なお、記録媒体１０に個々のデイタムおよび個々のイベントを記録する際に、このような再生処理を保証する情報を定義するようにしてもよい。
【００２３】
データセントリックフレームワーム３は、再生・試験部１２から出力される個々のデイタムおよび個々のイベントに従って個々の事象を順次再現する環境を提供する。例えば、データセントリックフレームワーム３は、再生・試験部１２により再現される個々の事象（例えば、運用時のソフトウェアの複数のプロセスＡ，Ｂ，・・・の動作により生じた個々の事象や、オペレータの入力操作により生じた個々の事象）を、時系列の順に表示装置１３の画面に表示させることができる。
【００２４】
次に、図２および図３を参照して、本実施形態に係るソフトウェア自動試験装置により自動試験を実施した際に表示装置１３の画面に表示される再生結果および試験結果の一例を説明する。
【００２５】
図２は、表示装置１３の画面に表示される再生結果の画像の例（もしくは試験結果の画像の例）を示す図である。図３は、表示装置１３の画面に表示される試験結果の要約の例を示す図である。
【００２６】
ここでは、一例として、ラインの描画を行う「ライン描画部品」の機能（パブリックメソッド）を対象に単体試験を行った場合について説明する。
【００２７】
ライン描画部品の機能（パブリックメソッド）を対象に単体試験を行う際には、予め定められた自動試験シナリオの処理を実施する。これにより、図３に示されるように、ライン描画部品の機能（パブリックメソッド）の試験結果の要約が表示される。
【００２８】
図３の例では、試験結果の各種項目（試験番号、表示部品名、テストパターン、判定基準、エビデンス、判定）がごとに内容が表示されている。ここでは、試験番号ごとに、ライン描画部品に対する各種のテストパターンが適用され、テストパターンごとに、所定の判定基準（テストパターン実施後に取得した属性値が入力データと同じであること）に基づく合否判定の結果（ＯＫまたはＮＧ）がエビデンスと共に表示される。
【００２９】
この試験結果の例では、２番目の試験番号「XXX-02」のテストパターン「削除する」に関して判定「ＮＧ」という結果が出ている。ここで、「ＮＧ」の部分をクリック操作して選択を行うと、そのエビデンスとして、図２のように、ラインが削除されていないことを確認できる画像が別画面で拡大表示される。図２の例では、不要なライン（横線）が残っている様子を確認することができる。
【００３０】
次に、図４を参照して、ソフトウェア自動試験装置による動作の一例を説明する。
【００３１】
ソフトウェア自動試験装置の記録／再生・試験部１は、記録処理部１１により、ソフトウェアの運用中にデータセントリックフレームワーム２から順次供給される個々のデイタムを時系列の順に記録媒体１０に記録する処理と、同ソフトウェアの運用中にデータセントリックフレームワーム２から順次供給されるＨＭＩの個々のイベントを時系列の順に記録媒体１０に記録する処理とを実施する（ステップＳ１）。
【００３２】
次に、ソフトウェア自動試験装置の記録／再生・試験部１は、再生・試験部１２により、記録媒体１０に記録された時系列記録データ（個々のデイタムおよび個々のイベント）から個々の事象を生じさせるデータドリブンの制御を行うことで、当該時系列記録データ（個々のデイタムおよび個々のイベント）を時系列の順に再生して、上記ソフトウェアの運用中に発生した個々の事象を順次再現し（ステップＳ２）、また、各再生結果とそれぞれの期待値との照合を行って試験結果を出力する（ステップＳ３）。なお、ステップＳ２とＳ３の各処理は同時進行で実施してもよい。
【００３３】
本実施形態によれば、システム全体を制御するソフトウェアの運用中に発生する個々の事象を再現することが容易となる。
【００３４】
また、従来のように試験を人の手で行って再試験の実施を繰り返したり、莫大な作業工数を要したり、改修時にデグレーションが生じたりすることを抑えることができる。
【００３５】
また、本実施形態のソフトウェア自動試験装置を、例えば航空機に搭載されるシステムなどに適用した場合にも、飛行中に生じた機器類などの不具合の事象を高精度で再現しやすくなり、再現性がないとされていた不具合等の事象を再現することが容易となり、莫大な費用や時間をかけずに実現することが可能となる。
【００３６】
以上詳述したように、上記実施形態によれば、費用や工数を抑えつつ、ソフトウェアの運用中に発生する事象を再現することが可能になる。
【００３７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３８】
１…記録／再生・試験部、２，３…データセントリックフレームワーム、１０…記録媒体、１１…記録処理部、１２…再生・試験部、１３…表示装置（あるいは表示部を備えたコンピュータ等）。
【図１】
2019057089.tif 000003
【図２】
2019057089.tif 000004
【図３】
2019057089.tif 000005
【図４】
2019057089.tif 000006