JP5613721B2 - テスト支援システム、テスト支援方法、及びプログラム - Google Patents

テスト支援システム、テスト支援方法、及びプログラム Download PDF

Info

Publication number
JP5613721B2
JP5613721B2 JP2012114229A JP2012114229A JP5613721B2 JP 5613721 B2 JP5613721 B2 JP 5613721B2 JP 2012114229 A JP2012114229 A JP 2012114229A JP 2012114229 A JP2012114229 A JP 2012114229A JP 5613721 B2 JP5613721 B2 JP 5613721B2
Authority
JP
Japan
Prior art keywords
test
support system
pattern
program
condition
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.)
Expired - Fee Related
Application number
JP2012114229A
Other languages
English (en)
Other versions
JP2013242638A (ja
Inventor
▲高▼野 英樹
英樹 ▲高▼野
祖父江 恒夫
恒夫 祖父江
俊一郎 古畑
俊一郎 古畑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012114229A priority Critical patent/JP5613721B2/ja
Priority to US13/895,814 priority patent/US9569344B2/en
Priority to CN201310182909.9A priority patent/CN103425578B/zh
Publication of JP2013242638A publication Critical patent/JP2013242638A/ja
Application granted granted Critical
Publication of JP5613721B2 publication Critical patent/JP5613721B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)

Description

