[go: up one dir, main page]

JP2018195288A - ファジングテスト装置、ファジングテスト方法及びファジングテストプログラム - Google Patents

ファジングテスト装置、ファジングテスト方法及びファジングテストプログラム Download PDF

Info

Publication number
JP2018195288A
JP2018195288A JP2018005815A JP2018005815A JP2018195288A JP 2018195288 A JP2018195288 A JP 2018195288A JP 2018005815 A JP2018005815 A JP 2018005815A JP 2018005815 A JP2018005815 A JP 2018005815A JP 2018195288 A JP2018195288 A JP 2018195288A
Authority
JP
Japan
Prior art keywords
test
message
fuzzing
unit
qos
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.)
Granted
Application number
JP2018005815A
Other languages
English (en)
Other versions
JP7027903B2 (ja
Inventor
昌隆 坂口
Masataka Sakaguchi
昌隆 坂口
敏達 野田
Toshitatsu Noda
敏達 野田
尚 兒島
Takashi Kojima
尚 兒島
吉郎 綿口
Yoshiro Watakuchi
吉郎 綿口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2018195288A publication Critical patent/JP2018195288A/ja
Application granted granted Critical
Publication of JP7027903B2 publication Critical patent/JP7027903B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】テストの効率を向上するファジングテスト装置、ファジングテスト方法及びファジングテストプログラムを提供する。【解決手段】ファジングによるテスト対象装置と接続されるファジングテスト装置10であって、テスト対象装置に送信したファズメッセージに対するエラー発生率を算出する第1の算出部と、算出したエラー発生率に応じて、テスト対象装置に送信する死活確認メッセージの送信比率を決定する決定部と、決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとをテスト対象装置に送信する送信部と、を有する。【選択図】図4

Description

本発明は、ファジングテスト装置、ファジングテスト方法及びファジングテストプログラムに関する。
MQTT(Message Queue Telemetry Transport)と呼ばれるメッセージプロトコルが従来から知られている。MQTTは、TCP/IP(Transmission Control Protocol/Internet Protocol)を利用した、軽量なpublish/subscribe型のメッセージプロトコルである。
また、ファジングと呼ばれるテスト手法が従来から知られている。ファジングは、例えば長い文字列や乱数等のデータ(ファズデータ)をテスト対象に大量に与えて、テスト対象の挙動を確認するテスト手法である。ファジングでは、テスト対象でエラーが発生した場合、エラーの発生を素早く検出し、テストを再開することが求められる。
ここで、MQTTを用いたファジングにおいて、テスト対象の死活確認には、KeepAlive機能を用いる方法と、ファズデータが含まれるメッセージ(以降、「テストメッセージ」とも表す。)のQoSを「1」に設定する方法とが知られている。
国際公開第2006/080403号 特開2013−211842号公報 特開2016−122926号公報 特開2016−063425号公報 特開2017−58838号公報 特開2013−196390号公報
しかしながら、KeepAlive機能では、例えば、クライアントからサーバに一定間隔でPINGが送信されるため、クライアントでエラーが発生しても、次のPINGの送信タイミングまで、サーバはクライアントの死活を確認することができない。このため、KeepAlive機能を用いる方法では、エラーの検出を素早く行えず、無駄なテストメッセージの送信が多く発生する場合があり、テスト効率が低下することがあった。
一方で、テストメッセージのQoSに「1」を設定すると、例えば、サーバは、クライアントに送信したテストメッセージに対する応答(ACK)を待ってから次のテストメッセージをクライアントに送信する必要がある。このため、テストメッセージのQoSに「1」を設定する方法では、単位時間あたりに送信できるテストメッセージ数が少なくなるため、テストに時間を要する場合があり、テスト効率が低下することがあった。
1つの側面では、本発明は、ファジングテストの効率を向上させることを目的とする。
1つの態様では、ファジングによるテスト対象装置と接続されるファジングテスト装置であって、前記テスト対象装置に送信したファズメッセージに対するエラー発生率を算出する第1の算出部と、算出した前記エラー発生率に応じて、前記テスト対象装置に送信する死活確認メッセージの送信比率を決定する決定部と、決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとを前記テスト対象装置に送信する送信部と、を有する。
ファジングテストの効率を向上させることができる。
第一の実施形態に係るファジングテストシステムの全体構成の一例を示す図である。 第一の実施形態に係るファジングテストシステムにおけるファジングの概略を説明する図である。 第一の実施形態に係るファジングテスト装置及びテスト対象装置のハードウェア構成の一例を示す図である。 第一の実施形態に係るファジングテスト装置の機能構成の一例を示す図である。 第一の実施形態に係るテストメッセージの作成及び送信処理の一例を示すフローチャートである。 第一の実施形態に係るテスト開始画面の一例を示す図である。 第一の実施形態に係るメッセージ時間の算出処理の一例を示すフローチャートである。 第一の実施形態に係るテストメッセージの作成及び送信処理の他の例を示すフローチャートである。 第一の実施形態に係るテスト開始画面の他の例を示す図である。 第二の実施形態に係るファジングテスト装置の機能構成の一例を示す図である。 第二の実施形態に係るテストメッセージの作成及び送信処理の一例を示すフローチャート(その1)である。 第二の実施形態に係るテストメッセージの作成及び送信処理の一例を示すフローチャー(その2)トである。 第二の実施形態に係るテスト開始画面の一例を示す図である。 第二の実施形態に係るメッセージ時間の算出処理の一例を示すフローチャートである。 第二の実施形態に係るテストメッセージの作成及び送信処理の他の例を示すフローチャート(その1)である。 第二の実施形態に係るテストメッセージの作成及び送信処理の他の例を示すフローチャート(その2)である。 第二の実施形態に係るテスト開始画面の他の例を示す図である。 単位時間あたりの有効なテストメッセージ数の比較例を説明する図(その1)である。 単位時間あたりの有効なテストメッセージ数の比較例を説明する図(その2)である。
以下、本発明の実施形態について添付の図面を参照しながら説明する。
(第一の実施形態)
<全体構成>
まず、本実施形態に係るファジングテストシステム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係るファジングテストシステム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係るファジングテストシステム1は、ファジングテスト装置10と、テスト対象装置20とを有する。また、ファジングテスト装置10と、テスト対象装置20とは、例えばインターネットやLAN(Local Area Network)等のネットワークNを介して通信可能に接続されている。
ファジングテスト装置10は、MQTTにおけるBrokerとして機能するサーバである。ファジングテスト装置10には、ファジングテストプログラム100がインストールされている。ファジングテストプログラム100は、MQTTを用いたファジングによりテスト対象をテストするための1以上のプログラムである。
ファジングテスト装置10は、ファジングテストプログラム100により、テストメッセージの作成やテストメッセージの送信等を行うことで、テスト対象の挙動確認(すなわち、テスト対象でエラーが発生したか否かの確認)を行うことができる。このとき、本実施形態に係るファジングテスト装置10は、ファジングテストプログラム100により、テスト対象におけるエラー発生率に応じて、QoSに「0」が設定されたテストメッセージと、QoSに「1」が設定されたテストメッセージとの送信比率を動的に変更する。
これにより、本実施形態に係るファジングテスト装置10では、無駄なテストメッセージの送信を減少させると共に、単位時間あたりに送信できるテストメッセージ数を増加させることができ、効率的なファジングテストを行うことができるようになる。
無駄なテストメッセージとは、後述するテスト対象プログラム200に入力されないテストメッセージのことであり、テスト対象プログラム200のエラー発生後に送信されるテストメッセージが該当する。一方で、テスト対象プログラム200に入力されて、エラーの発生有無が検証されたテストメッセージのことは「有効なテストメッセージ」とも表す。
なお、以降では、QoSに「0」が設定されたテストメッセージを「テストメッセージ(QoS=0)」とも表す。同様に、QoSに「1」が設定されたテストメッセージを「テストメッセージ(QoS=1)」とも表す。
テスト対象装置20は、MQTTにおけるSubscriberとして機能するクライアントである。テスト対象装置20には、テスト対象プログラム200がインストールされている。テスト対象プログラム200は、MQTTを用いたファジングにおけるテスト対象となる1以上のプログラムである。ファジングテスト装置10から送信されたテストメッセージに含まれるファズデータがテスト対象プログラム200に入力されることで、テスト対象プログラム200の挙動確認を行うことができる。
なお、図1に示すファジングテストシステム1の構成は、一例であって、他の構成であっても良い。例えば、図1に示すファジングテストシステム1には、複数台のファジングテスト装置10が含まれていても良い。また、例えば、図1に示すファジングテストシステム1には、複数台のテスト対象装置20が含まれていても良い。
また、本実施形態では、ファジングテスト装置10がBrokerとして機能し、テスト対象装置20がSubscriberとして機能する場合について説明するが、これに限られない。本実施形態は、例えば、ファジングテスト装置10がPublisherとして機能し、テスト対象装置20がBrokerとして機能する場合についても同様に適用することができる。
<ファジングテストの概略>
次に、本実施形態に係るファジングテストシステム1におけるファジングの概略について、図2を参照しながら説明する。図2は、本実施形態に係るファジングテストシステム1におけるファジングの概略を説明する図である。
図2(a)に示すように、本実施形態に係るファジングテスト装置10は、k=1,2,・・・,Mとした場合に、各kに対して、N個のテストメッセージ(以降、「k回目のメッセージ群」とも表す。)をテスト対象装置20に送信する。なお、Nは、1以上の整数である。
このとき、本実施形態に係るファジングテスト装置10は、k回目のメッセージ群の送信において、N−1個のテストメッセージ(QoS=0)を送信した後、1個のテストメッセージ(QoS=1)を送信する。すなわち、N≠0である場合、テストメッセージ(QoS=0)に対するテストメッセージ(QoS=1)の送信比率は、1/Nである。なお、Mは、ユーザにより予め指定された1以上の整数である。
そして、図2(b)及び(c)に示すように、本実施形態に係るファジングテスト装置10は、これまでのテストメッセージに対するエラー発生率に応じて、Nk+1を算出する。
このとき、図2(b)に示すように、k回目のメッセージ群の送信において、テスト対象装置20でエラーが発生せず、エラー発生率が下がった場合(すなわち、ファジングテスト装置10がACKを受信した場合)、Nk+1>NとなるようにNk+1が算出される。
したがって、この場合、k+1回目のメッセージ群の送信では、テストメッセージ(QoS=0)の送信比率が高くなると共に、テストメッセージ(QoS=1)の送信比率が低くなる。
一方で、図2(c)に示すように、k回目のメッセージ群の送信において、テスト対象装置20でエラーが発生し、エラー発生率が上がった場合(すなわち、ファジングテスト装置10がACKを受信しなかった場合)、Nk+1<NとなるようにNk+1が算出される。
したがって、この場合、k+1回目のメッセージ群の送信では、テストメッセージ(QoS=0)の送信比率が低くなると共に、テストメッセージ(QoS=1)の送信比率が高くなる。
以上のように、本実施形態に係るファジングテスト装置10は、テスト対象装置20に対して、N−1個のテストメッセージ(QoS=0)を送信した後、1個のテストメッセージ(QoS=1)を送信する。そして、本実施形態に係るファジングテスト装置10は、テスト対象装置20におけるk回目までのエラー発生率に応じて、k+1回目のメッセージ群のメッセージ数Nk+1を算出する。すなわち、本実施形態に係るファジングテスト装置10は、テスト対象装置20におけるk回目までのエラー発生率に応じて、k+1回目のメッセージ群に含まれるテストメッセージ(QoS=1)の送信比率を動的に変更する。
このように、本実施形態に係るファジングテスト装置10は、エラー発生率に応じて、テスト対象装置20の死活を確認するための死活確認メッセージ(すなわち、QoSに「1」が設定されたメッセージ)の送信比率を動的に変更する。
これにより、無駄なテストメッセージの送信を減少させる(すなわち、有効なテストメッセージ数を増加させる)と共に、単位時間あたりに送信できるテストメッセージ数を増加させることができ、効率的なファジングテストを行うことができるようになる。
<ハードウェア構成>
次に、本実施形態に係るファジングテスト装置10及びテスト対象装置20のハードウェア構成について、図3を参照しながら説明する。図3は、本実施形態に係るファジングテスト装置10及びテスト対象装置20のハードウェア構成の一例を示す図である。なお、ファジングテスト装置10及びテスト対象装置20は、同様のハードウェア構成を有しているため、以降では、主に、ファジングテスト装置10のハードウェア構成について説明する。
図3に示すように、本実施形態に係るファジングテスト装置10は、入力装置11と、表示装置12と、外部I/F13と、通信I/F14とを有する。また、本実施形態に係るファジングテスト装置10は、ROM(Read Only Memory)15と、RAM(Random Access Memory)16と、CPU(Central Processing Unit)17と、補助記憶装置18とを有する。これら各ハードウェアは、それぞれがバス19で相互に接続されている。
入力装置11は、例えばキーボードやマウス、タッチパネル等であり、ファジングテスト装置10に各種の操作信号を入力するのに用いられる。表示装置12は、例えばディスプレイ等であり、ファジングテスト装置10による各種の処理結果を表示する。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。ファジングテスト装置10は、外部I/F13を介して、記録媒体13aの読み取りや書き込みを行うことができる。
記録媒体13aには、例えば、SDメモリカード(SD memory card)やUSB(Universal Serial Bus)メモリ、CD(Compact Disk)、DVD(Digital Versatile Disk)等がある。
通信I/F14は、ファジングテスト装置10がネットワークNに接続するためのインタフェースである。ファジングテスト装置10は、通信I/F14を介して、テスト対象装置20と通信を行うことができる。
ROM15は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。RAM16は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU17は、例えば補助記憶装置18やROM15等からプログラムやデータをRAM16上に読み出して、各種処理を実行する演算装置である。
補助記憶装置18は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性のメモリである。補助記憶装置18に格納されるプログラムやデータには、例えば、基本ソフトウェアであるOS(Operating System)や各種アプリケーションプログラム、ファジングテストプログラム100等がある。なお、テスト対象装置20の補助記憶装置18には、テスト対象プログラム200等が格納されている。
本実施形態に係るファジングテスト装置10及びテスト対象装置20は、図3に示すハードウェア構成を有することにより、後述する各種処理が実現される。
<機能構成>
次に、本実施形態に係るファジングテスト装置10の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係るファジングテスト装置10の機能構成の一例を示す図である。
図4に示すように、本実施形態に係るファジングテスト装置10は、ファジングテスト処理部110と、記憶部120とを有する。ファジングテスト処理部110は、ファジングテストプログラム100がCPU17に実行させる処理により実現される。また、記憶部120は、例えば補助記憶装置18を用いて実現可能である。なお、記憶部120は、例えば、ファジングテスト装置10とネットワークNを介して接続される記憶装置等を用いて実現されても良い。
ファジングテスト処理部110は、テストメッセージの作成及び送信に関する処理を実行する。ファジングテスト処理部110は、UI制御部111と、メッセージ時間算出部112と、エラー発生率算出部113と、メッセージ数算出部114と、メッセージ作成部115とを有する。また、ファジングテスト処理部110は、メッセージ送信部116と、メッセージ受信部117と、再起動指示部118と、エラー有無設定部119とを有する。
UI制御部111は、ユーザによる各種操作の入力を受け付けると共に、各種画面を表示する。例えば、UI制御部111は、ファジングテストを開始するための操作(テスト開始操作)の入力を受け付ける。また、例えば、UI制御部111は、ユーザがテスト開始操作を行うための画面(テスト開始画面)を表示する。
メッセージ時間算出部112は、UI制御部111がテスト開始操作を受け付けると、メッセージ時間tと、メッセージ時間tとを算出する。メッセージ時間tとは、テストメッセージ(QoS=0)の送信後、当該テストメッセージ(QoS=0)がテスト対象装置20に受信されるまでの時間である。また、メッセージ時間tとは、テストメッセージ(QoS=1)の送信後、当該テストメッセージ(QoS=1)に対するACKを受信するまでの時間である。なお、メッセージ時間算出部112は、第2の算出部の一例である。
エラー発生率算出部113は、k回目までのメッセージ群を送信した後のテスト対象装置20のエラー発生率pk+1を算出する。なお、エラー発生率算出部113は、第1の算出部の一例である。
メッセージ数算出部114は、エラー発生率算出部113が算出したエラー発生率pk+1から、k+1回目のメッセージ群に含まれるテストメッセージの数Nk+1を算出する。なお、以降では、メッセージ群に含まれるテストメッセージの数を「メッセージ群のメッセージ数」とも表す。なお、メッセージ数算出部114は、決定部の一例である。
メッセージ群のメッセージ数Nが算出されることで、k回目のメッセージ群の送信におけるテストメッセージ(QoS=1)の送信比率1/Nが決定される。ただし、この場合、N≠0であるもとする。なお、Nが1である場合、k回目のメッセージ群には、1個のテストメッセージ(QoS=1)のみが含まれることになる。
メッセージ作成部115は、ファズデータが含まれるテストメッセージを作成する。k回目のメッセージ群を送信する場合、メッセージ作成部115は、N−1個のテストメッセージ(QoS=0)と、1個のテストメッセージ(QoS=1)とを作成する。ファズデータとは、例えば、長い文字列や乱数等のデータである。なお、テストメッセージは、ファズメッセージの一例である。また、メッセージ作成部115は、メッセージ作成部の一例である。
メッセージ送信部116は、メッセージ作成部115により作成されたテストメッセージをテスト対象装置20に送信する。k回目のメッセージ群を送信する場合、メッセージ送信部116は、N−1個のテストメッセージ(QoS=0)をテスト対象装置20に送信した後、1個のテストメッセージ(QoS=1)をテスト対象装置20に送信する。なお、メッセージ送信部116は、送信部の一例である。
メッセージ受信部117は、メッセージ送信部116が送信したテストメッセージ(QoS=1)に対するACKを受信する。
再起動指示部118は、メッセージ送信部116がテストメッセージ(QoS=1)を送信した後、メッセージ時間tが経過する前に、メッセージ受信部117がACKを受信しなかった場合、再起動指示をテスト対象装置20に送信する。すなわち、再起動指示部118は、テスト対象装置20でエラーが発生した場合、再起動指示を当該テスト対象装置20に送信する。なお、再起動指示部118は、再起動指示部の一例である。
エラー有無設定部119は、k回目のメッセージ群に含まれるテストメッセージを受信したテスト対象装置20でエラーが発生した場合、エラーが発生したことを示す「1」をエラー有無eに設定する。一方で、エラー有無設定部119は、k回目のメッセージ群に含まれるテストメッセージを受信したテスト対象装置20でエラーが発生しなかった場合、エラーが発生しなかったことを示す「0」をエラー有無eに設定する。
記憶部120は、テストメッセージの作成及び送信に関する処理に用いられる各種情報を記憶する。記憶部120に記憶される情報には、例えば、k回目のメッセージ群のメッセージ数N、k回目のメッセージ群におけるエラー有無e、メッセージ時間t、及びメッセージ時間t等がある。これらの各種情報は、ファジングテスト処理部110により、記憶部120に保存される。
<テストメッセージの作成及び送信処理>
次に、本実施形態に係るファジングテスト処理部110がテストメッセージを作成して、テスト対象装置20に送信する処理について、図5を参照しながら説明する。図5は、本実施形態に係るテストメッセージの作成及び送信処理の一例を示すフローチャートである。
まず、ファジングテスト処理部110のUI制御部111は、例えば図6に示すテスト開始画面G100を表示する(ステップS501)。図6は、本実施形態に係るテスト開始画面G100の一例を示す図である。なお、テスト開始画面G100は、例えば、ファジングテストプログラム100が起動されることにより表示される。
図6に示すテスト開始画面G100には、メッセージ群の総送信回数の入力欄G110と、想定初期エラー発生率の入力欄G120と、テスト実行ボタンG130とが含まれる。ユーザは、所望の総送信回数を入力欄G110に指定すると共に、想定初期エラー発生率を入力欄G120に指定した上で、テスト実行ボタンG130を押下することで、テスト開始操作を行うことができる。以降では、メッセージ群の総送信回数Mと、想定初期エラー発生率pとが指定された上で、テスト開始操作が行われたものとする。
なお、図6に示すテスト開始画面G100では、テスト対象装置20のIP(Internet Protocol)アドレス等を指定することができても良い。
次に、ファジングテスト処理部110のUI制御部111は、メッセージ群の総送信回数Mと、想定初期エラー発生率pとが指定されたテスト開始操作の入力を受け付ける(ステップS502)。
次に、ファジングテスト処理部110は、メッセージ時間の算出処理を行って、メッセージ時間tと、メッセージ時間tとを算出する(ステップS503)。メッセージ時間tと、メッセージ時間tとは関係0<t≦tを満たす。算出されたメッセージ時間tと、メッセージ時間tとは、記憶部120に保存される。なお、メッセージ時間の算出処理の詳細については後述する。
次に、ファジングテスト処理部110のメッセージ数算出部114は、1回目のメッセージ群のメッセージ数Nを算出する(ステップS504)。ここで、メッセージ数算出部114は、以下の(式1)により1回目のメッセージ群のメッセージ数Nを算出する。算出されたメッセージ数Nは、記憶部120に保存される。
Figure 2018195288
次に、ファジングテスト処理部110は、メッセージ群の送信回数kを「1」に初期化する(ステップS505)。kは、メッセージ群の送信回数を示す変数である。
次に、ファジングテスト処理部110は、送信メッセージ数nを「1」に初期化する(ステップS506)。nは、メッセージ群に含まれるテストメッセージの送信回数を示す変数である。
次に、ファジングテスト処理部110のメッセージ作成部115は、テストメッセージ(QoS=0)を作成する(ステップS507)。すなわち、メッセージ作成部115は、ファズデータを作成した上で、作成したファズデータが含まれ、かつ、QoSに「0」が設定されたテストメッセージを作成する。
次に、ファジングテスト処理部110のメッセージ送信部116は、上記のステップS507で作成されたテストメッセージ(QoS=0)をテスト対象装置20に送信する(ステップS508)。
次に、ファジングテスト処理部110は、送信メッセージ数nが、N−1以上であるか否かを判定する(ステップS509)。すなわち、ファジングテスト処理部110は、N−1個のテストメッセージ(QoS=0)がテスト対象装置20に送信されたか否かを判定する。
ステップS509において、送信メッセージ数nがN−1以上でないと判定された場合、ファジングテスト処理部110は、送信メッセージ数nに「1」を加算する(ステップS510)。そして、ファジングテスト処理部110は、ステップS507に戻る。これにより、N−1個のテストメッセージ(QoS=0)がテスト対象装置20に送信される。
一方、ステップS509において、送信メッセージ数nがN−1以上であると判定された場合、ファジングテスト処理部110のメッセージ作成部115は、テストメッセージ(QoS=1)を作成する(ステップS511)。すなわち、メッセージ作成部115は、ファズデータを作成した上で、作成したファズデータが含まれ、かつ、QoSに「1」が設定されたテストメッセージを作成する。
次に、ファジングテスト処理部110のメッセージ送信部116は、上記のステップS511で作成されたテストメッセージ(QoS=1)をテスト対象装置20に送信する(ステップS512)。
次に、ファジングテスト処理部110のメッセージ受信部117は、メッセージ時間t以内に、テスト対象装置20からACKを受信したか否かを判定する(ステップS513)。すなわち、ファジングテスト処理部110は、上記のステップS508及びステップS512で送信されたテストメッセージを受信したテスト対象装置20でエラーが発生したか否かを判定する。
ステップS513において、メッセージ時間t以内にACKを受信した場合、ファジングテスト処理部110のエラー有無設定部119は、k回目のエラー有無eに「0」を設定する(ステップS514)。「0」が設定されたエラー有無eは、記憶部120に保存される。
このように、k回目のメッセージ群に含まれる全てのテストメッセージでエラーが発生しなかった場合、エラー有無eには、テスト対象装置20でエラーが発生しなかったことを示す「0」が設定される。
一方、ステップS513において、メッセージ時間t以内にACKを受信しなかった場合、ファジングテスト処理部110の再起動指示部118は、再起動指示をテスト対象装置20に送信する(ステップS515)。これにより、エラーが発生したテスト対象装置20が再起動される。なお、再起動指示には、例えば、SSH(Secure Shell)を用いた再起動コマンド等が挙げられる。
次に、ファジングテスト処理部110のエラー有無設定部119は、k回目のエラー有無eに「1」を設定する(ステップS516)。「1」が設定されたエラー有無eは、記憶部120に保存される。
このように、k回目のメッセージ群に含まれるテストメッセージでエラーが発生した場合、エラー有無eには、テスト対象装置20でエラーが発生したことを示す「1」が設定される。
ステップS514又はステップS516に続いて、ファジングテスト処理部110のエラー発生率算出部113は、以下の(式2)により、k回目までのメッセージ群を送信した後のテスト対象装置20のエラー発生率pk+1を算出する(ステップS517)。
Figure 2018195288
次に、ファジングテスト処理部110のメッセージ数算出部114は、k+1回目のメッセージ群のメッセージ数Nk+1を算出する(ステップS518)。ここで、メッセージ数算出部114は、以下の(式3)によりk+1回目のメッセージ群のメッセージ数Nk+1を算出する。算出されたメッセージ数Nk+1は、記憶部120に保存される。
Figure 2018195288
上記の(式3)によりメッセージ数Nk+1を算出することで、k回目のメッセージ群の送信においてテスト対象装置20でエラーが発生した場合(すなわち、エラー発生率pk+1>pとなった場合)、Nk+1<NとなるようにNk+1が算出される。これにより、ファジングにおけるテストメッセージ(QoS=1)の送信比率が高くなるように決定される。したがって、テスト対象装置20で発生したエラーを素早く検出することができ、無駄なテストメッセージの送信数を減少させることができる。
一方で、k回目のメッセージ群の送信においてテスト対象装置20でエラーが発生しなかった場合、(すなわち、エラー発生率pk+1<pとなった場合)、Nk+1>NとなるようにNk+1が算出される。これにより、ファジングにおけるテストメッセージ(QoS=0)の送信比率が高まるように決定される。言い換えれば、ファジングにおけるテストメッセージ(QoS=1)の送信比率が低くなるように決定される。したがって、単位時間あたりのテストメッセージの送信数を増加させることができる。
また、上記の(式3)によりメッセージ数Nk+1を算出することで、メッセージ時間tと、メッセージ時間tとが近い程、Nk+1が「1」に近くなる。すなわち、メッセージ(QoS=0)がテスト対象装置20に届くまでの時間と、メッセージ(QoS=1)に対するACKをファジングテスト装置10が受け取るまでの時間とが近い場合には、テストメッセージ(QoS=1)の送信比率が高くなるように決定される。これにより、単位時間あたりのテストメッセージの送信数を増加させると共に、無駄なテストメッセージ数を減少させることができる。
なお、上述したように、Nk+1の逆数が、k+1回目のメッセージ群におけるテストメッセージ(QoS=1)の送信比率となる。メッセージ数算出部114は、上記のステップS518で、k+1回目のメッセージ群におけるテストメッセージ(QoS=1)の送信比率1/Nk+1を算出しても良い。
次に、ファジングテスト処理部110は、メッセージ群の送信回数kが、メッセージ群の総送信回数M以上であるか否かを判定する(ステップS519)。すなわち、ファジングテスト処理部110は、k=1,・・・,Mに対して、N−1個のテストメッセージ(QoS=0)と、1個のテストメッセージ(QoS=1)とがテスト対象装置20に送信されたか否かを判定する。
ステップS519において、メッセージ群の送信回数kがM以上でないと判定された場合、ファジングテスト処理部110は、メッセージ群の送信回数kに「1」を加算する(ステップS520)。そして、ファジングテスト処理部110は、ステップS506に戻る。これにより、k=1,・・・,Mに対して、N−1個のテストメッセージ(QoS=0)と、1個のテストメッセージ(QoS=1)とがテスト対象装置20に送信される。言い換えれば、M個のメッセージ群がテスト対象装置20に送信される。
一方、ステップS519において、メッセージ群の送信回数kがM以上であると判定された場合、ファジングテスト処理部110は、処理を終了する。すなわち、ファジングテスト処理部110は、ファジングを終了する。
以上のように、本実施形態に係るファジングテスト装置10は、テスト対象装置20に対して、N−1個のテストメッセージ(QoS=0)を送信した後、1個のテストメッセージ(QoS=1)を送信する。そして、本実施形態に係るファジングテスト装置10は、テスト対象装置20におけるk回目までのエラー発生率に応じて、k+1回目のメッセージ群に含まれるテストメッセージ(QoS=1)の送信比率を動的に変更する。
このように、本実施形態に係るファジングテスト装置10は、テスト対象装置20におけるエラー発生率に応じて、死活確認メッセージ(すなわち、QoSに「1」が設定されたメッセージ)の送信比率を動的に変更する。これにより、無駄なテストメッセージの送信を減少させる(すなわち、有効なテストメッセージ数を増加させる)と共に、単位時間あたりに送信できるテストメッセージ数を増加させることができ、効率的なファジングテストを行うことができるようになる。
<メッセージ時間の算出処理>
ここで、上記のステップS503のメッセージ時間の算出処理について、図7を参照しながら説明する。図7は、本実施形態に係るメッセージ時間の算出処理の一例を示すフローチャートである。
まず、ファジングテスト処理部110は、テストメッセージ(QoS=0)の送信数rを「1」に初期化する(ステップS701)。rは、メッセージ時間tを算出するためのテストメッセージ(QoS=0)の送信回数を示す変数である。
次に、ファジングテスト処理部110のメッセージ作成部115は、テストメッセージ(QoS=0)を作成する(ステップS702)。すなわち、メッセージ作成部115は、ファズデータを作成した上で、作成したファズデータが含まれ、かつ、QoSに「0」が設定されたテストメッセージを作成する。なお、このとき、メッセージ作成部115は、テスト対象装置20でエラーが発生しないファズデータを作成する。
次に、ファジングテスト処理部110のメッセージ送信部116は、上記のステップS702で作成されたテストメッセージ(QoS=0)をテスト対象装置20に送信する(ステップS703)。
次に、ファジングテスト処理部110は、テストメッセージ(QoS=0)の送信数rが「1」であるか否かを判定する(ステップS704)。
ステップS704において、送信数rが「1」であると判定された場合、ファジングテスト処理部110のメッセージ送信部116は、上記のステップS703で送信したテストメッセージ(QoS=0)の送信時刻tを記憶部120に保存する(ステップS705)。すなわち、メッセージ送信部116は、最初に送信したテストメッセージ(QoS=0)の送信時刻tを記憶部120に保存する。
一方、ステップS704において、送信数rが「1」でないと判定された場合、又はステップS705に続いて、ファジングテスト処理部110は、テストメッセージ(QoS=0)の送信数rがR以上であるか否かを判定する(ステップS706)。Rは、例えば、ユーザ等により予め設定された1以上の整数である。
ステップS706において、送信数rがR以上でないと判定された場合、ファジングテスト処理部110は、テストメッセージ(QoS=0)の送信数rに「1」を加算する(ステップS707)。そして、ファジングテスト処理部110は、ステップS702に戻る。これにより、R個のテストメッセージ(QoS=0)がテスト対象装置20に送信される。
一方、ステップS706において、送信数rがR以上であると判定された場合、ファジングテスト処理部110のメッセージ作成部115は、テストメッセージ(QoS=1)を作成する(ステップS708)。すなわち、メッセージ作成部115は、ファズデータを作成した上で、作成したファズデータが含まれ、かつ、QoSに「1」が設定されたテストメッセージを作成する。なお、このとき、メッセージ作成部115は、テスト対象装置20でエラーが発生しないファズデータを作成する。
次に、ファジングテスト処理部110のメッセージ送信部116は、上記のステップS708で作成されたテストメッセージ(QoS=1)をテスト対象装置20に送信する(ステップS709)。
次に、ファジングテスト処理部110のメッセージ送信部116は、上記のステップS708で送信したテストメッセージ(QoS=1)の送信時刻tを記憶部120に保存する(ステップS710)。
次に、ファジングテスト処理部110のメッセージ受信部117は、上記のステップS708で送信したテストメッセージ(QoS=1)に対するACKを受信したか否かを判定する(ステップS711)。
ステップS711において、ACKを受信したと判定されなかった場合、ファジングテスト処理部110は、ステップS711に戻る。すなわち、この場合、ファジングテスト処理部110は、上記のステップS708で送信したテストメッセージ(QoS=1)に対するACKを受信するまで待ち状態となる。
一方、ステップS711において、ACKを受信したと判定された場合、ファジングテスト処理部110のメッセージ受信部117は、当該ACKの受信時刻tを記憶部120に保存する(ステップS712)。
次に、ファジングテスト処理部110のメッセージ時間算出部112は、テストメッセージ(QoS=0)のメッセージ時間tと、テストメッセージ(QoS=1)のメッセージ時間tとを算出する(ステップS713)。メッセージ時間算出部112は、以下の(式4)及び(式5)により、メッセージ時間tと、メッセージ時間tとを算出する。
Figure 2018195288
Figure 2018195288
以上により、テストメッセージ(QoS=0)がテスト対象装置20に到達するまでの時間を示すメッセージ時間tと、テストメッセージ(QoS=1)に対するACKを受け取るまでの時間を示すメッセージ時間tとが算出される。なお、ユーザは、上記のRの値を大きな値に設定することで、メッセージ時間tの精度を向上させることができる。
<テストメッセージの作成及び送信処理の他の例>
ここで、本実施形態に係るテストメッセージの作成及び送信処理の他の例について、図8を参照しながら説明する。図8は、本実施形態に係るテストメッセージの作成及び送信処理の他の例を示すフローチャートである。なお、図8のステップS503〜ステップS518及びステップS520は、図5と同様であるため、その説明を省略する。
まず、ファジングテスト処理部110のUI制御部111は、例えば図9に示すテスト開始画面G200を表示する(ステップS801)。図9は、本実施形態に係るテスト開始画面G200の他の例を示す図である。なお、テスト開始画面G200は、例えば、ファジングテストプログラム100が起動されることにより表示される。
図9に示すテスト開始画面G200には、総テスト時間の入力欄G210が含まれる。ユーザは、ファジングの総テスト時間を入力欄G210に指定すると共に、想定初期エラー発生率を入力欄G120に指定した上で、テスト実行ボタンG130を押下することで、テスト開始操作を行うことができる。以降では、総テスト時間Tと、想定初期エラー発生率pとが指定された上で、テスト開始操作が行われたものとする。
次に、ファジングテスト処理部110のUI制御部111は、総テスト時間Tと、想定初期エラー発生率pとが指定されたテスト開始操作の入力を受け付ける(ステップS802)。
ステップS504に続いて、ファジングテスト処理部110は、ファジングの経過時間tを「0」に初期化する(ステップS803)。tは、ファジングの経過時間を示す変数である。
また、ステップS518に続いて、ファジングテスト処理部110は、ファジングの経過時間tが、ファジングの総テスト時間T以上であるか否かを判定する(ステップS804)。
ステップS804において、ファジングの経過時間tが総テスト時間T以上でないと判定された場合、ファジングテスト処理部110は、ステップS520に進む。これにより、総テスト時間Tが経過するまで、ステップS505〜ステップS518が繰り返し実行される。
一方、ステップS519において、ファジングの経過時間tが総テスト時間T以上であると判定された場合、ファジングテスト処理部110は、処理を終了する。すなわち、ファジングテスト処理部110は、ファジングを終了する。
以上のように、本実施形態に係るファジングテスト装置10は、ユーザにより設定された総テスト時間Tが経過するまで、Nを動的に更新しながら、N−1個のテストメッセージ(QoS=0)と、1個のテストメッセージ(QoS=1)とを送信する。これにより、ユーザは、例えば、自身が所望する時間が経過するまでの間、効率的なファジングテストを行うことができるようになる。
(第二の実施形態)
次に、第二の実施形態について説明する。第一の実施形態では、メッセージ時間の算出処理で予め算出されたメッセージ時間t及びtを用いて、全てのテストメッセージでエラー発生の有無を判定した。しかしながら、ファジングテスト装置10から送信されるテストメッセージの長さ(例えば、ペイロードの長さ)によって、当該テストメッセージがテスト対象装置20に到達するまでの時間が変化し得る。また、当該テストメッセージにQoS=1が設定されている場合、当該テストメッセージに対するACKをファジングテスト装置10が受信するまでの時間も変化し得る。
このため、テストメッセージ(QoS=0)の長さによっては、当該テストメッセージ(QoS=0)の送信後、テスト対象装置20に受信されるまでの時間と、メッセージ時間tとの誤差が大きくなる場合がある。同様に、テストメッセージ(QoS=1)の長さによっては、当該テストメッセージ(QoS=1)の送信後、ファジングテスト装置10がACKを受信するまでの時間と、メッセージ時間tとの誤差が大きくなる場合がある。
したがって、テストメッセージ(QoS=0)に対するテストメッセージ(QoS=1)の送信比率1/Nが不正確となり、ファジングテストの効率が低下する場合がある。また、当該テストメッセージ(QoS=1)の送信後、ファジングテスト装置10がACKを受信するまでの時間がメッセージ時間tよりも長くなることで、誤判定が発生し、ファジングテストの効率が低下する場合がある。
そこで、本実施形態では、テストメッセージの長さに応じてテストメッセージの集合を複数の部分集合(これを「サブセット」とも表す。)に分割した上で、サブセット毎に、メッセージ時間t及びtを算出する場合について説明する。テストメッセージの長さに応じてテストメッセージの集合を複数のサブセットに分割することで、例えば、各サブセットには同程度の長さのテストメッセージが含まれることになる。これにより、同一のサブセットに含まれるテストメッセージでは、当該サブセットについて算出されたメッセージ時間t及びtとの誤差を低減することができる。
したがって、テストメッセージの長さが異なるためにメッセージ時間t及びtに誤差が生じることによるファジングテストの効率低下を防止することができる。以降では、テストメッセージの長さを「メッセージ長」とも表す。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の構成要素については、適宜、その説明を省略又は簡略化する。
<機能構成>
まず、本実施形態に係るファジングテスト装置10の機能構成について、図10を参照しながら説明する。図10は、本実施形態に係るファジングテスト装置10の機能構成の一例を示す図である。
図10に示すように、本実施形態に係るファジングテスト装置10のファジングテスト処理部110は、更に、ソート部121と、分割部122と、計測メッセージ作成部123とを有する。
また、本実施形態に係るメッセージ作成部115は、メッセージ時間の算出処理よりも前に、ファジングテストに用いられるテストメッセージの集合(以降、「メッセージ集合」とも表す。)を作成する。このとき、本実施形態に係るメッセージ作成部115は、例えば、ユーザに指定された数のテストメッセージが含まれるメッセージ集合を作成する。
ソート部121は、メッセージ作成部115により作成されたメッセージ集合に含まれるテストメッセージをメッセージ長によってソート(並び替え)する。例えば、ソート部121は、メッセージ集合に含まれるテストメッセージをメッセージ長の昇順(又は降順)にソートする。
分割部122は、ソート部121によるソート後のメッセージ集合を、当該メッセージ集合に含まれるテストメッセージの長さに応じて、1以上のサブセットに分割する。例えば、分割部122は、同一のサブセットに含まれるテストメッセージが同程度の長さとなるように、メッセージ集合を1以上のサブセットに分割する。これにより、例えば、同程度の長さのテストメッセージがそれぞれ含まれる1以上のサブセットが作成される。なお、分割部122は、分割部の一例である。
計測メッセージ作成部123は、分割部122により作成されたサブセットのうちの選択されたサブセットに含まれるテストメッセージから、当該選択されたサブセットのメッセージ時間t及びtの算出に用いるテストメッセージ(以降、「計測用メッセージ」とも表す。)を作成する。これにより、サブセット毎に計測用メッセージが作成される。
そして、本実施形態に係るメッセージ時間算出部112では、計測メッセージ作成部123により作成された計測用メッセージを用いて、当該サブセットに含まれる各テストメッセージのファジングテストに用いるメッセージ時間t及びtを算出する。その後、本実施形態では、サブセット毎に算出されたメッセージ時間t及びtを用いて、当該サブセットに含まれる各テストメッセージのファジングテストが行われる。なお、計測メッセージ作成部123は、計測メッセージ作成部の一例である。
このように、本実施形態では、例えば同程度の長さのテストメッセージが含まれるサブセット毎にメッセージ時間t及びtを算出し、これら算出したメッセージ時間t及びtを用いて、当該サブセットに含まれるテストメッセージのファジングテストを行う。これにより、当該サブセットに含まれるテストメッセージ(QoS=0)の送信後、テスト対象装置20に受信されるまでの時間と、メッセージ時間tとの誤差が低減させることができる。同様に、当該サブセットに含まれるテストメッセージ(QoS=1)の送信後、ファジングテスト装置10がACKを受信するまでの時間と、メッセージ時間tとの誤差を低減させることができる。したがって、本実施形態に係るファジングテスト装置10によれば、テストメッセージの長さが異なるためにメッセージ時間t及びtに誤差が生じることによるファジングテストの効率低下を防止することができる。
<テストメッセージの作成及び送信処理>
次に、本実施形態に係るテストメッセージの作成及び送信処理について、図11A及び図11Bを参照しながら説明する。図11A及び図11Bは、本実施形態に係るテストメッセージの作成及び送信処理の一例を示すフローチャートである。なお、図11A及び図11BのステップS504〜ステップS506、ステップS508〜ステップS509及びステップS512〜ステップS520は、図5と同様であるため、その説明を省略する。
まず、ファジングテスト処理部110のUI制御部111は、例えば図12に示すテスト開始画面G300を表示する(ステップS1101)。図12は、テスト開始画面G300の一例を示す図である。なお、テスト開始画面G300は、例えば、ファジングテストプログラム100が起動されることにより表示される。
図12に示すテスト開始画面G300には、総メッセージ数の入力欄G310と、サブセット数(メッセージ集合の分割数)の入力欄G320とが含まれる。ユーザは、作成されるテストメッセージの総数と、メッセージ集合の分割数とをそれぞれ入力欄G310と入力欄G320とに指定すると共に、想定初期エラー発生率を入力欄G120に指定する。そして、テスト実行ボタンG130を押下することで、ユーザは、テスト開始操作を行うことができる。以降では、総メッセージ数Lと、サブセット数Sと、想定初期エラー発生率pとが指定された上で、テスト開始操作が行われたものとする。
次に、ファジングテスト処理部110のUI制御部111は、総メッセージ数Lと、サブセット数Sと、想定初期エラー発生率pとが指定されたテスト開始操作の入力を受け付ける(ステップS1102)。
次に、ファジングテスト処理部110のメッセージ作成部115は、L個のテストメッセージが含まれるメッセージ集合を作成する(ステップS1103)。これらのL個のテストメッセージは、QoSに任意の値が設定されていても良いし、QoSが設定されていなくても良い。又は、全てのテストメッセージのQoSが「0」又は「1」に設定されていても良い。なお、本実施形態では、総メッセージ数Lはユーザにより指定されるものとしたが、これに限られず、例えば、総メッセージ数Lは予め決められていても良い。
次に、ファジングテスト処理部110のソート部121は、メッセージ作成部115により作成されたメッセージ集合に含まれるテストメッセージをメッセージ長によってソートする(ステップS1104)。ソート部121は、例えば、メッセージ集合に含まれるテストメッセージをメッセージ長の昇順(又は降順)にソートする。
次に、ファジングテスト処理部110の分割部122は、ソート部121によるソート後のメッセージ集合をS個のサブセットに分割する(ステップS1105)。
例えば、分割部122は、ソート後のメッセージ集合の先頭(又は末尾)からceil(L/S)個ずつテストメッセージを取得し、取得したceil(L/S)個のテストメッセージを1つのサブセットとする。なお、ceilは、L/Sの小数点以下を切り上げることを意味する。
より具体的には、例えば、ソート後のメッセージ集合に含まれる1番目からceil(L/S)番目までのテストメッセージをサブセットV、ceil(L/S)+1番目から2×ceil(L/M)番目までのテストメッセージをサブセットVとする。以降も同様に、(i−1)×ceil(L/S)+1番目からi×ceil(L/S)番目までのテストメッセージをサブセットVとする。ただし、i=1,2,・・・,S−1である。
また、(S−1)×ceil(L/S)+1番目以降の全てのテストメッセージをサブセットVとする。
これにより、ceil(L/S)個のテストメッセージが含まれるS−1個のサブセットと、ceil(L/S)個以下のテストメッセージが含まれる1個のサブセットとにメッセージ集合が分割される。このとき、テストメッセージの長さの昇順又は降順にソートされたメッセージ集合の先頭又は末尾から順にceil(L/S)個のテストメッセージを取得することで各サブセットに分割しているため、同一のサブセットに含まれるテストメッセージの長さは同程度となる。
ただし、上記以外にも、例えば、或る範囲内の長さのメッセージが同一のサブセットに含まれるように、メッセージ集合を分割しても良い。例えば、メッセージの長さを表す定数をd,d,・・・,d,dS+1として、d<d<・・・<d<dS+1とする。このとき、メッセージの長さがd以上d未満であるテストメッセージをサブセットV,メッセージの長さがd以上d未満であるテストメッセージをサブセットV,・・・,メッセージの長さがd以上dS+1未満であるテストメッセージをサブセットVに含まれるように、メッセージ集合を分割しても良い。これにより、上記と同様に、同一のサブセットに含まれるテストメッセージの長さは同程度となる。
なお、同一のサブセットに含まれるテストメッセージの長さが同程度となるようにメッセージ集合をサブセットに分割する場合に限られず、例えば、各サブセットに含まれるテストメッセージの長さの平均が同程度となるようにメッセージ集合を分割することも考えられる。より具体的には、mを0以上の整数として、mV+i番目のテストメッセージがサブセットVに含まれるように、メッセージ集合を分割しても良い。ただし、i=1,2,・・・,Sである。
なお、本実施形態では、サブセット数Sはユーザにより指定されるものとしたが、これに限られず、例えば、サブセット数Sは予め決められていても良い。
以降では、メッセージ集合がサブセットV,V,・・・,Vに分割されたものとして説明を続ける。
次に、ファジングテスト処理部110は、サブセットV,V,・・・,Vの中から、未選択のサブセットを1つ選択する(ステップS1106)。以降では、未選択のサブセットVが選択されたものとして説明を続ける。
次に、ファジングテスト処理部110は、選択したサブセットVに対するメッセージ時間の算出処理を行って、このサブセットVのメッセージ時間t及びtを算出する(ステップS1107)。このように、本実施形態では、サブセットV毎にメッセージ時間t及びtを算出する。したがって、サブセットVのメッセージ時間tは、t とも表すことができる。同様に、サブセットVのメッセージ時間tは、t とも表すことができる。なお、メッセージ時間の算出処理の詳細については後述する。
ステップS506又はステップS510に続いて、ファジングテスト処理部110のメッセージ作成部115は、サブセットVに含まれるテストメッセージのうち、未選択のテストメッセージを1つ選択する。そして、メッセージ作成部115は、選択したテストメッセージのQoSに「0」を設定する(ステップS1108)。このテストメッセージ(QoS=0)がステップS508でテスト対象装置20に送信される。
なお、メッセージ作成部115は、例えば、サブセットVに含まれるテストメッセージの中から、QoSに「0」を設定するテストメッセージをランダムに選択しても良いし、テストメッセージの長さの昇順又は降順に選択しても良い。
ステップ509において、送信メッセージ数nがN−1以上であると判定された場合、ファジングテスト処理部110のメッセージ作成部115は、サブセットVに含まれるテストメッセージのうち、未選択のテストメッセージを選択する。そして、メッセージ作成部115は、選択したテストメッセージのQoSに「1」を設定する(ステップS1109)。このテストメッセージ(QoS=1)がステップS512でテスト対象装置20に送信される。
なお、メッセージ作成部115は、例えば、サブセットVに含まれるテストメッセージの中から、QoSに「1」を設定するテストメッセージをランダムに選択しても良いし、テストメッセージの長さの昇順又は降順に選択しても良い。
ステップS518に続いて、ファジングテスト処理部110は、未選択のテストメッセージがサブセットVにNk+1個以上あるか否かを判定する(ステップS1110)。
ステップS1110において、未選択のテストメッセージがサブセットVにNk+1個以上あると判定された場合、ファジングテスト処理部110は、ステップS520に進む。
一方で、ステップS1110において、未選択のテストメッセージがサブセットVにNk+1個以上ないと判定された場合、ファジングテスト処理部110は、サブセットV,V,・・・,Vのうち、未選択のサブセットがあるか否かを判定する(ステップS1111)。
ステップS1111において、未選択のサブセットがあると判定されなかった場合、ファジングテスト処理部110は、処理を終了する。すなわち、ファジングテスト処理部110は、ファジングを終了する。
一方で、ステップS1111において、未選択のサブセットがあると判定された場合、ファジングテスト処理部110は、ステップS1106に戻る。これにより、ステップS1106において、サブセットV,V,・・・,Vの中から、未選択のサブセットVが選択され、ステップS1107以降の処理が実行される。
以上のように、本実施形態に係るファジングテスト装置10は、例えば同程度の長さのテストメッセージが含まれるサブセットV毎に、メッセージ時間t=t と、メッセージ時間t=t とを算出する。そして、本実施形態に係るファジングテスト装置10は、これらのメッセージ時間t=t 及びt=t を用いて、サブセットVに含まれるテストメッセージでファジングテストを行う。
これにより、本実施形態に係るファジングテスト装置10では、テストメッセージの長さが異なるためにメッセージ時間t及びtに誤差が生じることによるファジングテストの効率低下を防止することができる。
なお、図11A及び図11Bに示す例では、テストメッセージ集合を予めサブセットV,V,・・・,Vに分割した後、サブセットV毎に、メッセージ時間の算出(ステップS1107)と、ファジングテスト(ステップS504以降)とを繰り返したが、これに限られない。例えば、テストメッセージ集合から1つのサブセットVを作成し、当該サブセットVのメッセージ時間の算出と、当該サブセットVのファジングテストとを行った後、次のサブセットVを作成することを繰り返しても良い。
<メッセージ時間の算出処理>
ここで、上記のステップS1107のメッセージ時間の算出処理について、図13を参照しながら説明する。図13は、本実施形態に係るメッセージ時間の算出処理の一例を示すフローチャートである。なお、図13のステップS701、ステップS703〜ステップS707、ステップS709〜ステップS713は、図7と同様であるため、その説明を省略する。
まず、ファジングテスト処理部110の計測メッセージ作成部123は、サブセットVに含まれるテストメッセージから計測用メッセージを作成する(ステップS1301)。
ここで、計測メッセージ作成部123は、計測用メッセージの長さとしては、例えば、サブセットVに含まれるテストメッセージのメッセージ長のうちの最大の長さとしても良いし、これらのテストメッセージのメッセージ長の平均の長さとしても良い。
また、計測メッセージ作成部123は、計測用メッセージのデータ内容(ファズデータの内容)としては、例えば、サブセットVに含まれる任意のテストメッセージと同一のデータ内容としても良いし、ランダムな文字列又は所定の文字列等としても良い。ただし、計測メッセージ作成部123は、テスト対象装置20でエラーが発生しないファズデータを作成する。
ステップS701又はステップS707に続いて、ファジングテスト処理部110のメッセージ作成部115は、計測メッセージ作成部123により作成された計測用メッセージのQoSに「0」を設定する(ステップS1302)。QoSに「0」が設定された計測用メッセージ(テストメッセージ(QoS=0))がステップS703でテスト対象装置20に送信される。
ステップS706において、送信数rがR以上であると判定された場合、ファジングテスト処理部110のメッセージ作成部115は、計測メッセージ作成部123により作成された計測用メッセージのQoSに「1」を設定する(ステップS1303)。QoSに「1」が設定された計測用メッセージ(テストメッセージ(QoS=1))がステップS709でテスト対象装置20に送信される。
以上により、サブセットVのメッセージ時間t=t 及びt=t が算出される。しかも、本実施形態では、サブセットVに含まれるテストメッセージのメッセージ長の最大又は平均の長さの計測用メッセージを用いてメッセージ時間t及びtを算出する。これにより、本実施形態では、当該サブセットVに含まれる各テストメッセージを送信した場合に、テストメッセージ(QoS=0)の送信後、テスト対象装置20に受信されるまでの時間との誤差が少ないメッセージ時間tを算出することができる。同様に、本実施形態では、当該サブセットVに含まれる各テストメッセージを送信した場合に、テストメッセージ(QoS=1)の送信後、ファジングテスト装置10がACKを受信するまでの時間との誤差が少ないメッセージ時間tを算出することができる。
<テストメッセージの作成及び送信処理の他の例>
ここで、本実施形態に係るテストメッセージの作成及び送信処理の他の例について、図14A及び図14Bを参照しながら説明する。図14A及び図14Bは、本実施形態に係るテストメッセージの作成及び送信処理の他の例を示すフローチャートである。なお、図14A及び図14BのステップS504〜ステップS506、ステップS508〜ステップS509、ステップS512〜ステップS520、ステップS1104〜ステップS1111は、図11A又は図11Bと同様であるため、その説明を省略する。
まず、ファジングテスト処理部110のUI制御部111は、例えば図15に示すテスト開始画面G400を表示する(ステップS1401)。図15は、本実施形態に係るテスト開始画面G400の他の例を示す図である。なお、テスト開始画面G400は、例えば、ファジングテストプログラム100が起動されることにより表示される。
図15に示すテスト開始画面G400には、テストメッセージを作成するためのルールの選択欄G410と、各ルールで作成するテストメッセージ数の入力欄G420とが含まれる。ルールとは、テストメッセージを作成するために予め決められた作成方法のことである。ルールとしては、例えば、「完全ランダム」、「正常メッセージから所定の長さをファズデータに変更」、「正常メッセージの所定の項目をファズデータに変更」等が挙げられる。
ルール「完全ランダム」とは、例えば、任意の長さのファズデータを作成し、任意の位置に当該ファズデータが含まれ、かつ、任意の長さのテストメッセージを作成する方法のことである。ルール「正常メッセージから所定の長さをファズデータに変更」とは、例えば、所定の長さのファズデータを作成し、正常メッセージの任意の位置に当該ファズデータが含まれるテストメッセージを作成する方法のことである。ルール「正常メッセージの所定の項目をファズデータに変更」とは、例えば、所定の項目と同一の長さのファズデータを作成し、正常メッセージの当該項目の位置に当該ファズデータが含まれるテストメッセージを作成する方法のことである。なお、以降では、選択欄G410から選択されたルールが含まれる集合を「ルール集合」とも表す。
ユーザは、ルールを選択欄G410から選択すると共に、各ルールで作成するテストメッセージ数を入力欄G420に指定する。また、ユーザは、想定初期エラー発生率を入力欄G120に指定する。そして、テスト実行ボタンG130を押下することで、ユーザは、テスト開始操作を行うことができる。以降では、ルール1及びルール3が含まれるルール集合と、各ルールのメッセージ数Lと、想定初期エラー発生率pとが指定された上で、テスト開始操作が行われたものとする。
なお、図15に示すテスト開始画面G400では、ルール集合に含まれる全てのルールに対して共通のメッセージ数Lを指定する場合を示しているが、これに限られない。メッセージ数は、ルール集合に含まれるルール毎に指定されても良い。
次に、ファジングテスト処理部110のUI制御部111は、ルール集合と、各ルールのメッセージ数Lと、サブセット数Sと、想定初期エラー発生率pとが指定されたテスト開始操作の入力を受け付ける(ステップS1402)。
次に、ファジングテスト処理部110は、ルール集合に含まれるルールの中から、未選択のルールを1つ選択する(ステップS1403)。
次に、ファジングテスト処理部110のメッセージ作成部115は、選択されたルールに基づいて、L個のテストメッセージが含まれるメッセージ集合を作成する(ステップS1404)。なお、本実施形態では、メッセージ数Lはユーザにより指定されるものとしたが、これに限られず、例えば、メッセージ数Lは予め決められていても良い。
例えば、上記のステップS1404で選択されたルールが「完全ランダム」である場合、メッセージ作成部115は、例えば、任意の長さのL個のファズデータを作成する。そして、メッセージ作成部115は、任意の位置にこれらのファズデータが含まれ、任意の長さのL個のテストメッセージを作成する。
また、例えば、上記のステップS1404で選択されたルールが「正常メッセージから所定の長さをファズデータに変更」である場合、メッセージ作成部115は、例えば、所定の長さのL個のファズデータを作成する。そして、メッセージ作成部115は、L個の正常メッセージの任意の位置にこれらのファズデータがそれぞれ含まれるテストメッセージを作成する。
また、例えば、上記のステップS1404で選択されたルールが「正常メッセージの所定の項目をファズデータに変更」である場合、メッセージ作成部115は、例えば、所定の項目と同一の長さのL個のファズデータを作成する。そして、メッセージ作成部115は、L個の正常メッセージの当該項目の位置にこれらのファズデータがそれぞれ含まれるテストメッセージを作成する。
これにより、上記のステップS1404で選択されたルールに応じたテストメッセージが含まれるメッセージ集合が作成される。
ステップS1111において、未選択のサブセットがあると判定されなかった場合、ファジングテスト処理部110は、未選択のルールがルール集合にあるか否かを判定する(ステップS1405)。
ステップS1405において、未選択のルールがあると判定されなかった場合、ファジングテスト処理部110は、処理を終了する。すなわち、ファジングテスト処理部110は、ファジングを終了する。
一方で、ステップS1405において、未選択のルールがルール集合にあると判定された場合、ファジングテスト処理部110は、ステップS1403に戻る。これにより、ステップS1403において、ルール集合の中から、未選択のルールが選択され、ステップS1404以降の処理が実行される。
以上のように、本実施形態に係るファジングテスト装置10は、ユーザにより指定されたルール毎にメッセージ集合を作成することができる。これにより、本実施形態に係るファジングテスト装置10では、同一のルールに基づいて作成されたテストメッセージが含まれるサブセットVからメッセージ時間t=t と、メッセージ時間t=t とが算出される。
これにより、本実施形態に係るファジングテスト装置10では、メッセージ時間t及びtに生じる誤差の更なる低減が期待できる。また、本実施形態に係るファジングテスト装置10では、ルール毎にメッセージ集合を作成することで、例えば、全てのルールを用いてメッセージ集合を作成する場合と比べて、必要な記憶領域やテストメッセージのソートに必要な計算量等を削減することもできる。
<従来技術との比較>
ここで、本実施形態に係るファジングと、従来技術を用いたファジングとにおける有効なテストメッセージ数の比較について、図16及び図17を参照しながら説明する。図16及び図17は、単位時間あたりの有効なテストメッセージ数の比較例を説明する図である。
図16は、単位時間あたりに10個のメッセージを送受信することができる場合における「KeepAlive方式によるファジング」と、「全てのテストメッセージをQoS=1にする方式によるファジング」と、「本実施形態に係るファジング」との比較例である。
図16(a)に示すように、KeepAlive方式によるファジングでは、単位時間内に、テストメッセージ1(QoS=0)〜テストメッセージ10(QoS=1)がファジングテスト装置10からテスト対象装置20に送信される。
このとき、例えば、テストメッセージ3(QoS=0)でエラーが発生した場合、テストメッセージ4(QoS=0)〜テストメッセージ10(QoS=0)は、テスト対象装置20でテストされないため、無駄なテストメッセージとなる。したがって、この場合、有効なテストメッセージ数は「3」となる。
図16(b)に示すように、全てのテストメッセージをQoS=1にする方式によるファジングでは、単位時間内に、テストメッセージ1(QoS=1)〜テストメッセージ5(QoS=1)がファジングテスト装置10からテスト対象装置20に送信される。
このとき、例えば、上記と同様にテストメッセージ3(QoS=0)でエラーが発生したとしても、テストメッセージ4(QoS=1)〜テストメッセージ5(QoS=1)は、テスト対象装置20の再起動後に送信されるため、有効なテストメッセージとなる。したがって、この場合、有効なテストメッセージ数は「5」となる。
図16(c)に示すように、本実施形態に係るファジングでは、例えば、メッセージ群のメッセージ数を「4」とした場合、単位時間内に、2個のメッセージ群がファジングテスト装置10からテスト対象装置20に送信される。すなわち、テストメッセージ1(QoS=0)〜テストメッセージ3(QoS=0)と、テストメッセージ4(QoS=1)と、テストメッセージ5(QoS=0)〜テストメッセージ7(QoS=0)と、テストメッセージ8(QoS=1)とが送信される。
このとき、例えば、上記と同様にテストメッセージ3(QoS=0)でエラーが発生した場合、テストメッセージ4(QoS=1)は、テスト対象装置20でテストされないため、無駄なメッセージとなる。一方で、テストメッセージ5(QoS=0)〜テストメッセージ7(QoS=0)と、テストメッセージ8(QoS=1)とは、テスト対象装置20の再起動後に送信されるため、有効なテストメッセージとなる。したがって、この場合、有効なテストメッセージ数は「7」となる。
このように、本実施形態に係るファジングでは、従来技術を用いたファジングと比較して、単位時間あたりの有効なテストメッセージ数が増加するため、効率的なファジングテストを行うことができるようになる。
なお、図16では、一例として、テストメッセージ3でエラーが発生する場合について説明した。本実施形態に係るファジングでは、いずれのテストメッセージでエラーが発生する場合であっても、エラー発生率に応じて、メッセージ群のメッセージ数を動的に更新することで、従来技術を用いたファジングによりも有効なメッセージ数を増加させることができる。
図17は、以下の前提条件の下で、1秒経過時点における有効なメッセージ数の比較例である。
・テストメッセージ(QoS=0)のメッセージ時間t:0.00001秒
・テストメッセージ(QoS=1)のメッセージ時間t:0.00010秒
・想定初期エラー発生率p:0.001
このとき、図17に示すように、100テストメッセージ毎に1回エラーが発生する場合、1000テストメッセージ毎に1回エラーが発生する場合、10000メッセージ毎に1回エラーが発生する場合のいずれでも有効なメッセージ数を増加させることができる。したがって、本実施形態に係るファジングでは、従来技術を用いたファジングと比較して、単位時間あたりの有効なテストメッセージを増加させることができ、効率的なファジングを行うことができるようになる。
以上、本発明の実施形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
ファジングによるテスト対象装置と接続されるファジングテスト装置であって、
前記テスト対象装置に送信したファズメッセージに対するエラー発生率を算出する第1の算出部と、
算出した前記エラー発生率に応じて、前記テスト対象装置に送信する死活確認メッセージの送信比率を決定する決定部と、
決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとを前記テスト対象装置に送信する送信部と、
を有するファジングテスト装置。
(付記2)
前記ファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間と算出する第2の算出部を有し、
前記決定部は、
前記エラー発生率と、前記第1の時間と、前記第2の時間とに応じて、前記送信比率を決定する、ことを特徴とする付記1に記載のファジングテスト装置。
(付記3)
送信した前記死活確認メッセージに対する応答を前記第2の時間以内に受信しなかった場合、前記テスト対象装置を再起動させるための指示を該テスト対象装置に送信する再起動指示部を有する、ことを特徴とする付記2に記載のファジングテスト装置。
(付記4)
ファズデータが含まれる複数のメッセージを作成するメッセージ作成部と、
作成した前記複数のメッセージを、メッセージ長に応じて、複数の集合に分割する分割部とを有し、
前記第2の算出部は、
前記集合毎に、前記第1の時間と、前記第2の時間とを算出する、ことを特徴とする付記2又は3に記載のファジングテスト装置。
(付記5)
前記集合に含まれるメッセージのメッセージ長の最大又は平均をメッセージ長とする計測メッセージを作成する計測メッセージ作成部を有し、
前記第2の算出部は、
前記集合毎に、前記計測メッセージから作成されたファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記計測メッセージから作成された死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間とを算出する、ことを特徴とする付記4に記載のファジングテスト装置。
(付記6)
前記メッセージ作成部は、
予め決められたルール毎に、該ルールに基づいて前記複数のメッセージを作成する、ことを特徴とする付記4又は5に記載のファジングテスト装置。
(付記7)
前記ファズメッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに0が設定されたメッセージであり、
前記死活確認メッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに1が設定されたメッセージである、ことを特徴とする付記1乃至6の何れか一項に記載のファジングテスト装置。
(付記8)
ファジングによるテスト対象装置と接続されるコンピュータが、
前記テスト対象装置に送信したファズメッセージに対するエラー発生率を算出し、
算出した前記エラー発生率に応じて、前記テスト対象装置に送信する死活確認メッセージの送信比率を決定し、
決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとを前記テスト対象装置に送信する、
処理を実行するファジングテスト方法。
(付記9)
前記コンピュータが、
前記ファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間と算出する処理を実行し、
前記決定する処理は、
前記エラー発生率と、前記第1の時間と、前記第2の時間とに応じて、前記送信比率を決定する、ことを特徴とする付記8に記載のファジングテスト方法。
(付記10)
前記コンピュータが、
送信した前記死活確認メッセージに対する応答を前記第2の時間以内に受信しなかった場合、前記テスト対象装置を再起動させるための指示を該テスト対象装置に送信する、
処理を実行する、ことを特徴とする付記9に記載のファジングテスト方法。
(付記11)
前記コンピュータが、
ファズデータが含まれる複数のメッセージを作成し、
作成した前記複数のメッセージを、メッセージ長に応じて、複数の集合に分割する、
処理を実行し、
前記集合毎に、前記第1の時間と、前記第2の時間とを算出する、ことを特徴とする付記9又は10に記載のファジングテスト方法。
(付記12)
前記コンピュータが、
前記集合に含まれるメッセージのメッセージ長の最大又は平均をメッセージ長とする計測メッセージを作成する、
処理を実行し、
前記集合毎に、前記計測メッセージから作成されたファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記計測メッセージから作成された死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間とを算出する、ことを特徴とする付記11に記載のファジングテスト方法。
(付記13)
予め決められたルール毎に、該ルールに基づいて前記複数のメッセージを作成する、ことを特徴とする付記11又は12に記載のファジングテスト方法。
(付記14)
前記ファズメッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに0が設定されたメッセージであり、
前記死活確認メッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに1が設定されたメッセージである、ことを特徴とする付記8乃至13の何れか一項に記載のファジングテスト方法。
(付記15)
ファジングによるテスト対象装置と接続されるコンピュータに、
前記テスト対象装置に送信したファズメッセージに対するエラー発生率を算出し、
算出した前記エラー発生率に応じて、前記テスト対象装置に送信する死活確認メッセージの送信比率を決定し、
決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとを前記テスト対象装置に送信する、
処理を実行させるファジングテストプログラム。
(付記16)
前記コンピュータに、
前記ファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間と算出する処理を実行させ、
前記決定する処理は、
前記エラー発生率と、前記第1の時間と、前記第2の時間とに応じて、前記送信比率を決定する、ことを特徴とする付記15に記載のファジングテストプログラム。
(付記17)
前記コンピュータに、
送信した前記死活確認メッセージに対する応答を前記第2の時間以内に受信しなかった場合、前記テスト対象装置を再起動させるための指示を該テスト対象装置に送信する、
処理を実行させる、ことを特徴とする付記16に記載のファジングテストプログラム。
(付記18)
前記コンピュータに、
ファズデータが含まれる複数のメッセージを作成し、
作成した前記複数のメッセージを、メッセージ長に応じて、複数の集合に分割する、
処理を実行させ、
前記集合毎に、前記第1の時間と、前記第2の時間とを算出する、ことを特徴とする付記16又は17に記載のファジングテストプログラム。
(付記19)
前記コンピュータに、
前記集合に含まれるメッセージのメッセージ長の最大又は平均をメッセージ長とする計測メッセージを作成する、
処理を実行させ、
前記集合毎に、前記計測メッセージから作成されたファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記計測メッセージから作成された死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間とを算出する、ことを特徴とする付記18に記載のファジングテストプログラム。
(付記20)
予め決められたルール毎に、該ルールに基づいて前記複数のメッセージを作成する、ことを特徴とする付記18又は19に記載のファジングテストプログラム。
(付記21)
前記ファズメッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに0が設定されたメッセージであり、
前記死活確認メッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに1が設定されたメッセージである、ことを特徴とする付記15乃至20の何れか一項に記載のファジングテストプログラム。
1 ファジングテストシステム
10 ファジングテスト装置
20 テスト対象装置
100 ファジングテストプログラム
110 ファジングテスト処理部
111 UI制御部
112 メッセージ時間算出部
113 エラー発生率算出部
114 メッセージ数算出部
115 メッセージ作成部
116 メッセージ送信部
117 メッセージ受信部
118 再起動指示部
119 エラー有無設定部
120 記憶部
200 テスト対象プログラム

Claims (9)

  1. ファジングによるテスト対象装置と接続されるファジングテスト装置であって、
    前記テスト対象装置に送信したファズメッセージに対するエラー発生率を算出する第1の算出部と、
    算出した前記エラー発生率に応じて、前記テスト対象装置に送信する死活確認メッセージの送信比率を決定する決定部と、
    決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとを前記テスト対象装置に送信する送信部と、
    を有するファジングテスト装置。
  2. 前記ファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間と算出する第2の算出部を有し、
    前記決定部は、
    前記エラー発生率と、前記第1の時間と、前記第2の時間とに応じて、前記送信比率を決定する、ことを特徴とする請求項1に記載のファジングテスト装置。
  3. 送信した前記死活確認メッセージに対する応答を前記第2の時間以内に受信しなかった場合、前記テスト対象装置を再起動させるための指示を該テスト対象装置に送信する再起動指示部を有する、ことを特徴とする請求項2に記載のファジングテスト装置。
  4. ファズデータが含まれる複数のメッセージを作成するメッセージ作成部と、
    作成した前記複数のメッセージを、メッセージ長に応じて、複数の集合に分割する分割部とを有し、
    前記第2の算出部は、
    前記集合毎に、前記第1の時間と、前記第2の時間とを算出する、ことを特徴とする請求項2又は3に記載のファジングテスト装置。
  5. 前記集合に含まれるメッセージのメッセージ長の最大又は平均をメッセージ長とする計測メッセージを作成する計測メッセージ作成部を有し、
    前記第2の算出部は、
    前記集合毎に、前記計測メッセージから作成されたファズメッセージを前記テスト対象装置が受信するまでの第1の時間と、前記計測メッセージから作成された死活確認メッセージに対する応答を前記ファジングテスト装置が受信するまでの第2の時間とを算出する、ことを特徴とする請求項4に記載のファジングテスト装置。
  6. 前記メッセージ作成部は、
    予め決められたルール毎に、該ルールに基づいて前記複数のメッセージを作成する、ことを特徴とする請求項4又は5に記載のファジングテスト装置。
  7. 前記ファズメッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに0が設定されたメッセージであり、
    前記死活確認メッセージは、MQTTプロトコルで規定されたメッセージであって、ファズデータが含まれ、かつ、QoSに1が設定されたメッセージである、ことを特徴とする請求項1乃至5の何れか一項に記載のファジングテスト装置。
  8. ファジングによるテスト対象装置と接続されるコンピュータが、
    前記テスト対象装置に送信したファズメッセージに対するエラー発生率を算出し、
    算出した前記エラー発生率に応じて、前記テスト対象装置に送信する死活確認メッセージの送信比率を決定し、
    決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとを前記テスト対象装置に送信する、
    処理を実行するファジングテスト方法。
  9. ファジングによるテスト対象装置と接続されるコンピュータに、
    前記テスト対象装置に送信したファズメッセージに対するエラー発生率を算出し、
    算出した前記エラー発生率に応じて、前記テスト対象装置に送信する死活確認メッセージの送信比率を決定し、
    決定した送信比率に応じて、ファズメッセージと、死活確認メッセージとを前記テスト対象装置に送信する、
    処理を実行させるファジングテストプログラム。
JP2018005815A 2017-05-16 2018-01-17 ファジングテスト装置、ファジングテスト方法及びファジングテストプログラム Active JP7027903B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017097315 2017-05-16
JP2017097315 2017-05-16

Publications (2)

Publication Number Publication Date
JP2018195288A true JP2018195288A (ja) 2018-12-06
JP7027903B2 JP7027903B2 (ja) 2022-03-02

Family

ID=64571811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018005815A Active JP7027903B2 (ja) 2017-05-16 2018-01-17 ファジングテスト装置、ファジングテスト方法及びファジングテストプログラム

Country Status (1)

Country Link
JP (1) JP7027903B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102209676B1 (ko) 2020-07-20 2021-01-28 세종대학교산학협력단 펌웨어 퍼징 장치 및 방법
KR20220156355A (ko) * 2021-05-18 2022-11-25 한국전자통신연구원 비휘발성 메모리 공격 취약점 탐지 장치 및 방법
KR20240011475A (ko) * 2022-07-19 2024-01-26 세종대학교산학협력단 적응형 에뮬레이션 기법을 이용한 IoT 펌웨어 취약점 점검 방법 및 장치
JP7571925B1 (ja) * 2024-04-24 2024-10-23 三菱電機株式会社 ファジングテスト装置、ファジングテスト方法、及び、ファジングテストプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005354338A (ja) * 2004-06-10 2005-12-22 Matsushita Electric Ind Co Ltd ネットワーク脆弱性検査装置及び方法
WO2014013674A1 (ja) * 2012-07-17 2014-01-23 日本電気株式会社 通信維持システム、端末装置、通信維持方法、および、接続維持プログラム
WO2015011827A1 (ja) * 2013-07-26 2015-01-29 富士通株式会社 情報処理装置、フィルタリングシステム、フィルタリング方法、及びフィルタリングプログラム
JP2017058838A (ja) * 2015-09-15 2017-03-23 株式会社東芝 情報処理装置、試験システム、情報処理方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005354338A (ja) * 2004-06-10 2005-12-22 Matsushita Electric Ind Co Ltd ネットワーク脆弱性検査装置及び方法
WO2014013674A1 (ja) * 2012-07-17 2014-01-23 日本電気株式会社 通信維持システム、端末装置、通信維持方法、および、接続維持プログラム
WO2015011827A1 (ja) * 2013-07-26 2015-01-29 富士通株式会社 情報処理装置、フィルタリングシステム、フィルタリング方法、及びフィルタリングプログラム
JP2017058838A (ja) * 2015-09-15 2017-03-23 株式会社東芝 情報処理装置、試験システム、情報処理方法およびプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
橘 拓馬 TAKUMA TACHIBANA: "データ量と通信品質を考慮したIoT向け優先度制御手法の実装と評価 Implementation and Evaluation of P", マルチメディア,分散,協調とモバイル(DICOMO2016)シンポジウム論文集 情報処理学会シンポジ, vol. 第2016巻, JPN6022001159, JP, ISSN: 0004683898 *
若山 史郎 SHIROU WAKAYAMA: "IoT時代のプロトコル [速習]MQTT", WEB+DB PRESS VOL.88, vol. 第88巻, JPN6022001158, JP, ISSN: 0004683899 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102209676B1 (ko) 2020-07-20 2021-01-28 세종대학교산학협력단 펌웨어 퍼징 장치 및 방법
KR20220156355A (ko) * 2021-05-18 2022-11-25 한국전자통신연구원 비휘발성 메모리 공격 취약점 탐지 장치 및 방법
KR102682746B1 (ko) * 2021-05-18 2024-07-12 한국전자통신연구원 비휘발성 메모리 공격 취약점 탐지 장치 및 방법
KR20240011475A (ko) * 2022-07-19 2024-01-26 세종대학교산학협력단 적응형 에뮬레이션 기법을 이용한 IoT 펌웨어 취약점 점검 방법 및 장치
KR102759388B1 (ko) * 2022-07-19 2025-01-22 세종대학교산학협력단 적응형 에뮬레이션 기법을 이용한 IoT 펌웨어 취약점 점검 방법 및 장치
JP7571925B1 (ja) * 2024-04-24 2024-10-23 三菱電機株式会社 ファジングテスト装置、ファジングテスト方法、及び、ファジングテストプログラム
WO2025224853A1 (ja) * 2024-04-24 2025-10-30 三菱電機株式会社 ファジングテスト装置、ファジングテスト方法、及び、ファジングテストプログラム

Also Published As

Publication number Publication date
JP7027903B2 (ja) 2022-03-02

Similar Documents

Publication Publication Date Title
US11693673B2 (en) Providing user interface (UI) elements having scrollable content in virtual machine sessions at reduced latency and related methods
CN106844090B (zh) 基于压缩比历史的数据复制
JP7027903B2 (ja) ファジングテスト装置、ファジングテスト方法及びファジングテストプログラム
US11693672B2 (en) Providing user interface (UI) elements in virtual machine sessions at reduced latency
CN107425942B (zh) 数据发送、转发和传输的方法及装置
CN111708653B (zh) 内存故障处理方法、装置、电子设备和存储介质
US11693674B2 (en) Providing user interface (UI) elements having an ordered hierarchy of graphical control elements in virtual machine sessions at reduced latency and related methods
CN110737560B (zh) 一种服务状态检测方法、装置、电子设备和介质
US11320981B2 (en) Friendly finite scrolling for theme data pagination
US9262105B2 (en) Printing system, control method for information processing apparatus, and non-transitory computer-readable medium for transmitting setting information
KR102339747B1 (ko) 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법
CN113377277B (zh) 管理存储器的方法、设备和计算机程序产品
JP2013131141A (ja) プロジェクタ、プロジェクタの制御方法及びプロジェクタの制御プログラム
JP5602958B2 (ja) ソーシャル・メデイアにおけるトレンドを検出する方法、コンピュータ・プログラム、コンピュータ。
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
US12045584B2 (en) Undeployed topology visualization for improving software application development
JP2017161989A (ja) 送信制御プログラム、方法及び端末装置
CN114036392A (zh) 页面处理方法、训练方法、装置、电子设备以及存储介质
US20240430300A1 (en) Communication apparatus, image generation system, control method thereof, and storage medium
KR20150076626A (ko) 사용자가 개발한 api를 이용하여 어플리케이션을 제작하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
CN111857488B (zh) 小程序中菜单弹出的方法、装置、电子设备和存储介质
US9661054B2 (en) Systems and methods to configure applications
JP6478060B2 (ja) 印刷ジョブ送信用プログラムおよび印刷ジョブ送信装置
US20210303301A1 (en) Program Execution Assistance Apparatus and Program Execution Assistance Method
JP2025160891A (ja) コンピュータ実装方法、システム、コンピュータプログラム、コンピュータ実装方法(自然言語を使用したユーザインタフェース自動化)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211021

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: 20220118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220131

R150 Certificate of patent or registration of utility model

Ref document number: 7027903

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150