IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士電機株式会社の特許一覧

特開2024-147354テスト支援装置、テスト支援方法、及びプログラム
<>
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図1
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図2
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図3
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図4
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図5
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図6
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図7
  • 特開-テスト支援装置、テスト支援方法、及びプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024147354
(43)【公開日】2024-10-16
(54)【発明の名称】テスト支援装置、テスト支援方法、及びプログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20241008BHJP
【FI】
G06F11/36 196
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023060308
(22)【出願日】2023-04-03
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】川合 泰史
(72)【発明者】
【氏名】中里 龍馬
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH07
5B042HH32
5B042HH49
(57)【要約】
【課題】通信テストを自動化する技術を提供すること。
【解決手段】本開示の一態様によるテスト支援装置は、通信テストの対象となるソースコードと、前記通信テストのシナリオを表すテストシナリオとがバージョン管理システムのリポジトリに登録された場合、前記登録をトリガーとして前記ソースコードの実行可能ファイルを作成する実行可能ファイル作成部と、前記テストシナリオと、前記実行可能ファイルがインストールされる第1の機器と通信する第2の機器を模擬するシミュレータに関する情報を示すシミュレータ情報とに基づいて、前記通信テストのテスト環境を前記シミュレータによって構築するための命令が含まれるテスト環境スクリプトを作成する第1のスクリプト作成部と、前記シミュレータが搭載された装置に対して前記テスト環境スクリプトを送信する第1の送信部と、を有する。
【選択図】図2
【特許請求の範囲】
【請求項1】
通信テストの対象となるソースコードと、前記通信テストのシナリオを表すテストシナリオとがバージョン管理システムのリポジトリに登録された場合、前記登録をトリガーとして前記ソースコードの実行可能ファイルを作成する実行可能ファイル作成部と、
前記テストシナリオと、前記実行可能ファイルがインストールされる第1の機器と通信する第2の機器を模擬するシミュレータに関する情報を示すシミュレータ情報とに基づいて、前記通信テストのテスト環境を前記シミュレータによって構築するための命令が含まれるテスト環境スクリプトを作成する第1のスクリプト作成部と、
前記シミュレータが搭載された装置に対して前記テスト環境スクリプトを送信する第1の送信部と、
を有するテスト支援装置。
【請求項2】
前記テストシナリオに基づいて、前記第1の機器が前記第2の機器に対して送信データを送信して前記通信テストを行うための命令が含まれるテストスクリプトを作成する第2のスクリプト作成部と、
前記第1の機器に対して前記テストスクリプトを送信する第2の送信部と、
を有する請求項1に記載のテスト支援装置。
【請求項3】
前記テストスクリプトには、前記通信テストのテスト結果を前記リポジトリに登録するための命令が含まれる、請求項2に記載のテスト支援装置。
【請求項4】
前記テスト環境スクリプトには、前記第1の機器を制御可能な第2の機器を模擬するシミュレータの起動命令、前記第1の機器との接続I/Fの設定命令、前記接続I/Fの接続数の設定命令が含まれる、請求項1乃至3の何れか一項に記載のテスト支援装置。
【請求項5】
前記第1の機器は組込機器、前記第2の機器は前記第1の機器を制御する制御機器である、請求項4に記載のテスト支援装置。
【請求項6】
通信テストの対象となるソースコードと、前記通信テストのシナリオを表すテストシナリオとがバージョン管理システムのリポジトリに登録された場合、前記登録をトリガーとして前記ソースコードの実行可能ファイルを作成する実行可能ファイル作成手順と、
前記テストシナリオと、前記実行可能ファイルがインストールされる第1の機器と通信する第2の機器を模擬するシミュレータに関する情報を示すシミュレータ情報とに基づいて、前記通信テストのテスト環境を前記シミュレータによって構築するための命令が含まれるテスト環境スクリプトを作成する第1のスクリプト作成手順と、
前記シミュレータが搭載された装置に対して前記テスト環境スクリプトを送信する第1の送信手順と、
をコンピュータが実行するテスト支援方法。
【請求項7】
通信テストの対象となるソースコードと、前記通信テストのシナリオを表すテストシナリオとがバージョン管理システムのリポジトリに登録された場合、前記登録をトリガーとして前記ソースコードの実行可能ファイルを作成する実行可能ファイル作成手順と、
前記テストシナリオと、前記実行可能ファイルがインストールされる第1の機器と通信する第2の機器を模擬するシミュレータに関する情報を示すシミュレータ情報とに基づいて、前記通信テストのテスト環境を前記シミュレータによって構築するための命令が含まれるテスト環境スクリプトを作成する第1のスクリプト作成手順と、
前記シミュレータが搭載された装置に対して前記テスト環境スクリプトを送信する第1の送信手順と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、テスト支援装置、テスト支援方法、及びプログラムに関する。
【背景技術】
【0002】
プログラムの開発手法の1つとして、継続的インテグレーション(CI:Continuous Integration)/継続的デリバリー(CD:Continuous Delivery)と呼ばれる手法が知られている。CI/CDを実現するプログラムはCI/CDツール等と呼ばれ、近年、プログラム開発の現場で広く用いられている。なお、CIに関する従来技術の1つとして、例えば、不具合に係る内容等が管理されるチケットの属性情報に応じて、CIにおける自動実行を効率的に実施する技術が知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-105866号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
CI/CDツールではビルド、テスト、デプロイ等を自動実行することができるが、テストは一般にモジュール単体の静的解析や単体テスト等であり、外部の機器との通信を想定した通信テストは自動化することができない。
【0005】
本開示は、上記の点に鑑みてなされたもので、通信テストを自動化する技術を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様によるテスト支援装置は、通信テストの対象となるソースコードと、前記通信テストのシナリオを表すテストシナリオとがバージョン管理システムのリポジトリに登録された場合、前記登録をトリガーとして前記ソースコードの実行可能ファイルを作成する実行可能ファイル作成部と、前記テストシナリオと、前記実行可能ファイルがインストールされる第1の機器と通信する第2の機器を模擬するシミュレータに関する情報を示すシミュレータ情報とに基づいて、前記通信テストのテスト環境を前記シミュレータによって構築するための命令が含まれるテスト環境スクリプトを作成する第1のスクリプト作成部と、前記シミュレータが搭載された装置に対して前記テスト環境スクリプトを送信する第1の送信部と、を有する。
【発明の効果】
【0007】
通信テストを自動化する技術が提供される。
【図面の簡単な説明】
【0008】
図1】通信テストの従来例を説明するための図である。
図2】本実施形態に係る開発支援システムの全体構成の一例を示す図である。
図3】本実施形態に係るテスト支援プログラムの機能構成の一例を示す図である。
図4】テスト支援処理の一例を示すフローチャートである。
図5】テストシナリオの一例を示す図である。
図6】テスト環境スクリプトの一例を示す図である。
図7】テストスクリプトの一例を示す図である。
図8】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の一実施形態について説明する。
【0010】
<継続的インテグレーション/継続的デリバリー>
まず、継続的インテグレーション(CI)と継続的デリバリー(CD)の概略について説明する。なお、CIとCDをまとめて「CI/CD」等と表記されることがある。
【0011】
CI/CDはいずれもプログラム開発手法の1つであり、ビルド、テスト、デプロイといった処理(ジョブ)の内容をスクリプトとして定義し、ソースコードを管理するバージョン管理システムへの登録(コミット)等をトリガーにスクリプトを自動で実行する手法のことである。1つ以上のジョブの実行で実現される一連の処理は「パイプライン」又は「パイプライン処理」と呼ばれる。一般に、CIはビルドやテストを自動化する手法のことを指し、CDはデプロイを自動化する手法のことを指す。
【0012】
CI/CDを実現するプログラムはCIツール/CDツール等と呼ばれる。これらのツールでは、パイプライン設定ファイルに定義された処理内容(スクリプト)やその処理の実行順等に従ってジョブが実行される。このため、ユーザは、自動化したいジョブの処理内容やその処理の実行順等をパイプライン設定ファイルに定義する必要がある。
【0013】
<通信テストの従来例>
以下、一例として、組込機器のソフトウェア開発を想定し、このソフトウェア(プログラム)をインストールした組込機器と外部の計測機器との通信テスト行う場合の従来例について、図1を参照しながら説明する。以下、通信テストの対象となる組込機器のことを「対象組込機器」と呼ぶことにする。なお、組込機器の一例としては、例えば、冷凍機、ショーケース、自動販売機等といった各種産業機器が挙げられるが、これらはいずれも一例であってこれらに限られるものではない。
【0014】
図1に示すように、(1)開発者端末によってリポジトリにソースコードが登録された場合、(2)この登録をトリガーとしてCI/CDツールに対してパイプライン実行が指示される。これにより、CI/CDツールでは、パイプライン設定ファイルに従って、(3)当該ソースコードのビルドがビルドツールに対して指示された後、(4)このビルドによって作成された実行可能ファイルのテスト(単体テスト等)がテストツールに対して指示され、その後、(5)テストに成功した実行可能ファイルのデプロイがデプロイツールに対して指示される。その結果、この実行可能ファイルが配信サーバにデプロイされる。なお、ビルド指示の前に、ソースコードの静的解析等がテストツールに対して指示されることもある。
【0015】
通信テストの実施者(以下、「テスト実施者」ともいう。)は、(6)対象組込機器を操作して配信サーバから当該実行可能ファイルをダウンロードする。また、テスト実施者は、(7)シミュレーション装置を操作して計測機器のシミュレータを起動し、その計測機器に対して各種パラメータ(例えば、対象組込機器との通信に利用する接続I/F等)を設定してテスト環境を構築する。なお、計測機器とは、組込機器を制御する制御機器(例えば、プログラマブルコントローラ等)のことである。シミュレーション装置は、例えば、PC(パーソナルコンピュータ)等であり、シミュレータにより計測機器を模擬するテスト環境を構築することができる。
【0016】
そして、テスト実施者は、(8)対象組込機器を操作して計測機器(シミュレーション装置上のシミュレータにより模擬される計測機器)との通信テストを実施する。その後、テスト実施者は、(9)自身の端末を操作して対象組込機器からテスト結果を取得し、(10)そのテスト結果を開発者端末に対してメール送信する。なお、通信テストは、例えば、「接続テスト」等と呼ばれてもよい。
【0017】
このように、通信テストではPC等にインストールされているシミュレータにより計測機器を模擬するため、シミュレータの起動及びテストデータの設定等といったテスト環境構築を手動で実施する必要がある。また、通信テスト自体も対象組込機器を操作して手動で実施するため、手間が掛かる上にミスが発生する可能性もある。更に、テスト結果を手動でメール送信する必要があり、手間が掛かる。
【0018】
そこで、以下では、通信テスト対象となるソースコードのデプロイ時にテスト環境構築を構築した上で通信テストを自動で実施し、またそのテスト結果も自動で通知することができる開発支援システム1について説明する。この開発支援システム1により、ユーザはテスト環境の構築と通信テストを手動で行う必要がなく、またそのテスト結果も手動で通知する必要がないため、通信テストに要する作業負担を軽減することができる。
【0019】
<開発支援システム1の全体構成例>
本実施形態に係る開発支援システム1の全体構成例を図2に示す。図2に示すように、本実施形態に係る開発支援システム1には、バージョン管理システム10と、CI/CDシステム20と、配信サーバ30と、開発者端末40と、対象組込機器50と、シミュレーション装置60とが含まれる。ここで、バージョン管理システム10とCI/CDシステム20との間、バージョン管理システム10と開発者端末40との間、バージョン管理システム10と対象組込機器50との間、CI/CDシステム20と配信サーバ30との間、CI/CDシステム20と対象組込機器50との間、CI/CDシステム20とシミュレーション装置60との間、配信サーバ30と対象組込機器50との間、対象組込機器50とシミュレーション装置60との間は、例えば、社内ネットワーク等といった通信ネットワークを介して相互に通信可能に接続される。
【0020】
バージョン管理システム10は、バージョン管理プログラム110と、リポジトリ120とを有する汎用サーバ等のコンピュータ又はコンピュータシステムである。
【0021】
バージョン管理プログラム110は、開発者端末40によってソースコード及びテストシナリオがリポジトリ120に登録された場合、この登録をトリガーとして、当該ソースコードのビルド、テスト(単体テスト)及びデプロイと通信テストとを実施するためのパイプライン実行指示をCI/CDシステム20に送信する。ここで、テストシナリオとは、対象組込機器50とシミュレーション装置60上のシミュレータにより模擬される計測機器との間の通信テストのシナリオのことである。テストシナリオには、計測機器に接続される組込機器種別(接続機器種別)や台数(接続台数)、接続I/F等といったテスト環境の構築に必要な情報と、対象組込機器50から計測機器(シミュレーション装置60上のシミュレータにより模擬される計測機器)に送信される送信データの設定及び送信に必要な情報とが含まれる。
【0022】
リポジトリ120は、ソースコードやテストシナリオとその変更履歴等を管理する記憶領域である。
【0023】
CI/CDシステム20は、CI/CDツール210と、ビルドツール220と、テストツール230と、デプロイツール240と、テスト支援プログラム250と、シミュレータ情報DB260とを有する汎用サーバ等のコンピュータ又はコンピュータシステムである。
【0024】
CI/CDツール210は、バージョン管理システム10からパイプライン実行指示を受信すると、パイプラインを実行する。ここで、CI/CDツール210には、ビルド指示部211と、テスト指示部212と、デプロイ指示部213と、パイプライン設定ファイル214とが含まれる。CI/CDツール210は、パイプライン実行指示を受信した場合、この指示とパイプライン設定ファイル214に従って、ビルド指示部211によって対象のソースコードに対するビルド指示を行うと共に、テスト指示部212によって当該ソースコード又はそのソースコードの実行可能ファイルに対するテスト指示を行った後、デプロイ指示部213によって実行可能ファイルに対するデプロイ指示を行う。また、CI/CDツール210は、テストシナリオと当該実行可能ファイルのデプロイ先を示す情報(以下、「デプロイ先情報」ともいう。)とをテスト支援プログラム250に送信する。
【0025】
ビルドツール220は、ビルド指示に応じて、ソースコードをビルドして実行可能ファイルを作成する。
【0026】
テストツール230は、テスト指示に応じて、ソースコード又は実行可能ファイルをテスト(例えば、ソースコードの場合は静的解析、実行可能ファイルの場合は単体テスト等)する。
【0027】
デプロイツール240は、デプロイ指示に応じて、実行可能ファイルを配信サーバ30にデプロイする。
【0028】
なお、CI/CDツール210としては既知の任意のCI/CDツールを用いることが可能であり、例えば、GitLab等を用いることが可能である。また、ビルドツール220としては既知の任意のビルドツールを用いることが可能であり、例えば、Maven、Ant、Gradle等を用いることが可能である。また、テストツールとしては既知の任意のテストツールを用いることが可能であり、例えば、Jtest等を用いることができる。また、デプロイツール240としては既知の任意のデプロイツールを用いることが可能であり、例えば、scpコマンドを利用可能なSSH(Secure Shell)ツール等を用いることが可能である。
【0029】
テスト支援プログラム250は、CI/CDツール210からテストシナリオ及びデプロイ先情報を受信すると、このテストシナリオと、シミュレータ情報DB260に格納されているシミュレータ情報とに基づいて、テスト環境スクリプトを作成する。また、テスト支援プログラム250は、当該テストシナリオと、当該デプロイ先情報とに基づいて、テストスクリプトを作成する。そして、テスト支援プログラム250は、テスト環境スクリプト及びテストスクリプトをリポジトリ120に格納(保存)すると共に、それぞれ対象組込機器50及びシミュレーション装置60に送信する。ここで、テスト環境スクリプトとは、シミュレーション装置60上でテスト環境(計測機器を模擬するシミュレータ)を構築するためのスクリプト(プログラム)である。テストスクリプトとは、通信テスト対象のソースコードの実行可能ファイルを配信サーバ30から取得(ダウンロード)及びインストールして、対象組込機器50に対して送信データを設定すると共にその送信データを送信させるためスクリプト(プログラム)である。なお、テスト支援プログラム250の詳細については後述する。
【0030】
シミュレータ情報DB260は、テスト環境を構築するためのシミュレータ情報が格納されている。シミュレータ情報とは、例えば、テストシナリオに含まれる「接続機器種別」や「接続I/F」等からシミュレータ及びそのパラメータ等を特定するための情報である。シミュレータ情報には、例えば、接続機器種別毎に、その接続機器種別の組込機器を制御可能な計測機器を模擬するシミュレータの名称とそのシミュレータを起動するための実行ファイルのファイルパスとが含まれる。また、シミュレータ情報には、例えば、計測機器及び接続I/F毎に、その計測機器でその接続I/Fにより通信を模擬するためにシミュレータに設定する必要のあるパラメータ(例えば、COM番号、eth番号、ポーレート、通信フレームの情報等)等が含まれる。
【0031】
配信サーバ30は、通信テスト対象のソースコードの実行可能ファイルがデプロイされる汎用サーバ等のコンピュータ又はコンピュータシステムである。
【0032】
開発者端末40は、ソースコード及びテストシナリオを開発する者(開発者)が利用する端末(例えば、PC、スマートフォン、タブレット端末等)である。
【0033】
対象組込機器50は、通信テスト対象のソースコードの実行可能ファイルがインストールされる組込機器である。対象組込機器50は、CI/CDシステム20から送信されたテストスクリプトを実行し、当該実行可能ファイルを配信サーバ30から取得及びインストールした後、送信データを設定した上で当該送信データを計測機器(シミュレーション装置60上のシミュレータにより模擬される計測機器)に送信する。
【0034】
シミュレーション装置60は、計測機器を模擬可能なシミュレータが搭載されたPC等のコンピュータ又はコンピュータシステムである。シミュレーション装置60は、CI/CDシステム20から送信されたテスト環境スクリプトを実行し、シミュレータの起動、パラメータの設定等を行ってテスト環境を構築する。
【0035】
なお、図2に示す開発支援システム1の全体構成は一例であって、開発支援システム1の全体構成はこれに限られるものではない。例えば、バージョン管理システム10、CI/CDシステム20及び配信サーバ30のうちの2つ以上のシステムが一体で構成されていてもよい。また、この場合に、例えば、全部又は一部のシステムが仮想マシン(VM:Virtual Machine)により実現されていてもよい。更に、図2に示す例では、対象組込機器50及びシミュレーション装置60が1台のみ図示されているが、これらはそれぞれ複数台存在してもよい。
【0036】
<テスト支援プログラム250の機能構成例>
図3に示すように、本実施形態に係るテスト支援プログラム250は、CPU(Central Processing Unit)等のプロセッサに実行させる処理により、スクリプト作成部251と、スクリプト送信部252と、スクリプト保存部253とを実現することができる。
【0037】
スクリプト作成部251は、CI/CDツール210から受信したテストシナリオと、シミュレータ情報DB260に格納されているシミュレータ情報とに基づいて、テスト環境スクリプトを作成する。また、スクリプト作成部251は、CI/CDツール210から受信したテストシナリオ及びデプロイ先情報に基づいて、テストスクリプトを作成する。
【0038】
スクリプト送信部252は、スクリプト作成部251によって作成されたテスト環境スクリプトをシミュレーション装置60に送信する。また、スクリプト送信部252は、スクリプト作成部251によって作成されたテストスクリプトを対象組込機器50に送信する。
【0039】
スクリプト保存部253は、スクリプト作成部251によって作成されたテスト環境スクリプト及びテストスクリプトをリポジトリ120に格納(保存)する。
【0040】
<テスト支援処理>
以下、ソースコードの登録に応じて対象組込機器50の通信テストを自動的に実行するテスト支援について、図4を参照しながら説明する。
【0041】
開発者端末40は、通信テスト対象のソースコードと、当該通信テストのテストシナリオとをリポジトリ120に登録する(ステップS101)。これにより、この登録をトリガーとして、パイプライン実行指示がバージョン管理プログラム110からCI/CDツール210に送信される。
【0042】
CI/CDツール210は、パイプライン実行指示を受信すると、パイプラインを実行して当該ソースコードをビルド及びテスト(静的解析、単体テスト等)し、そのソースコードの実行可能ファイルを配信サーバ30にデプロイする(ステップS102)。また、このとき、CI/CDツール210は、リポジトリ120からテストシナリオを取得し、このテストシナリオと、当該実行可能ファイルのデプロイ先情報(例えば、配信サーバ30で当該実行可能ファイルが格納されているフォルダのフォルダパス等)とをテスト支援プログラム250に送信する。
【0043】
テスト支援プログラム250は、以下によりテスト環境スクリプト及びテストスクリプトを作成する(ステップS103)。ここで、以下では、一例として、図5に示すテストシナリオ1000からテストシナリオ及びテスト環境スクリプトを作成する場合について説明する。図5に示すテストシナリオ1000には、テスト環境情報1100と、送信データ情報1200とが含まれている。テスト環境情報1100はテスト環境の構築に必要な情報であり、図5に示す例では、第1のテスト環境情報1110と第2のテスト環境情報1120とが含まれている。第1のテスト環境情報1110には、接続機器種別が「A社製冷凍機」であることを示す接続機器種別情報1111、この接続機器種別の対象組込機器50の接続台数が「2台」であることを示す接続台数情報1112、接続I/Fとして「RS-485」を利用することを示す接続I/F情報1113が含まれている。同様に、第2のテスト環境情報1120には、接続機器種別が「B社製ショーケース」であることを示す接続機器種別情報1121、この接続機器種別の対象組込機器50の接続台数が「3台」であることを示す接続台数情報1122、接続I/Fとして「RS-485」を利用することを示す接続I/F情報1123が含まれている。また、送信データ情報1200には、接続機器種別「A社製冷凍機」の2台の冷凍機にそれぞれ設定する送信データ情報として第1の冷凍機送信データ情報1201及び第2の冷凍機送信データ情報1202が含まれている。同様に、送信データ情報1200には、接続機器種別「B社製ショーケース」の3台のショーケースにそれぞれ設定する送信データ情報として第1のショーケース送信データ情報1203、第2のショーケース送信データ情報1204及び第3のショーケース送信データ情報1205が含まれている。
【0044】
なお、図5に示すテストシナリオ1000は一例であって、これに限られるものでないことは言うまでもない。
【0045】
・テスト環境スクリプトの作成
スクリプト作成部251は、図5に示すテストシナリオ1000に含まれるテスト環境情報1100と、シミュレータ情報DB260に格納されているシミュレータ情報とに基づいて、テスト環境スクリプトを作成する。例えば、スクリプト作成部251は、当該テスト環境情報1100と、シミュレータ情報DB260に格納されているシミュレータ情報とに基づいて、図6に示すテスト環境スクリプト2000を作成する。図6に示すテスト環境スクリプト2000は、batファイル形式のデータであり、第1のテスト環境構築命令2100と、第2のテスト環境構築命令2200とが含まれる。
【0046】
第1のテスト環境構築命令2100には、A社製冷凍機シミュレータ起動命令2101、接続I/F設定命令2102、接続台数設定命令2103が含まれている。A社製冷凍機シミュレータ起動命令2101は、A社製冷凍機を制御可能な計測機器を模擬するシミュレータを起動するための命令である。A社製冷凍機シミュレータ起動命令2101は、例えば、接続機器種別情報1111と、その接続機器種別情報1111が示す接続機器種別の組込機器を制御可能な計測機器を模擬するシミュレータのファイルパスとに基づいて作成される。接続I/F設定命令2102は、当該シミュレータで模擬する計測機器の接続I/Fを設定するための命令である。接続I/F設定命令2102は、例えば、接続I/F情報1113と、その接続I/F情報1113が示す接続I/Fにより通信を模擬するために当該シミュレータに設定する必要のあるパラメータであるCOM番号やeth番号、ポーレート、通信フレームの情報等に基づいて作成される。接続台数設定命令2103は、当該シミュレータで模擬する計測機器の接続台数を設定するための命令である。接続台数設定命令2103は、例えば、接続台数情報1112に基づいて作成される。
【0047】
同様に、第2のテスト環境構築命令2200には、B社製ショーケースシミュレータ起動命令2201、接続I/F設定命令2202、接続台数設定命令2203が含まれている。B社製ショーケースシミュレータ起動命令2201は、B社製ショーケースを制御可能な計測機器を模擬するシミュレータを起動するための命令である。B社製ショーケースシミュレータ起動命令2201は、例えば、接続機器種別情報1121と、その接続機器種別情報1121が示す接続機器種別の組込機器を制御可能な計測機器を模擬するシミュレータのファイルパスとに基づいて作成される。接続I/F設定命令2202は、当該シミュレータで模擬する計測機器の接続I/Fを設定するための命令である。接続I/F設定命令2202は、例えば、接続I/F情報1123と、その接続I/F情報1123が示す接続I/Fにより通信を模擬するために当該シミュレータに設定する必要のあるパラメータであるCOM番号やeth番号、ポーレート、通信フレームの情報等に基づいて作成される。
【0048】
なお、図6に示すテスト環境スクリプト2000では、対象組込機器50からの送信データを計測機器が受信したときの応答データはシミュレータに設定されたデフォルトの応答データを送信することを想定している。ただし、これに限られず、テスト環境スクリプトには、例えば、対象組込機器50からの送信データに含まれる値に応じて、シミュレータが模擬する計測機器が返信する応答データの設定命令が含まれていてもよい。
【0049】
・テストスクリプトの作成
スクリプト作成部251は、図5に示すテストシナリオ1000に含まれる送信データ情報1200と、デプロイ先情報とに基づいて、図7に示すテストスクリプト3000を作成する。図7に示すテストスクリプト3000は、ymlファイル形式のデータであり、実行可能ファイル取得命令3101と、実行可能ファイルインストール命令3102と、送信データ設定・送信命令3200と、テスト結果保存命令3301とが含まれる。
【0050】
実行可能ファイル取得命令3101は、通信テスト対象のソースコードの実行可能ファイルを配信サーバ30から取得(ダウンロード)するための命令である。実行可能ファイル取得命令3101は、例えば、デプロイ先情報に基づいて作成される。実行可能ファイルインストール命令3102は、実行可能ファイル取得命令3101によって取得された実行可能ファイルを対象組込機器50にインストールするための命令である。
【0051】
送信データ設定・送信命令3200には、送信データを対象組込機器50に設定するための命令と、当該送信データを計測機器に送信するための命令とが含まれる。送信データ設定・送信命令3200は、例えば、送信データ情報1200に基づいて作成される。図7に示す例では、送信データ設定命令3211、3213、3221、3223、3225と、送信データ送信命令3212、3214、3222、3224、3226とが送信データ設定・送信命令3200に含まれている。なお、この例では、送信データ設定命令3211及び送信データ送信命令3212は第1の冷凍機送信データ情報1201に基づいて作成される。同様に、送信データ設定命令3213及び送信データ送信命令3214は第2の冷凍機送信データ情報1202、送信データ設定命令3221及び送信データ送信命令3222は第1のショーケース送信データ情報1203、送信データ設定命令3223及び送信データ送信命令3224は第2のショーケース送信データ情報1204、送信データ設定命令3225及び送信データ送信命令3226は第3のショーケース送信データ情報1205にそれぞれ基づいて作成される。
【0052】
テスト結果保存命令3301は、通信テストの結果をリポジトリ120に登録(保存)するための命令である。
【0053】
なお、図7に示すテストスクリプト3000では、すべての送信データ設定命令と送信データ送信命令が含まれているが、例えば、このテストスクリプト3000が送信される対象組込機器50に必要な送信データ設定命令と送信データ送信命令のみが含まれていてもよい。
【0054】
例えば、A社製冷凍機1として動作する対象組込機器50(以下、対象組込機器50-1)と、A社製冷凍機2として動作する対象組込機器50(以下、対象組込機器50-2)と、B社製ショーケース1として動作する対象組込機器50(以下、対象組込機器50-3)と、B社製ショーケース2として動作する対象組込機器50(以下、対象組込機器50-4)と、B社製ショーケース3として動作する対象組込機器50(以下、対象組込機器50-5)とが存在するものとする。この場合、対象組込機器50-1に対して送信するテストスクリプトの送信データ設定・送信命令3200には、送信データ設定命令3211及び送信データ送信命令3212のみが含まれていてもよい。同様に、対象組込機器50-2に対して送信するテストスクリプトの送信データ設定・送信命令3200には、送信データ設定命令3213及び送信データ送信命令3214のみが含まれていてもよい。同様に、対象組込機器50-3に対して送信するテストスクリプトの送信データ設定・送信命令3200には、送信データ設定命令3221及び送信データ送信命令3222のみが含まれていてもよい。同様に、対象組込機器50-4に対して送信するテストスクリプトの送信データ設定・送信命令3200には、送信データ設定命令3223及び送信データ送信命令3224のみが含まれていてもよい。同様に、対象組込機器50-5に対して送信するテストスクリプトの送信データ設定・送信命令3200には、送信データ設定命令3225及び送信データ送信命令3226のみが含まれていてもよい。
【0055】
図4の説明に戻る。スクリプト送信部252は、上記のステップS103で作成されたテスト環境スクリプトをシミュレーション装置60、テストスクリプトを対象組込機器50にそれぞれ送信する(ステップS104)。
【0056】
また、スクリプト保存部253は、上記のステップS103で作成されたテスト環境スクリプト及びテストスクリプトをリポジトリ120に格納(保存)する(ステップS105)。
【0057】
そして、シミュレーション装置60はテスト環境スクリプトを受信すると当該テスト環境スクリプトを実行し、対象組込機器50はテストスクリプトを受信すると当該テストスクリプトを実行する(ステップS106)。これにより、シミュレーション装置60上でシミュレータが起動され、所望の計測機器を模擬するテスト環境が構築される。また、対象組込機器50は当該計測機器に対して送信データを送信し、通信テストを行うことができる。ただし、このとき、対象組込機器50は、自身に対応する送信データ設定命令及び送信データ送信命令を実行する。例えば、当該対象組込機器50が「A社製冷凍機1」である場合、当該対象組込機器50は、図7に示すテストスクリプト3000の送信データ設定・送信命令3200に含まれる信データ設定命令及び送信データ送信命令のうち、送信データ設定命令3211及び送信データ送信命令3212を実行する。
【0058】
なお、通信テストでは、送信データに対する応答データがテスト結果として得られる。これらのテスト結果はテストスクリプトの実行によりリポジトリ120に登録されるため、開発者は、テスト結果がリポジトリ120に登録されたことをバージョン管理システム10からの通知により知ることができる。このとき、バージョン管理システム10から開発者端末40へのテスト結果の通知は任意の方法を用いるこができるが、例えば、メールにより通知すればよい。
【0059】
<ハードウェア構成例>
本実施形態に係る開発支援システム1に含まれるバージョン管理システム10、CI/CDシステム20、配信サーバ30は、例えば、図8に示すコンピュータ500のハードウェア構成により実現可能である。図8に示すコンピュータ500は、入力装置501と、表示装置502と、外部I/F503と、通信I/F504と、RAM(Random Access Memory)505と、ROM(Read Only Memory)506と、補助記憶装置507と、プロセッサ508とを有する。これらの各ハードウェアは、それぞれがバス509を介して通信可能に接続される。
【0060】
入力装置501は、例えば、キーボード、マウス、タッチパネル、物理ボタン等である。表示装置502は、例えば、ディスプレイ、表示パネル等である。なお、コンピュータ500は、例えば、入力装置501及び表示装置502のうちの少なくとも一方を有していなくてもよい。
【0061】
外部I/F503は、記録媒体503a等の外部装置とのインタフェースである。記録媒体503aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0062】
通信I/F504は、コンピュータ500を通信ネットワークに接続するためのインタフェースである。RAM505は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM506は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置507は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等の不揮発性の記憶装置である。プロセッサ508は、例えば、CPU等の演算装置である。
【0063】
なお、図8に示すハードウェア構成は一例であって、コンピュータ500のハードウェア構成はこれに限られるものではない。例えば、コンピュータ500は、複数の補助記憶装置507や複数のプロセッサ508を有していてもよいし、図示したハードウェアの一部を有していなくてもよいし、図示したハードウェア以外の種々のハードウェアを有していてもよい。
【0064】
<変形例>
上記の実施形態では、テスト環境スクリプトとテストスクリプトの両方を作成したが、いずれか一方のみを作成してもよい。例えば、テスト環境スクリプトのみが作成された場合、通信テスト自体は手動で行う必要があるが、テスト環境構築に要する作業を削減することができる。同様に、例えば、テストスクリプトのみが作成された場合、テスト環境構築自体は手動で行う必要があるが、通信テストに要する作業を削減することができると共にテスト時のミスも防止することができる。
【0065】
<まとめ>
以上のように、本実施形態に係る開発支援システム1では、通信テスト対象のソースコードとその通信テストのテストシナリオとがリポジトリ120に登録された場合、当該ソースコードのビルド、テスト(静的解析、単体テスト)、デプロイに加えて、当該テストシナリオに従った通信テストも自動的に実行することができる。このため、ユーザは、通信テストのためのテスト環境の構築や実際の通信テストを手動で行う必要がなく、通信テストに要する作業負担を軽減することができる。更に、通信テストのテスト結果もリポジトリ120も登録されるため、ユーザは、そのテスト結果を容易に確認することが可能となり、また従来必要としていたテスト結果のメール通知等も不要となるためテスト結果の通知に要していた作業負担を軽減することができる。
【0066】
なお、上記の実施形態では、一例として、組込機器が計測機器との間で通信テストを行う場合を想定したが、これは一例であって、組込機器以外の任意の機器が外部の機器との間で通信テストを行う場合にも同様に適用可能である。
【0067】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【符号の説明】
【0068】
1 開発支援システム
10 バージョン管理システム
20 CI/CDシステム
30 配信サーバ
40 開発者端末
50 対象組込機器
60 シミュレーション装置
110 バージョン管理プログラム
120 リポジトリ
210 CI/CDツール
211 ビルド指示部
212 テスト指示部
213 デプロイ指示部
214 パイプライン設定ファイル
220 ビルドツール
230 テストツール
240 デプロイツール
250 テスト支援プログラム
251 スクリプト作成部
252 スクリプト送信部
253 スクリプト保存部
260 シミュレータ情報DB
500 コンピュータ
501 入力装置
502 表示装置
503 外部I/F
503a 記録媒体
504 通信I/F
505 RAM
506 ROM
507 補助記憶装置
508 プロセッサ
509 バス
図1
図2
図3
図4
図5
図6
図7
図8