本発明は、テスト支援システム、テスト支援方法、及びプログラムに関し、特に、携帯情報端末やカーナビゲーション端末のような移動体の機能を実現するプログラムのテストを支援する技術に関する。
プログラム開発者は、プログラムのテストを実施するときに、テスト対象のプログラムを様々な条件下で動作させ、各条件の元で仕様通りに動作することを確認する作業を行う。テスト作業は、プログラム開発全体の50%近くの時間を要することもあり負担が大きい作業である。
例えば、特開2007−52703号公報(特許文献1)は、画面の変化を伴うアプリケーションの検証に用いるテストシナリオを作成するテストシナリオ作成方法をコンピュータに実行させるテストシナリオ作成プログラムを開示する。
このプログラムは、アプリケーションの設計情報を取得する設計情報取得ステップと、設計情報と予め設定された生成ルールとに基づいて、テストシナリオの一部の情報を持つテストシナリオ雛形情報を生成するテストシナリオ雛形情報生成ステップと、設計情報に基づいてテストシナリオ雛形情報に対して設定を行った結果を前記テストシナリオとするテストシナリオ設定ステップと、をコンピュータに実行させる。
一方、携帯電話やカーナビゲーションシステムが利用するGPS(Global Positioning System)、WiFi(wireless fidelity)(登録商標)基地局又は携帯電話基地局等を用いた位置測位システムを利用して、携帯電話やカーナビゲーション端末が特定の地理的位置にあるときや、そのときの走行状態に応じて、処理を実施する機能が存在する。例えば、危険位置の警告機能や、広告の配信機能等が知られている。
特開2007−52703号公報
例えば、カーナビゲーションシステムの分野において、ユーザの要求に応じてカスタマイズされたカーナビゲーションシステムを提供することが要求されている。様々なユーザ要求に応えるために、カーナビゲーションシステムに実装される機能も様々であり、様々な機能のそれぞれに、テストが必要となる。
このような機能をテストするとき、携帯電話やカーナビゲーション端末をその位置に持って行き、多様な条件下でのテストを実施することは難しい。そのため、プログラムの機能のテストは、その位置にいることをエミュレートするための位置情報のダミーデータを用意し、そのダミーデータをテスト対象のプログラムに入力する。
しかし、テストを行うために必要なダミーデータを開発者が個々に生成する場合、開発者があらゆるテストケースを検討し、さらに、必要かつ十分なダミーデータを生成するためのテストケースを作成することが必要であり、その手間が大きい。特許文献1のテストシナリオ作成方法は、地理的位置に付随する条件を考慮しないため、地理的位置に応じて処理を実行するプログラムのテストを行う場合には、プログラムが実際の動作と異なる動作をしてしまう。
本発明の一態様は、プロセッサと記憶デバイスとを含み、地図情報上の移動体の位置に応じて動作するプログラムの機能のテストを支援する、テスト支援システムである。前記記憶デバイスは、前記地図情報と、前記プログラムにおけるイベントの発生条件を定義するイベント発生条件情報と、を保持する。前記発生条件は、前記地図情報における指定位置と、当該指定位置に対する前記移動体の動きの条件と、を規定する。前記プロセッサは、前記地図情報と前記イベント発生条件情報とを参照して、前記地図情報における前記指定位置と前記移動体の前記指定位置に対する動きとを規定し、前記イベントが前記発生条件に従って発生することを確認するために前記プログラムに入力されるテストデータを生成するために参照される、複数のテストケース、を生成する。
本発明の一態様によれば、地図情報における位置に依存する移動体の機能が仕様通りに正しく動作することをテストするときに、そのテストの手間を削減することができる。上記以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本実施形態における、テスト支援システムの計算機の構成を模式的に示すブロック図である。 本実施形態における、テスト支援システムがテストケースを生成し、さらに、そのテストケースからテストデータを生成する処理のデータフローを示している。 本実施形態における、イベント発生条件テーブルの構成例を示す。 本実施形態における、テストポリシテーブルの構成例を示す。 本実施形態における、地図データにおける、あるエリアの地図及び被テスト機能のテストケースに含まれ得る軌跡を示している。 本実施形態における、テストケース生成プログラムがテストケースを生成する処理例のフローチャートである。 図6に示すフローにおけるデータの流れを示している。 本実施形態における、走行軌跡のパターン生成ステップが生成する走行軌跡パターンの例を説明する図である。 本実施形態における、車両速度のパターン生成ステップが生成する車両速度のパターンの例を説明する図である。 本実施形態における、車両加速度のパターン生成ステップが生成する車両加速度のパターンの例を説明する図である。 本実施形態における、車両向きのパターン生成ステップが生成する車両向きのパターンの例を説明する図である。 本実施形態における、GPS取得タイミングのパターン生成ステップが生成するGPS取得タイミングのパターンの例を説明する図である。 本実施形態における、テストケース生成プログラムが、図7B〜図7Fのパターンから生成するテストケースを説明する図である。 本実施形態における、テストデータ生成プログラムの処理例のフローチャートを示している。 本実施形態における、テストポリシをユーザが定義するためのGUI画像の例を示している。 本実施形態における、イベント発生条件定義するためのGUI画像の例を示している。 本実施形態における、テスト管理画像の一例1100を示す。
以下、添付図面を参照して本発明の実施形態について説明する。以下の説明及び添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装してもよいし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装してもよい。
以後の説明では「テーブル」形式によって本実施形態で利用される情報について説明するが、情報は必ずしもテーブルによるデータ構造で表現されていなくてもよく、リスト、DB、キュー等のデータ構造やそれ以外で表現されていてもよい。データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ID」という表現を用いることがあり、これらはお互いに置換が可能である。
以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。
また、プログラムを主語として開示された処理は、計算機又は情報処理装置が行う処理としてもよい。プログラムの一部又は全ては専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムはプログラム配布サーバや非一時的な記憶媒体によって計算機や情報処理装置にインストールされてもよい。
プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサは、制御プログラムに従って動作することで制御部として機能し、管理プログラムに従って動作することで管理部として機能する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
本実施形態は、携帯情報端末(携帯電話を含む)やカーナビゲーション端末のような移動端末(移動体に含まれる)の機能を実現するプログラムのテストを支援する手法を開示する。本実施形態の手法は、地図データを参照し当該地図データにおける移動体の現在位置に応じて特定のイベントを実行するプログラム、のテストを支援する。イベントは、予め定義されている条件が満たされている場合にプログラムの特定機能が実行する処理である。機能が起動され処理を行うことで、イベントが発生する。
本実施形態は、地図データに及び移動体の位置に応じて動作する様々な機能(機能によるイベント)のテストに適用することができる。テストされる機能の一例は、車両又は人のためのナビゲーションシステムにおいて、移動端末(カーナビゲーション端末、携帯情報端末等)が危険個所付近に差し掛かったときに、移動端末の画面にポップアップ画像出力又は音を出力して危険を通知する機能である。この出力が、イベントである。
他の例は、移動端末が特定の店の付近に差し掛かったときに、その特定の店の情報を移動端末の画面にポップアップ表示する機能である。他の例は、地図データにおける移動体の現在位置及び当該移動体の動きに応じで当該移動体の速度を制御する機能である。例えば、ある機能は、車両が急カーブの手前を所定速度以上で走行している場合に、車両を減速させる。
本実施形態において、プログラムのテストは、地図データにおける位置が変化するテストデータをプログラムに対して入力することにより、当該プログラムのテスト対象とする機能が仕様通りに動作するか否か(仕様通りにイベントが発生するか否か)をテストする。本実施形態のプログラムテストは、テストデータをテストケースから自動生成することにより、又は、テストケースに従って移動体を移動することにより生成することができる。テストケースは、指定位置に対する移動体の動きを示す。
本実施形態のプログラムのテスト支援方法は、移動体の動きに応じてプログラムに与えられる様々な条件から、複数のテストケースを体系的に自動生成する。各テストケースは、移動体の動きを示す、移動体の地図データ上の軌跡(位置の変化)及び移動体の振る舞い(例えば、速度や向き)、を規定する。これにより、地図データにおける位置に依存する移動体の機能が、仕様通りに正しく動作することをテストするときに、そのテストの手間を削減することができる。
本実施形態において、テスト支援方法の一例は、生成したテストケースからテストデータ(エミュレーションのためのダミーデータ)を自動生成する。これにより、テストの手間を低減することができる。プログラムテストは、各テストケースに対応するテストデータをテストされるプログラムに入力し、各テストケースでプログラムの機能が正しく動作することを確認することにより、プログラムの不具合を洗い出し、プログラムの品質の向上を図る。
以下においては、カーナビゲーション端末上で動作し、地図データにおける地理的位置及び車両の振る舞いを示す走行状態に応じて動作するプログラムの機能のテスト(イベント発生のテスト)を省力化するために、当該プログラムのテストケースを自動生成する例を示す。以下に説明する例において、テストケースは、車両の移動を規定する。本例では、テストケースは、車両の軌跡及び振る舞いを規定する。さらに、以下の例は、生成した各テストケースから、各テストケースのテスト(被テストプログラムの機能テスト)を実施するときに用いるテストデータ(ダミーデータ)を自動生成する。
ダミーデータは、車両の軌跡や振る舞い(車両向きや速度等)を示す。例えば、ダミーデータは、GPS(Global Positioning System)のみから得られるデータであり、GPSで取得された緯度経度の点列データから、車両の軌跡、速度(連続した点の幅)、加速度(連続した点列の幅の広がり)、向き(連続した点列が成す角度)の各種データが得られる。
若しくは、ダミーデータは、複数のデバイスを利用して得られるデータからなることもある。例えば、軌跡データ、速度データ、加速度データ、向きデータは、それぞれ、GPSデバイス、車両の速度計測デバイス、加速度センサ、地磁気センサから得られる。
図1は、本実施形態におけるテスト支援システムの一例を示すブロック図である。本例において、テスト支援システムは計算機100である。テスト支援システムは複数の計算機を含むことができる。
図1に示すように、計算機100は、プログラムを実行するプロセッサであるCPU101、プログラム及びプログラムが使用するデータを保持する主記憶デバイスであるメモリ102、ディスプレイやプリンタ等の出力装置103、キーボードやマウス等の入力装置104を含む。
メモリ102は、テスト支援プログラムを保持している。テスト支援プログラムは、テストケース生成プログラム105及びテストデータ生成プログラム106、並びに、プログラムが参照するデータ(情報)である、イベント発生条件テーブル107、テストポリシテーブル108及び地図データ109を保持する。
説明の便宜上、プログラム及び当該プログラムが参照するデータは、主記憶デバイスであるメモリ102内に示されているが、典型的には、これらは、二次記憶デバイス(不図示)の記憶領域からメモリ102の記憶領域にロードされる。二次記憶デバイスは、所定の機能を実現するために必要なプログラム及びデータを格納する、不揮発性の非一時的記憶媒体を備える記憶デバイスである。二次記憶デバイスは、ネットワークを介して接続された外部の記憶デバイスでもよい。本実施形態において、記憶デバイスは、主記憶デバイス、二次記憶デバイス及びそれらの組合せを含む語である。
図2は、本例のテスト支援システム100が、テストケースを生成し、さらに、そのテストケースからテストデータを生成する処理のデータフローを示している。テスト支援システム100は、イベント発生条件テーブル107、テストポリシテーブル108、地図データ109を参照してテストケース201を生成する。さらに、生成したテストケース201からテストデータ202を生成する。
具体的には、テストケース生成プログラム105は、イベント発生条件テーブル107、テストポリシテーブル108、地図データ109を取得し、それらから、テストケース201を生成する。テストデータ生成プログラム106は、生成したテストケース201を取得して、それからテストデータ202を生成する。
イベント発生条件テーブル107、テストポリシテーブル108、地図データ109はテストケース生成プログラム105への入力データであり、テストケース201は、テストデータ生成プログラム106への入力データである。
上述のように、テストデータは、テスト対象のカーナビゲーションプログラムへの入力データであり、本例において、車両の軌跡及び振る舞いのデータを含む。軌跡データは、例えば、地図データ109で規定される道路上の軌跡及びその向き(道路上での進行方向)の情報を含む。振る舞いのデータは、例えば、車両の速度、加速度、車両向き等の情報を含む。軌跡のデータと振る舞いのデータは、それぞれ独立したデータとして、カーナビゲーションプログラムに入力可能である。
本例のイベント発生条件テーブル107は、車両の地理的な位置(地図上の位置)及び車両の振る舞いに応じて規定処理を実行する(規定イベントを発生させる)ソフトウェア機能について、その処理を実行する条件(イベントが発生する条件)を定義する。処理の結果がイベントである。
図3は、イベント発生条件テーブル107の構成例を示す。この例は、運転者に警告する機能のイベント発生条件を示す。具体的には、車両の進行方向の前方に急カーブがあり、急カーブから所定距離の位置に達した車両において、カーナビゲーションシステムの出力装置(表示装置及び/又は音声出力装置)により運転者に警告する機能のイベント発生条件を示す。
イベント発生条件テーブル107は、カテゴリカラム301、項目カラム302、値カラム303を有する。カテゴリカラム301は、イベント発生条件の項目(項目カラム302の値)を分類するカテゴリを格納する。本例においては、二つのカテゴリが定義されており、一つのカテゴリは「エリア」であり、もう一つのカテゴリは「車両」である。項目カラム302は、各カテゴリに属するイベント発生条件の項目を格納している。「値」303カラムは、項目カラム302における各項目の値を示す。
図3の例において、「エリア」の条件項目は、警告機能が起動する(イベント発生する)エリアについての条件を規定し、具体的には、当該エリアと、当該エリアにおける条件判定タイミング(機能が起動するタイミング)を規定する。北東コーナの緯度経度及び南西コーナの緯度経度で特定される矩形により、上記エリアが規定され、さらに、当該エリアの西側境界(北西コーナと南西コーナとの間の直線)への車両進入のタイミングで、条件判定されることが規定されている。
「車両」の条件項目は、警告機能が起動する(イベント発生する)車両の振る舞いを規定する。本例は、車両の速度が60km/h以上、車両の向きが北方向を基準として時計周りに70度〜110度(北東方向〜南東方向)である条件を規定する。車両の加速度の条件は適用されない。
本例の警告機能は、値カラム303に格納されている北東緯度経度及び南西緯度経度の値で規定される矩形エリアに西側境界(西端)から車両が進入したタイミングにおいて、車両の速度が60km/h以上であり、かつ、車両の向きが、北方向を基準として時計周りに70度〜110度の間にあるときに、警告を出力する。
本例は、イベント発生条件をテーブルで表現するが、CSV(Comma−Separated Values)やXML(Extensible Markup Language)等の他の表現を用いてもよい。本例において、イベント発生条件テーブル107のエリアは、北東緯度経度及び南西緯度経度で特定される矩形であるが、エリアは、中心緯度経度と半径を用いて円で表現することや、緯度経度列を用いて多角形で表現することができる。また、イベント発生条件は、条件判定タイミングを、進入時以外に、脱出時、エリア内の所定位置到達時等で規定することができる。
イベント発生条件は、機能に依存する。例えば、エリアの条件のみが規定される、車両について上記三つの要素の内の一部のみが規定されることもある。位置についての条件は、線や点で規定されることもある。
図5は、地図データ109における、あるエリアの地図及び本機能のテストケースに含まれ得る軌跡を示している。図5において、紙面上方向が真北方向である。図5の地図が示すエリアは、急カーブ521と、イベント発生条件テーブル107が規定するエリア510を含む。エリア510は、北東コーナ511と南西コーナ512の緯度経度で規定される。イベント発生条件テーブル107におけるイベント発生条件の判定タイミングは、エリア510の西端513から車両が進入したタイミングである。
図5においては、道路上の矢印(軌跡)531〜542は、それぞれ異なる軌跡を示している。軌跡531〜542は、始点、終点及び進行方向により定義されている。図5において、軌跡531〜542は、各軌跡を示すために、南北方向において四つの異なる位置配置されているが、テストデータにおける全ての軌跡は南北方向において同一位置(同一緯度)にある。軌跡531〜536は、カーブ512に向かう方向であり、軌跡536〜542は、カーブ512から離れる方向である。
イベント発生条件テーブル107が規定するエリア項目は、エリア510の西側境界513から車両がエリア510に進入したタイミングで、イベント発生条件を判定することを規定する。図5の軌跡531〜542において、この条件を満たす軌跡は、軌跡531である。軌跡の始点、終点及び進行方向から、各軌跡が、この条件が満たすか否かを判定することができる。
軌跡536〜542は、進行方向の条件を満たしていない。軌跡532は、始点がエリア510内にあり、エリアへの進入の条件を満たしていない。軌跡533、536は、始点及び終点がエリア510外にあり、エリアへの進入の条件を満たしていない。軌跡534、535は、始点及び終点がエリア510内にあり、エリアへの進入の条件を満たしていない。
つまり、始点がエリア510外にあり、始点と終点との間に西側境界513が位置し、進行方向が東方向である軌跡が、イベント発生条件テーブル107が規定するエリア項目の条件を満たす軌跡であり、図5の例において、軌跡531のみが条件に適合する軌跡に相当する。
なお、判定タイミングをエリア510への進入時と規定し、車両向きの条件(本例で70度〜110度)によって、いずれの境界から進入した軌跡であればイベント発生条件に適合する軌跡であるかを判定してもよい。
テストポリシテーブル108は、テストの方針、つまり、テストケースの生成における方針を規定する。これにより、発生しうる全ての事象のテストケースから正確にテストを行うために必要なテストケースを選択することができ、全てのテストケースをテストすることなく、正確で効率的なテストを行うことができる。
図4は、テストポリシテーブル108の構成例を示し、図3のイベント発生条件テーブル107と同様に、運転者に警告する機能のテストポリシを規定する。テストポリシテーブル108はユーザ設定可能であり、ユーザ(開発者)は、テストポリシテーブル108を設定することで、自身が望むテストポリシを定義することができる。テストポリシテーブル108は、カテゴリカラム401、項目カラム402、ポリシカラム403を有する。
カテゴリカラム401は、テストポリシの項目(項目カラム402の値)を分類するカテゴリを格納する。本例においては、三つのカテゴリが定義されており、一つのカテゴリは「エリア」、他の一つのカテゴリは「車両」、他の一つのカテゴリは「GPS」(Global Positioning System)である。「エリア」及び「車両」のカテゴリは、それぞれ、イベント発生条件テーブル107における「エリア」及び「車両」のカテゴリに対応している。
これらはそれぞれ、イベント発生条件テーブル107が規定するエリアについてのテストケース生成のポリシ項目、車両の振る舞いについてのテストケース生成のポリシ項目、GPS動作についてのテストケース生成のポリシ項目を含む。項目カラム402は、各カテゴリに属するテストポリシの項目を格納している。ポリシ403カラムは、項目カラム402における各項目のテストポリシを示す。
本例において、カテゴリカラム401の「エリア」のカテゴリは、項目カラム402「イベント発生条件適合軌跡」と「イベント発生条件不適合軌跡」の項目を含む。図5に示す例において、イベント発生条件に適合する軌跡は軌跡531であり、イベント発生条件に不適合の軌跡は、他の全ての軌跡である。
ポリシカラム403は、「イベント発生条件適合軌跡」項目について、全ての軌跡のテストケースのテストを実施することを規定する。これは、イベント発生条件に適合する全ての軌跡のテストケースを生成することを意味する。さらに、ポリシカラム403は、「イベント発生条件不適合軌跡」項目について、イベント発生条件方向の軌跡のテストケースのテストを実施することを規定する。図5の例において、イベント発生条件方向は東方向であり、軌跡531〜軌跡531の進行方向がこの方向である。イベント発生条件不適合の軌跡のうち、軌跡532〜軌跡531のテストケースが生成される。
カテゴリカラム401の「車両」のカテゴリは、項目カラム402における、「速度」、「加速度」「車両向き」の項目を含む。これらは、それぞれ、イベント発生条件テーブル107における「速度」、「加速度」「車両向き」の項目に対応する。
「ポリシ403カラムは、「速度」項目について、デフォルト値(地図データ109に含まれる法における制限速度)、上限値及び下限値(1km/h及び150km/h)の二つの限界値のそれぞれのテストケースを生成することを規定する。「加速度」項目について、デフォルト値(0m/s^2)と、上限界値(8m/s^2)のそれぞれのテストケースを生成することを規定する。「車両向き」項目について、デフォルト値(イベント発生条件の中間値)のテストケースを生成することを規定する。
カテゴリカラム401の「GPS」のカテゴリは、項目カラム402における、「取得周期」及び「取得タイミング」の項目を含む。ポリシ403カラムは、「取得周期」項目について、カーナビゲーションプログラムが1秒毎に位置情報を取得するテストケースを生成することを規定する。さらに、ポリシ403カラムは、「取得タイミング」を取得周期の値の1/3(本例において1/3秒)ずつシフトしたテストケースを生成することを規定する。
本例は、「エリア」カテゴリにポリシに従って選択された軌跡について、「車両」及び「GPS」のカテゴリのポリシで規定された全てのパターン、つまり、条件値の全ての組合せのテストケースを生成する。具体的には、選択した軌跡のテストケースは、ポリシ403カラムで規定されている、車両速度値、加速度値、及びGSP取得タイミングの異なる値の全ての組合せのテストケースを生成する。全テストケースの車両向き及び取得タイミングの値は共通である。
生成されるテストケースの数が多過ぎる場合、テストポリシテーブル108は、選択した軌跡について生成可能なテストケースから一部のテストケースを選択することを規定してもよい。例えば、イベント発生条件に不適合の軌跡のテストケース生成は、ポリシ項目がデフォルト値を含む複数の値を含む場合、その項目においてそのデフォルト値のみを選択してもよい。例えば、イベント発生条件に不適合の軌跡のためには、限界値の加速度のテストケースは生成されない。これにより、イベント発生条件に応じて適切に、テストケースの数を低減することができる。
テストポリシは、テストされる機能に依存する。例えば、図4に示すテーブル108におけるエリアについてのポリシのみが規定される、エリアと車両のポリシのみが規定される、又は、各カテゴリにおける一部の項目のみが規定されることがある。これらと異なるカテゴリ又は項目のポリシが規定されることもある。
図6は、テストケース生成プログラム105が、テストケースを生成する処理例のフローチャートである。図7Aは、図6に示すフローにおけるデータの流れを示している。テストケース生成プログラム105は、テストポリシテーブル108、イベント発生条件テーブル107及び地図データ109を参照し、それらの情報からテストケースを生成する。
図6のフローチャートにおいて、テストケース生成プログラム105は、イベント発生条件テーブル107に含まれる「エリア」カテゴリの、「北東緯度経度」、「南西緯度経度」、及び、「タイミング」のエントリから、値カラム303の値を取得する(S101)。
次に、テストケース生成プログラム105は、取得した北東緯度経度の値及び南西緯度経度の値を頂点とした矩形を、地図データ109上で特定する。この矩形が、テストケース生成のためのエリア(図5におけるエリア510)である。さらに、テストケース生成プログラム105は、その矩形の辺を上記エリアの境界と特定し、その境界に交差する道路の情報を地図データ109から抽出する(S102)。図5の例においては、一つの道路のみが、エリア510の境界に交差する。
テストケース生成プログラム105は、抽出した各道路について(S103)、走行軌跡のパターン701、車両速度のパターン710、車両加速度のパターン704、車両向きのパターン713、GPS取得タイミングのパターン707、のそれぞれを生成する(S104、S105、S106、S107、S108)。テストケース生成プログラム105は、抽出した全ての道路についてステップS104〜ステップS108を繰り返したかを確認し(S109)する。
全ての道路についてステップS104〜ステップS108を繰り返していなければ(S109:NO)、テストケース生成プログラム105は、ステップ103に戻る。全ての道路についてステップS104〜ステップS108を繰り返し済みである場合(S109:YES)、テストケース生成プログラム105は、生成した走行軌跡のパターン701、車両速度のパターン710、車両加速度のパターン704、車両向きのパターン713、GPS取得タイミングのパターン707のそれぞれから選択されたパターンの全組合せ716を生成し、全組合せ716のテストケース717を生成する(S110)。
図7Bは、走行軌跡のパターン生成ステップS104が生成する、走行軌跡パターン701の例を説明する図である。この例は、図5に示す例における複数走行軌跡パターンを示す。図7Bは、走行軌跡パターン701をテーブルで説明しており、このテーブルは走行軌跡カラム702とイベント発生条件への適合/不適合カラム703とを有する。
走行軌跡カラム702は、走行軌跡の識別子を格納する。イベント発生条件への適合/不適合カラム703は、各走行軌跡がイベント発生条件の走行軌跡についての条件に適合するか否かを示す値を格納する。上述のように、各軌跡は、その始点、終点及び向きで特定することができ、生成される走行軌跡パターン701は、各軌跡をこれらの値で示すことができる。
図7Bにおいて、走行軌跡の識別子は、図5において走行軌跡に付されている参照符号と一致している。上述のように、軌跡531がイベント発生条件を満たすが、その他の軌跡はイベント発生条件を満たしていない。テストケース生成プログラム105は、テストポリシテーブル108の「エリア」のポリシに従って、イベント発生条件に適合する全ての軌跡とイベント発生条件に不適合の軌跡のうち、その方向がイベント発生方向である軌跡(パターン)を生成する。
具体的には、テストケース生成プログラム105は、イベント発生方向の軌跡のうち、以下の6種類の軌跡を生成する。(1)指定エリア510外から境界線を越える軌跡、(2)指定エリア510内から境界線を超える軌跡、(3)指定エリア510外におけるエリア境界直前(境界近傍)までの軌跡、(4)指定エリア510内におけるエリア境界近傍から境界を越えない軌跡、(5)指定エリア510内における位置からエリア境界直前(近傍)までの軌跡、(6)指定エリア510外におけるエリア境界近傍から開始する軌跡、を生成する。境界近傍位置は、境界から予め定められた距離内にある位置である。
図5において、軌跡531、軌跡532、軌跡533、軌跡534、軌跡535、軌跡535は、それぞれ、上記6種類の軌跡に該当する。図5の例では、エリア510に含まれる道路は一つだけであるが、複数の道が含まれるようにエリアが定義されることもある。また、道路によっては一方通行であることもあるため、その場合は、パターン抽出は、通行可能な一方向の軌跡のみを抽出する。テストケース生成プログラム105は、他の規則に従ってパターンを生成してもよい。
図7Cは、車両速度のパターン生成ステップS105が生成する、車両速度のパターン710の例を説明する図である。図7Cは、車両速度のパターン710をテーブルで説明している。このテーブルは、車両速度カラム711とイベント発生条件への適合/不適合712を有する。車両速度カラム711は、生成された車両速度の値(パターン)を格納し、イベント発生条件への適合/不適合712のカラムは、車両速度の各値が、イベント発生条件における車両速度の条件に適合するか否かを示す値を格納する。
テストケース生成プログラム105は、イベント発生条件及びテストポリシに従って、テストケース(車両速度のパターン710)に含める車両速度の値を決定する。また、本例においては、テストケース生成プログラム105は、イベント発生条件が車両速度の条件を含む場合、(1)条件で規定された速度、(2)条件で規定された速度−1km/h、(3)条件で規定された速度+1km/hのパターンを生成する。本例は、条件で規定された速度から1を減ずる又は加えるが、この予め定められた値は設計に依存し、1には限定されない。また、可算する値と減算する値が異なっていてもよい。
それらに加えて、テストケース生成プログラム105は、テストポリシが速度のデフォルト値を規定している場合、(4)その速度のデフォルト値のパターンを生成し、さらに、テストポリシに限界値の規定がある場合、(5)最小限界値の速度、(6)最大限界値の速度のパターンを生成する。このように、テストケース生成プログラム105が従う規則は、ユーザ設定可能なテストポリシに含まれる又はテストケース生成プログラム105内に予め定義されている。いずれの規則をいずれの方法で規定するかは、設計に依存する。これは、他のパターン生成において同様である。
図3に示すイベント発生条件テーブル107の例は、車両速度が60km/h以上である条件を規定している。従って、テストケース生成プログラム105は、車両速度のパターン710に、60km/h、(60−1)km/h、(60+1)km/h、のそれぞれを含める。
図4に示すテストポリシテーブル108の例は、車両速度について、デフォルト値と限界地を規定している。規定されているデフォルト値は制限速度であり、最小限界値は1km/h、最大限界値は150km/hである。従って、テストケース生成プログラム105は、車両速度のパターン710に、当該道路の制限速度、1km/h、150km/hのそれぞれを含める。
このように、本例においては、六つの車両速度の値(パターン)が、車両速度のパターン710に含まれる。図7Cに示す車両速度パターン710のテーブルは、これら、六つの車両速度の値(パターン)を示している。なお、生成するパターンのいずかのペアが同一値である場合は、一方を選択すればよい。
テストケース生成プログラム105は、他の規則に従ってパターンを生成してもよい。例えば、イベント発生条件が速度条件を規定していない場合、テストケース生成プログラム105は、テストポリシが規定するデフォルト値のパターンのみを生成してもよい。または、イベント発生条件が速度条件を規定している場合、テストケース生成プログラム105は、デフォルト値のパターンを生成しなくともよい。これらは、他の種類のパターン生成において同様である。
図7Dは、車両加速度のパターン生成ステップS106が生成する、車両加速度のパターン704の例を説明する図である。図7Dは、車両加速度のパターン704をテーブルで説明している。このテーブルは、車両加速度カラム705とイベント発生条件への適合/不適合カラム706を有する。車両加速度カラム705は、生成された車両加速度の値(パターン)を格納し、イベント発生条件への適合/不適合706のカラムは、車両加速度の各値が、イベント発生条件における車両加速度の条件に適合するか否かを示す値を格納する。
テストケース生成プログラム105は、イベント発生条件及びテストポリシに従って、テストケース(車両加速度のパターン704)に含める車両加速度の値を決定する。また、本例においては、テストケース生成プログラム105は、イベント発生条件に加速度の規定がある場合、(1)条件で規定された加速度、(2)条件で規定された加速度−1m/s^2、(3)条件で規定された加速度+1m/s^2、のパターンを生成する。本例は、条件で規定された加速度から1を減ずる又は加えるが、この予め定められた値は設計に依存し、1には限定されない。また、可算する値と減算する値が異なっていてもよい。
それらに加えて、テストケース生成プログラム105は、テストポリシが限界値を規定している場合、(4)最小限界値の加速度、(5)最大限界値の加速度のパターンを生成する。さらに、テストポリシがデフォルト値を規定している場合、テストケース生成プログラム105は、(6)加速度のそのデフォルト値のパターンを生成する。
図3に示すイベント発生条件テーブル107の例は、加速度の条件を規定していない。図4に示すテストポリシテーブル108の例は、加速度について、デフォルト値と限界値を規定している。従って、テストケース生成プログラム105は、それら二つのパターンを生成する。図7Dの例が示すように、車両加速度のパターン704は、デフォルト値0m/s^2のパターンと、限界値8m/s^2のパターンで構成されている。イベント発生条件は加速度について規定していないため、いずれのパターンもイベント発生条件に適合である。
図7Eは、車両向きのパターン生成ステップS107が生成する、車両向きのパターン713の例を説明する図である。図7Eは、車両向きのパターン713をテーブルで説明している。このテーブルは、車両向きカラム714とイベント発生条件への適合/不適合715を有する。車両向きカラム714は、生成された車両向きの値(パターン)を格納し、イベント発生条件への適合/不適合715のカラムは、車両向きの各値が、イベント発生条件における車両向きの条件に適合するか否かを示す値を格納する。
テストケース生成プログラム105は、イベント発生条件及びテストポリシに従って、テストケース(車両加速度のパターン704)に含める車両加速度の値を決定する。また、本例においては、テストケース生成プログラム105は、イベント発生条件に向きの規定がある場合、(1)条件で規定された小さい角度(最小角度)と大きい角度(最大角度)の中心、(2)条件で規定された小さい角度、(3)条件で規定された大きい角度、(4)条件で規定された小さい角度−1度、(5)条件で規定された大きい角度+1度、のパターンを生成する。
本例は、条件で規定された最小角度から1度を減じ、最大角度に1度を加算するが、これらの予め定められた数値は設計に依存し、1には限定されない。また、可算する値と減算する値が異なっていてもよい。
これらに加えて、テストポリシが加速度の限界値を規定している場合、(6)最小限界値の角度、(7)最大限界値の角度のパターンを生成する。さらに、テストポリシが加速度のデフォルト値を規定している場合、テストケース生成プログラム105は、(8)デフォルト値のパターンを生成する。
図3に示すイベント発生条件テーブル107の例は、車両向きの角度範囲を規定している。従って、テストケース生成プログラム105は、その角度範囲の値から、上記五つのパターンを生成する。
図4に示すテストポリシテーブル108の例は、車両向きのデフォルト値を規定している。従って、テストケース生成プログラム105は、そのデフォルト値のパターンを生成する。本例では、デフォルト値と、イベント発生条件の角度範囲の中心値が一致するため、デフォルト値のパターン生成は不要である。
図7Eの例が示すように、車両向きのパターン713は、イベント発生条件が規定する角度範囲の中心値の90度、その小さい角度の70度、その大きい角度の110度、70度より1度小さい69度、そして110度より1度大きい111度のパターンで構成されている。
図7Fは、GPS取得タイミングのパターン生成ステップS108が生成する、GPS取得タイミングのパターン707の例を説明する図である。図7Fは、GPS取得タイミングのパターン707をテーブルで説明している。このテーブルは、GPS取得タイミングカラム708とイベント発生条件への適合/不適合709を有する。GPS取得タイミングカラム708は、生成されたGPS取得タイミングの値(パターン)を格納し、イベント発生条件への適合/不適合カラム709は、GPS取得タイミングの各値が、イベント発生条件における車両向きの条件に適合するか否かを示す値を格納する。
テストケース生成プログラム105は、イベント発生条件及びテストポリシに従って、テストケース(GPS取得タイミングのパターン707)に含めるGPS取得タイミングの値を決定する。図3に示すイベント発生条件テーブル107の例は、GPS取得周期を1秒と規定する。図4に示すテストポリシテーブル108の例は、GPS取得タイミングについて、「取得周期/3ずつシフト」を規定する。
テストケース生成プログラム105は、テスト開始を基準として、取得周期の開始を1/3秒ずつずらした三つのパターンを生成する。図7FのGPS取得タイミングのパターン707の例は、テスト開始から0秒後から取得開始のパターン、テスト開始から1/3秒後から取得開始のパターン、テスト開始から2/3秒後から取得開始のパターン、で構成されている。「取得周期/nずつシフト」(nは1以上の整数)と規定されている場合、GPS取得タイミングのパターン707は、取得開始時刻がテスト開始時刻から周期/nずつ異なる、nパターンで構成される。
位置情報の異なる取得タイミングを生成する方法は、上記例に限定されず、テスト支援システムの設計に依存する。上記例のシフト量は一定であるが、これらは異なっていてもよい。シフト量は、取得周期とは独立した値であってもよい。テスト開始と取得タイミングが一致していなくともよい。
上記各種類のパターンの生成方法は一例であって、これらに限定されない。テストケース生成プログラム105は、は、イベント発生条件で一つの数値が規定されている場合、その値及び近傍値の全て又は一部のパターンを生成することができる。イベント発生条件で数値範囲が規定されている場合、その限界値、限界値の近傍値、及び中心値の全て又は一部のパターンを生成することができる。ポリシについても同様である。
図7Gは、テストケース生成プログラム105が、図7B〜図7Fのパターンから生成するテストケースを説明する図であり、全てのテストケースの一部を示す。各エントリは、一つのテストケースに対応する。
図7Gのテーブルは、走行軌跡カラム718、車両速度カラム719、車両加速度カラム720、車両向きカラム721、GPS取得タイミングカラム722、イベント発生条件への適合/不適合カラム723を有する。イベント発生条件への適合/不適合カラム723は、各エントリにおいて、組合せにおけるいずれかのパターンの値がイベント発生条件に不適合であれば、不適合を示す値を格納する。
上述のように、テストケース生成プログラム105は、生成した走行軌跡のパターン701、車両速度のパターン710、車両加速度のパターン704、車両向きのパターン713、GPS取得タイミングのパターン707のそれぞれから一つのパターンを選択し、各テストケースを生成する。図7Gにおいて、各テストケースの構成要素のパターンは、上記6種類の六つのパターンである。全てのテストケースのパターンの組合せは異なり、6種類の六つのパターンの全ての組合せのテストケースが生成される。
テストデータ生成プログラム106では、生成されたテストケース717からテストデータを生成する。図8は、テストデータ生成プログラム106の処理例のフローチャートを示している。
図8のフローチャートにおいて、テストデータ生成プログラム106は、各テストケースについて、それ以下のステップを繰り返す(S201)。ステップS202において、テストデータ生成プログラム106は、テストケースの走行軌跡に対応する緯度、経度の点列を取得する。
次に、テストデータ生成プログラム106は、車両速度を考慮し、最初のGPS取得タイミングにおける走行軌跡上の緯度、経度を取得し、車両速度、車両加速度、車両向きと共に保存する(S203)。テストデータ生成プログラム106は、車両速度を考慮し、GPS取得周期後の走行軌跡上の緯度、経度を算出する(S204)。さらに、テストデータ生成プログラム106は、その緯度、経度及び、車両速度、車両加速度、車両向きを保存する(S205)。
テストデータ生成プログラム106は、走行軌跡の終了位置に到達したかどうかを確認する(S206)。到達していなければ(S206:N)、テストデータ生成プログラム106は、ステップS204からその後のステップを繰り返す。到達していれば(S206:Y)、テストデータ生成プログラム106は、保存していた緯度、経度、車両速度、車両加速度、車両向きの組を、テストデータとして出力する(S207)。
テストデータ生成プログラム106は、全てのテストケースについてステップS203〜ステップS207を繰り返したかを確認する(S208)。繰り返していなければ(S208:N)、テストデータ生成プログラム106は、ステップS202からその後のステップを繰り返す。全てのテストケースについて繰り返しが終わっていれば(S208:Y)、テストデータ生成プログラム106は、このフローを終了する(S209)。
なお、テストデータにおける各位置での値の組合せは、プログラムに依存する。上記例は、位置、速度、加速度及び向きの値の複数の組合せでテストデータが構成されているが、例えば、他のプログラムのテストデータにおける組合せは、位置及びそれ以外の要素の一部の組合せであることもある。
図9は、テストポリシをユーザが定義するためのGUI画像の例900を示している。このGUIは、テスト支援プログラムに含まれるGUIプログラム(不図示)が、出力装置103上で提示し、ユーザは、必要な情報を、入力装置104により入力する。GUIプログラムは、入力された定義情報を、テストポリシテーブル108に登録する。
「イベント発生条件適合軌跡」901は、イベント発生条件テーブル108における「イベント発生条件適合軌跡」のポリシの入力フィールドである。「イベント発生条件不適合軌跡」901は、イベント発生条件テーブル108における「イベント発生条件不適合軌跡」のポリシの入力フィールドである。例えば、ユーザは、プルダウンメニューから、これらに対する定義を選択することができる。
ユーザは、車両の速度について、「デフォルト値」フィールド903、「最小限界値」フィールド904、「最大限界値」フィールド905において値を定義することができる。車両の加速度につても同様に、「加速度」フィールド906、「最小限界値」フィールド907、「最大限界値」フィールド908において値を定義することができる。車両の向きについて、「デフォルト値」フィールド909において値を定義することができる。
GPSの「取得周期」フィールド910において定義される値は、どのくらいの頻度でGPSを受信するのかを示す。「タイミング」フィールド911において定義される値は、取得周期をどのくらいずらしたテストを実施するのかを示す。例えば、ユーザが取得周期に1秒毎を規定し、タイミングに取得周期/3、つまり、1/3秒を規定する。
この例において、テストケース生成プログラム105は、テスト開始から0/3秒後から1秒毎にGPSの取得を開始するケース、テスト開始から1/3秒後から1秒毎にGPSの取得を開始するケース、2/3秒後から1秒毎にGPSの取得を開始するケースを生成する。定義が終了したら、ユーザは保存ボタン912を押下し、GUIプログラムは、それに応答して、定義した値をテストポリシテーブル108に反映、保存する。
図9に示すテストポリシ定義画像900は一例であって、定義可能な要素は、テスト支援装置の設計に依存する。他の例は、図9が示す要素の一部のみ又はこれら要素とは異なる要素を定義可能なGUIを提供する。また、各要素の表示方法は、GUIのデザインに依存し、図9の例に限定されない。
図10は、イベント発生条件定義するためのGUI画像の例1000を示している。ユーザは、地図画面のエリアのハンドル1001、1002、1003、1004をマウス(入力装置103)で移動することにより、イベントを発生させたいエリアを定義する。ユーザは、このエリアの変更により、北東点1005の緯度経度及び南西点1006の緯度経度の値を変更する。
ユーザは、「タイミング」フィールド1007において、イベント発生条件を判定するタイミングを定義することができる。例えば、それは、進入時、脱出時等である。進入時は、最初にエリア外からエリア内に進入したタイミングでイベント発生条件が判定される(イベントが発生する)ことを表し、脱出時は、エリア内から最初にエリア外に出たタイミングでイベント発生条件が判定される(イベントが発生する)ことを表す。
「速度」のフィールド1008、1009は、イベントが発生する車両速度の範囲を表す。「加速度」のフィールド1010、1011は、イベントが発生する車両加速度の範囲を表す。「向き」のフィールド1012、1013は、イベントが発生する車両の向きの範囲を表す。ユーザは、「適用するテストポリシ」フィールド1014において、テストポリシのファイル名等の名前を指定する。
GUIプログラムは、入力されたイベント発生条件のデータを、イベント発生条件テーブル107に反映する。ユーザは、以上の定義を終了した後、「テストケース生成」ボタン1015を押下することにより、テストケースの生成を開始する。
図10に示すイベント発生条件定義画像100は一例であって、定義可能な要素は、テスト支援装置の設計に依存する。他の例は、図10が示す要素の一部のみ又はこれら要素とは異なる要素を定義可能なGUIを提供する。また、各要素の表示方法は、GUIのデザインに依存し、図10の例に限定されない。
図11は、テスト管理画像の一例1100を示す。テスト管理画像1100は、ユーザが、自動生成したテストケースを確認し、生成したテストケースを編集し、若しくはテストを実行するための画像である。GUIプログラムは、この画像を出力装置103において表示する。
ユーザは、プログラムのテストを、例えば、携帯電話やカーナビゲーション端末のような実際に機能が動作する移動体を計算機100と接続し、移動体にテストデータを送信することにより実行することができる。若しくは、ユーザは、移動体上で動作するソフトウェア機能を模擬するエミュレータを計算機100にインストールし、そのエミュレータを用いてテストを実行することができる。
テスト管理画像1100の左側は、テストケースリスト表示セクション1109である。テストケースリスト表示セクション1109の左側は、テストケース番号と、イベント発生の有無を表示する。テストケースリスト表示部分1109の右側の「○」/「×」は、テスト結果を示す。
「○」は、機能が正常動作したことこと(成功)を示し、「×」は、機能が誤動作したことを(失敗)を意味する。例えば、イベント発生条件に適合した条件においてテストを実施した結果、実際にイベントが発生した場合、そのエントリには「○」が表示される。イベントが発生しなかった場合、機能がソフトウェア仕様通りに動作しなかったことを意味するため、そのエントリには「×」が表示される。
「選択実行」ボタン1101は、テストケースリスト表示セクション1109のリスト内で選択しているテストケースを実行するボタンである。「全実行」ボタン1102は、テストケースとして定義した全テストを一括して実行するボタンである。「編集」ボタン1103は、既存のテストケースの内容を編集するボタンであり、「追加」ボタン1104は、新規にテストケースを追加するボタンであり、「削除」ボタン1105は既存のテストケースを削除するボタンである。
テスト管理画像1100の右側は、地図表示セクション1106である。このセクション1106は、地図上には、テストケースで定義されている走行軌跡を表示する。この走行軌跡とテストケースのリストは連携する。
例えば、ユーザがテストケースリスト表示セクション1109の何れかのテストケースを、入力装置104を使用して選択すると、地図表示セクション1106(GUIプログラム)は、そのテストケースに対応する走行軌跡1107を強調表示する。逆に、ユーザが、地図表示セクション1106の走行軌跡を、入力装置104を使用して選択すると、テストケースリスト表示セクション1109(GUIプログラム)は、対応する1又は複数のテストケースを強調表示する、又は、対応する1又は複数のテストケースのみ表示する。
テスト管理画像1100の右側の下部分は、パラメータ表示セクション1108であり、テストケースリスト表示セクション1109で選択されたテストケースにおける、車両とGPSのパラメータを表示する。
図11に示すテスト管理画像の1100は一例であって、確認可能な要素は、テスト支援装置の設計に依存する。他の例は、図11が示す要素の一部のみ又はこれら要素とは異なる要素を定義可能なGUIを提供する。また、各要素の表示方法は、GUIのデザインに依存し、図11の例に限定されない。
(他の実施例)
テストポリシテーブル108において、「エリア」カテゴリのポリシは、図4に示す例の他、(1)「イベント発生条件方向の軌跡について実施」、(2)「イベント発生条件逆方向の軌跡について実施」、(3)「エリア外の軌跡について実施」、(4)「エリア内の軌跡に実施」等から選択した、一つ又は複数の要素の組合せを使用して規定することができる。例えば、「イベント発生条件方向」であって「エリア外」の軌跡((1)かつ(3))についてのみ、テストケースを生成するように、ポリシを定義することができる。
上述のように、本実施形態のテスト支援方法は、地図データ109に含まれる情報を使用して、テストケースを生成する。上記例は、道路の位置や形状(例えば、カーブや直線)の情報の他、道路利用の規則に含まれる制限速度や通行可能方向(道路は一方向のみ通行可能又は双方向通行可能)の情報を使用する。
地図データ109は、このような情報に加え、道路について様々な情報を含む。テスト支援システムは、地図データ109に含まれる様々な情報を使用して、生成するテストケースを決定することができる。例えば、地図データ109は、道種別(幹線道路か一般道か高速道路か)、道の幅/レーン数、時間帯規制(朝・夕のスクールゾーン、規定時間内の通行禁止、時間に応じたレーン構成変化等)等の情報を含む。テストポリシテーブル108は、これらに基づくポリシを含むことができる。
例えば、テストポリシテーブル108は、イベント発生条件のエリアが複数の道にまたがるとき、道路種別に応じてテストを実施するか否かを(テストケースを生成するか否かを)、規定することができる。又は、異なる道路種別に対して、他のカテゴリの異なるポリシを適用するように規定してもよい。規定される道路種別は、幹線道路、一般道、高速道路等を含む。
テストポリシテーブル108は、道の幅/レーン数を含むポリシを規定してもよい。テストポリシテーブル108は、イベント発生条件のエリアが複数の道にまたがるとき、道の幅/レーン数に応じてテストを実施するか否かを(テストケースを生成するか否かを)、規定することができる。
又は、異なる道の幅/レーン数に対して、他のカテゴリの異なるポリシを適用するように規定してもよい。規定される道の幅/レーン数は、例えば、道の幅=3m〜5m」、「道の幅=5m〜10m」、「道の幅=10m〜20m」、「片側レーン数=1」、「片側レーン数=2」、「片側レーン数=3」等である。
テストポリシテーブル108は、道路の時間帯規制を含むポリシを規定してもよい。例えば、朝のみ表示する広告(イベント発生条件が時間帯条件を含む)のテストをする場合、テストポリシテーブル108は、地図データ109に含まれる時間帯規制情報を参照し、朝通行できない道のテストを実施しないことを規定するポリシを含むことができる。
以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換、削除することが可能である。
本発明のテスト支援技術は、地図データ及び移動体の地図データ上の位置に従って動作する様々なプログラムに適用することができる。例えば、上記カーナビゲーションシステムの例の他、携帯電話上で動くナビゲーションプログラム、車両制御システム、屋内でのナビゲーションシステム等に適用できる。
例えば、図3及び図4に示すイベント発生条件及びテストポリシを一部変形し、携帯電話上で動くナビゲーションプログラムのテストに適用することができる。例えば、速度の値を人の歩行速度に合わせ、加速度の項目を削除する。人の歩行軌跡は、歩道上である。
上記例は、テストケースからテストデータを自動生成するが、これと異なり、開発者はテストケースに従って実際に移動体を移動することで、プログラムのテストを行ってもよい。テストデータは、移動体の移動により生成される。テストポリシを使用することなく、イベント発生条件と地図データからテストケースを生成してもよい。
本発明は、上記形態の機能を実現するソフトウェアのプログラムコードを記憶した非一時的記憶媒体を、システム又は装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU)が非一時的記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
この場合、非一時的記憶媒体から読み出されたプログラムコード自体が上記実施の形態の機能を実現し、そのプログラムコードを記憶した非一時的記憶媒体は本発明を構成することができる。また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部又は全部を行い、その処理によって上記実施の形態の機能が実現される場合も含まれる。
また、本発明は、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶デバイス又はCD−RW、CD−R等の非一時的記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶デバイスや当該非一時的記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成される。
100 計算機
101 CPU
102 メモリ
103 表示装置
104 入力装置
105 テストケース生成プログラム
106 テストデータ生成プログラム
107 イベント発生条件テーブル
108 テストポリシテーブル
109 地図データ
201 テストケース
202 テストデータ

Claims (15)

  1. プロセッサと記憶デバイスとを含み、地図情報上の移動体の位置に応じて動作するプログラムの機能のテストを支援する、テスト支援システムであって、
    前記記憶デバイスは、前記地図情報と、前記プログラムにおけるイベントの発生条件を定義するイベント発生条件情報と、を保持し、
    前記発生条件は、前記地図情報における指定位置と、当該指定位置に対する前記移動体の動きの条件と、を規定し、
    前記プロセッサは、前記地図情報と前記イベント発生条件情報とを参照して、前記地図情報における前記指定位置と前記移動体の前記指定位置に対する動きとを規定し、前記イベントが前記発生条件に従って発生することを確認するために前記プログラムに入力されるテストデータを生成するために参照される、複数のテストケース、を生成する、テスト支援システム。
  2. 請求項1に記載のテスト支援システムであって、
    前記複数のテストケースは、
    前記地図情報における前記指定位置と前記発生条件に適合の前記移動体の前記指定位置に対する動きとを示すテストケースと、
    前記地図情報における前記指定位置と前記発生条件に不適合の前記移動体の前記指定位置に対する動きとを示すテストケースと、を含む、テスト支援システム。
  3. 請求項1又は2に記載のテスト支援システムであって、
    前記記憶デバイスは、さらに、前記複数のテストケースの生成のユーザ設定可能なポリシを規定する、テストポリシ情報を保持し、
    前記プロセッサは、前記テストポリシ情報に従って前記複数のテストケースを生成する、テスト支援システム。
  4. 請求項3に記載のテスト支援システムであって、
    前記プロセッサは、
    前記移動体の移動軌跡の1以上のパターンと、前記移動体の振る舞いを規定する1以上の要素のそれぞれの1以上のパターンと、を生成し、
    生成した前記移動軌跡の1以上のパターンと前記振る舞いの1以上のパターンの組合せを用いて前記複数のテストケースを生成する、テスト支援システム。
  5. 請求項4に記載のテスト支援システムであって、
    前記指定位置は、前記地図情報における指定エリアに含まれ、
    前記移動体の移動軌跡の1以上のパターンは、
    前記指定エリア外から前記指定エリアの境界を越える軌跡のパターンと、
    前記指定エリア内から前記指定エリアの境界を超える軌跡のパターンと、
    前記指定エリア外における位置から前記指定エリアの境界直前までの軌跡のパターンと、
    前記指定エリア内における前記指定エリアの境界近傍位置から前記指定エリア内における位置までの軌跡のパターンと、
    前記指定エリア内における位置から前記指定エリアの境界直前までの軌跡のパターンと、
    前記指定エリアの境界近傍位置から開始する前記指定エリア外における軌跡のパターンと、を含むみ、
    前記プロセッサは、前記複数のテストケースのそれぞれに、前記イベントが発生するか否かの情報を付加する、テスト支援システム。
  6. 請求項4に記載のテスト支援システムであって、
    前記移動体の振る舞いの前記1以上の要素は、前記移動体の速度を含み、
    前記発生条件は、前記移動体の速度を規定し、
    前記移動体の速度の1以上のパターンは、
    前記発生条件で規定された速度のパターンと、
    前記発生条件で規定された速度から予め定められた値を引いた速度のパターンと、
    前記発生条件で規定された速度に予め定められた値を加えた速度のパターンと、を含み、
    前記テストポリシ情報が前記移動体の速度の限界値を規定している場合に、前記移動体の速度の複数パターンは、前記限界値のパターンを含む、テスト支援システム。
  7. 請求項4に記載のテスト支援システムであって、
    前記1以上の要素は、前記移動体の向きを含み、
    前記発生条件は、前記移動体の向きの角度範囲を規定し、
    前記移動体の向きの1以上のパターンは、
    前記角度範囲の中心値のパターンと、
    前記角度範囲の下限角度のパターンと、
    前記角度範囲の上限角度のパターンと、
    前記下限角度から予め定められた値を引いた角度のパターンと、
    前記上限角度に予め定められた値を加えた角度のパターンと、を含む、テスト支援システム。
  8. 請求項4に記載のテスト支援システムあって、
    さらに、入力デバイスと、出力デバイスを含み、
    前記出力デバイスは前記テストポリシの定義画像を出力し、
    前記プロセッサは、前記定義画像に対して、前記入力デバイスにより入力されたテストポリシを、前記テストポリシ情報に反映し、
    前記定義画像において、前記発生条件に適合の移動軌跡パターンと前記発生条件に不適合の移動軌跡パターンに対して異なるポリシを定義可能である、テスト支援システム。
  9. 請求項4に記載のテスト支援システムあって、
    さらに、入力デバイスと、出力デバイスを含み、
    前記出力デバイスは前記イベント発生条件の定義画像を出力し、
    前記プロセッサは、前記定義画像に対して、前記入力デバイスにより入力されたイベント発生条件を、前記イベント発生条件情報に反映し、
    前記定義画像において、イベントが発生条件に含まれる、エリア及び前記移動体の速度、適用するテストポリシを定義可能である、テスト支援システム。
  10. 請求項4に記載のテスト支援システムあって、
    さらに、入力デバイスと、出力デバイスを含み、
    前記出力デバイスは、前記複数のテストケースを確認するための画像を表示し、
    前記画像は、
    前記複数のテストケースの少なくとも一部のテストケースのリストと、
    前記リストから前記入力デバイスにより選択されたテストケースの移動軌跡を表示するセクションと、
    前記選択されたテストケースにおける前記移動体の振る舞いを示すパラメータを表示するセクションと、を含む、テスト支援システム。
  11. 請求項3に記載のテスト支援システムであって、
    前記地図情報は、道路位置及び道路規制の情報を含み、
    前記テストポリシ情報は、前記道路規制に基づくポリシを規定する、テスト支援システム。
  12. 請求項1又は2に記載のテスト支援システムであって、
    前記複数のテストケースのそれぞれは、前記移動体の移動軌跡を規定し、
    前記プロセッサは、前記複数のテストケースのそれぞれにおいて定義されている前記移動軌跡上を前記移動体が移動したときに前記プログラムが取得するデータのダミーデータを、前記複数のテストケースのそれぞれのテストデータとして生成する、テスト支援システム。
  13. 請求項1又は2に記載のテスト支援システムであって、
    前記プログラムは、前記移動体の位置情報を取得するデバイスにより取得された位置情報に従って動作し、
    前記プロセッサは、前記デバイスによる位置情報の取得周期の開始タイミングが異なる複数のテストケースを生成する、テスト支援システム。
  14. テスト支援システムが、地図情報上の移動体の位置に応じて動作するプログラムの機能のテストを支援する方法であって、
    前記テスト支援システムが、前記地図情報と、前記プログラムにおけるイベントの発生条件を定義するイベント発生条件情報と、を参照し、前記発生条件は、前記地図情報における指定位置と当該指定位置に対する前記移動体の動きの条件を規定し、
    前記テスト支援システムが、前記地図情報と前記イベント発生条件情報とを参照して、前記地図情報における前記指定位置と前記移動体の前記指定位置に対する動きとを規定し、前記イベントが前記発生条件に従って発生することを確認するために前記プログラムに入力されるテストデータを生成するために参照される、複数のテストケース、を生成する、テスト支援方法。
  15. 計算機システムに、地図情報上の移動体の位置に応じて動作する被テストプログラムの機能のテストを支援する処理を実行させるプログラムであって、
    前記地図情報を参照する手順と、
    前記プログラムにおけるイベントの発生条件を定義するイベント発生条件情報、を参照する手順と、
    前記地図情報と前記イベント発生条件情報とに基づき、前記イベントが前記発生条件に従って発生することを確認するために前記プログラムに入力されるテストデータを生成するために参照される、複数のテストケース、を生成する手順と、
    を前記計算機システムに実行させ、
    前記発生条件は、前記地図情報における指定位置と当該指定位置に対する前記移動体の動きの条件を規定し、
    前記複数のテストケースは、前記地図情報における前記指定位置と前記移動体の前記指定位置に対する動きとを規定する、プログラム。
JP2012114229A 2012-05-18 2012-05-18 テスト支援システム、テスト支援方法、及びプログラム Expired - Fee Related JP5613721B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012114229A JP5613721B2 (ja) 2012-05-18 2012-05-18 テスト支援システム、テスト支援方法、及びプログラム
US13/895,814 US9569344B2 (en) 2012-05-18 2013-05-16 Testing system for a mobile object in a navigation map
CN201310182909.9A CN103425578B (zh) 2012-05-18 2013-05-17 测试支援系统、测试支援方法及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012114229A JP5613721B2 (ja) 2012-05-18 2012-05-18 テスト支援システム、テスト支援方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2013242638A JP2013242638A (ja) 2013-12-05
JP5613721B2 true JP5613721B2 (ja) 2014-10-29

Family

ID=49582004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012114229A Expired - Fee Related JP5613721B2 (ja) 2012-05-18 2012-05-18 テスト支援システム、テスト支援方法、及びプログラム

Country Status (3)

Country Link
US (1) US9569344B2 (ja)
JP (1) JP5613721B2 (ja)
CN (1) CN103425578B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5946400B2 (ja) * 2012-12-05 2016-07-06 株式会社日立製作所 動作検証システム、動作検証プログラム、および動作検証方法
CN105183630B (zh) * 2014-06-05 2019-06-14 腾讯科技(深圳)有限公司 应用程序测试方法及装置
WO2016020477A1 (en) * 2014-08-07 2016-02-11 Osr Enterprises Ag Device, system and method for automated installation and operating environment configuration of a computer system
EP3021225B1 (en) * 2014-11-14 2020-07-01 Mastercard International, Inc. Automated configuration code based selection of test cases for payment terminals
EP3082000B1 (de) * 2015-04-15 2020-06-10 dSPACE digital signal processing and control engineering GmbH Verfahren und system zum testen eines mechatronischen systems
CN107990909B (zh) * 2016-10-27 2021-05-25 千寻位置网络有限公司 一种模拟道路位置数据的测试方法及其系统
CN108287786A (zh) * 2017-01-09 2018-07-17 北京四维图新科技股份有限公司 一种基于地图的自动化测试方法和装置、及混合导航系统
CN110462530A (zh) * 2017-03-31 2019-11-15 索尼公司 信息处理设备、信息处理方法、计算机程序和程序制造方法
CN110413502A (zh) * 2018-04-28 2019-11-05 北京京东尚科信息技术有限公司 程序测试方法及系统、计算机系统和计算机可读存储介质
CN110554958B (zh) * 2019-08-01 2023-04-04 北京百度网讯科技有限公司 图数据库测试方法、系统、设备和存储介质
DE102019126195A1 (de) * 2019-09-27 2021-04-01 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur effizienten, simulativen Applikation automatisierter Fahrfunktionen
CN113535581B (zh) * 2021-07-30 2023-12-12 东风商用车有限公司 测试脚本生成方法、装置、设备及计算机可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092803B2 (en) * 2000-08-18 2006-08-15 Idsc Holdings, Llc Remote monitoring, configuring, programming and diagnostic system and method for vehicles and vehicle components
EP1413895B1 (en) * 2002-10-23 2005-08-24 Siemens Aktiengesellschaft A method and apparatus for generating a GPS simulation scenario
US7627425B2 (en) * 2004-11-26 2009-12-01 Microsoft Corporation Location aware mobile-device software development
JP2007052703A (ja) 2005-08-19 2007-03-01 Fujitsu Ltd テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法
US20090156198A1 (en) * 2007-12-14 2009-06-18 Ching-Hao Lee Method for evaluating mobile communication device utilizing field test logs and system thereof
CN101541026B (zh) * 2009-04-20 2011-06-01 钱伟 一种资讯信息采集系统
US8364402B2 (en) * 2009-08-20 2013-01-29 Ford Global Technologies, Llc Methods and systems for testing navigation routes
US8615359B2 (en) * 2011-05-23 2013-12-24 Microsoft Corporation Map navigation with suppression of off-route feedback near route terminus

Also Published As

Publication number Publication date
CN103425578A (zh) 2013-12-04
US20130311128A1 (en) 2013-11-21
CN103425578B (zh) 2017-04-26
US9569344B2 (en) 2017-02-14
JP2013242638A (ja) 2013-12-05

Similar Documents

Publication Publication Date Title
JP5613721B2 (ja) テスト支援システム、テスト支援方法、及びプログラム
CN108253973B (zh) 高精度地图和标准地图关联的方法及装置
JP2004272217A (ja) 地図画像表示制御方法およびそのプログラムおよびそのプログラムを記憶する記憶媒体および電子機器
WO2016195648A1 (en) Testing applications using virtual reality
TW200817933A (en) A method of generating improved map data for use in navigation devices
JP2006119132A (ja) ナビゲーション方法及びナビゲーション装置
EP2549231A2 (en) Map data distribution server, map data distribution system, and map data distribution method
US10030987B2 (en) System and methodologies for visual relevancy-grading of a navigation map
JP2009002936A (ja) ナビゲーション装置およびナビゲーション装置用のプログラム
CN110799806A (zh) 用于动态车道引导的方法、装置和计算机程序产品
WO2014186158A2 (en) Interactive user interface for displaying available trips
CN106710272B (zh) 提供实时路况信息的方法与装置
EP3425339A1 (en) Position estimating device, position estimating method and program
JP2009015739A (ja) 交通情報配信サーバ、交通情報配信システム、および交通情報配信方法
KR102329545B1 (ko) Poi 클러스터링 기법을 이용한 주변 검색 서비스를 제공하는 시스템 및 방법
JP5638124B2 (ja) ナビゲーション装置
CN115509897A (zh) 自动驾驶仿真测试地图展示方法及相关装置
CN110427409A (zh) 车辆限行区域展示方法及装置、存储介质
JP6905454B2 (ja) ナビゲーションシステム、ナビゲーション方法
JP5746911B2 (ja) 経路沿い施設検索システム及び経路沿い施設検索方法
Abenza et al. 10 GatcomSUMO: A Graphical Tool for VANET Simulations Using SUMO and OMNeT+
JP6383693B2 (ja) 情報処理装置、プログラム、及び情報処理方法
JP2017044873A (ja) 表示制御装置及び表示制御方法並びに表示制御用プログラム
JP5638123B2 (ja) ナビゲーション装置
JP6578937B2 (ja) 地図画像表示装置、地図画像表示方法及び地図画像表示プログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20140214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140731

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140908

R150 Certificate of patent or registration of utility model

Ref document number: 5613721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees