JP5327019B2 - ソフトウェア自動試験方式 - Google Patents
ソフトウェア自動試験方式 Download PDFInfo
- Publication number
- JP5327019B2 JP5327019B2 JP2009268682A JP2009268682A JP5327019B2 JP 5327019 B2 JP5327019 B2 JP 5327019B2 JP 2009268682 A JP2009268682 A JP 2009268682A JP 2009268682 A JP2009268682 A JP 2009268682A JP 5327019 B2 JP5327019 B2 JP 5327019B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- output
- output data
- control software
- simulated
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
更に詳しくは、Windows(登録商標)などのオペレーションシステム(以降、「O/S」と略す。)上で動作する制御ソフトウェアの試験を、これに接続される周辺機器を模擬したシミュレータを用いて、試験コマンドの列で記述した試験シナリオを解釈して自動的に実行するソフトウェア自動試験方式に関する。
このような試験には、ソフトウェアの各モジュールを部分的に結合したものが意図どおり協調動作するか検査する結合テスト、製品の体をしたものに対して行うシステムテスト、実装した機能が意図どおりに動作するか検査する機能テスト、プログラムを変更した際にその変更によって予想外の影響が現れていないか一度合格したテストをすべてやり直し合格するか検査する回帰テストなどが有る。
また、周辺機器への出力データや出力タイミングの検査は、テスト対象プログラム又はシミュレータのログを試験実施者が目視で解析することによって行なわれてきた。このようにソフトウェア結合テストを実施するだけでも多大な労力を要するため、それまでに合格したテストをすべて再度検査する回帰テストを実施することは更に困難であったため、ソフトウェア試験の自動化が求められていた。
特許文献1では、試験対象として指示された試験シナリオを試験シナリオ群から検索し、検索した試験コマンド中に指定された周辺機器を特定して、周辺機器毎に設けられた装置制御部に当該周辺機器用試験コマンドを供給する。装置制御部は当該試験コマンドに対応する装置コマンドを検索して受取り、装置コマンドにより周辺機器を動作させる。この結果、試験シナリオを有するワークステーションからの周辺機器のソフトウェア的な制御を実現させている。
特許文献3は、入力機器と制御対象の出力機器とが接続されるマイコンに組み込まれた制御ソフトウェアを自動的にテストする装置である。これは装置本体とマイコン搭載部を備えており、マイコン搭載部には、入力・出力機器の動作を模擬するシミュレータを、光ループネットワークで接続する自動テスト装置を提案している。
前記制御ソフトウェアに対する前記周辺機器の入出力処理を模擬する模擬I/F用シナリオと、
前記制御ソフトウェアを起動し、前記テスト実行プログラム用シナリオに記述されたアクションに従い、前記制御ソフトウェアのテストを逐次実行するテスト実行プログラムと、
前記模擬I/F用シナリオに従い前記制御ソフトウェアとの間での前記周辺機器の入出力インターフェイス動作を模擬する模擬I/Fとを備え、
前記テスト実行プログラムは、前記制御ソフトウェアを起動する第1のアクションと、その後、前記制御ソフトウェアから出力された第1の出力データと前記模擬I/Fが前記第1の出力データを受信した第1の受信時刻とからなる第2の出力データのチェックを実施する、前記テスト実行プログラム用シナリオに記述された第2のアクションを、前記制御ソフトウェアから出力された前記第1の出力データ、及び、前記第2の出力データに対し実行し、前記第1の出力データの出力後に、前記制御ソフトウェアから出力される第3の出力データと前記模擬I/Fが前記第3の出力データを受信した第2の受信時刻とからなる第4の出力データのチェックを実施する、前記テスト実行プログラム用シナリオに記述された第3のアクションを、前記制御ソフトウェアから出力された前記第3の出力データ、及び、前記第4の出力データに対し実行するものであって、
前記制御ソフトウェアが出力した前記第1の出力データは、前記模擬I/Fによって前記第1の受信時刻及び前記第1の出力データとからなる前記第2の出力データとなり、前記第2のアクションによりそれぞれ前記第1の出力データのチェック、及び、前記第1の出力データ及び前記第1の受信時刻とからなる前記第2の出力データのうち、前記第1の受信時刻を前記第3アクションでチェックするために、前記第2の出力データを前記模擬I/Fからメッセージキューに出力し、前記制御ソフトウェアが出力した前記第3の出力データは、前記模擬I/Fによって前記第2の受信時刻及び前記第3の出力データとからなる前記第4の出力データとなり、第3のアクションによりそれぞれ前記第3の出力データのチェック、及び、前記第3の出力データ及び前記第2の受信時刻とからなる前記第4の出力データのうち、前記第2の受信時刻を前記第3アクションでチェックするために、前記第4の出力データを前記模擬I/Fからメッセージキューに出力し、
前記模擬I/Fは、受信した前記第1の出力データに前記第1の受信時刻を付加して前記第2の出力データとし、及び、受信した前記第3の出力データに前記第2の受信時刻を付加して前記第4の出力データとし、
前記テスト実行プログラムは、メッセージキューに出力された前記第2の出力データのうち、前記第1の出力データが、前記第2のアクションに記述されたデータと一致しているか判定し、一致している場合に、メッセージキューに出力された前記第4の出力データのうち、前記第3の出力データが、前記第3のアクションに記述されたデータと一致しているか判定し、一致している場合に前記第1の受信時刻と前記第2の受信時刻との時間間隔を計算して、前記第1の受信時刻及び前記第2の受信時刻の時間間隔がテスト実行プログラム用シナリオに記述された規定時間内であるかを判定し、
前記制御ソフトウェアの試験を自動的に実行することを特徴とするものである。
図1は、本発明を実施するための実施の形態1に係るソフトウェア自動試験方式の構成を表すブロック図である。また図8には、実施の形態1のテスト対象であるアプリケーション(制御ソフトウェア)を用いたシステムのブロック図を示す。本実施の形態では、図8に示す制御ソフトウェアをテスト対象のプログラムとし、制御ソフトウェアと接続している周辺機器をシミュレートすることにより自動試験を実行する。
3は試験シナリオ作成プログラム2を用いて作成され自動的に試験を実行する手順を記述したテスト実行プログラム用シナリオ、4は試験シナリオ作成プログラム2を用いて作成され模擬インターフェイス(以降「模擬I/F」と略す。)の応答動作を記述した模擬I/F用シナリオである。
一般にメッセージキュー9は、複数のアプリケーション間の通信に使われ、送信側と受信側がメッセージキューに同時にやり取りしなくともよいことを意味する。キューに置かれるメッセージは、受信側がそれを取り出すまで格納されたままとなる。
10は、テスト対象プログラム7から模擬I/F8へ送信される出力データ、11は、模擬I/F8から返信される応答データである。
図9は、テスト対象である制御ソフトウェア806の画面例である。901で示すメイン画面に、902は実行ボタン、903は結果を表示するテキストボックス、904はSG802の出力状態を表示するテキストボックス、905で示す終了ボタンが配置されている。
制御ソフトウェア806はSG802への出力ON要求951送信から10秒後に自動的に、SG802へ出力OFF要求954を送信する。また、ユーザー804が終了ボタン905を押下すると、制御ソフトウェア806は制御結果をファイルに出力957し、プログラムを終了する。
例えば、図9に示す実行ボタン902のIDは、ButtonExecである。このID1102は、図2に示すテスト実行プログラム用シナリオの画面操作、画面判定のパラメータとして用いられる。
図12は、テスト対象である制御ソフトウェア806と周辺機器の一例であるSG802とのインタフェースデータ定義である。1103に示すメッセージは、これに対応するインターフェイスデータ1104の文字列である。例えば、図10の出力ON要求951メッセージの実際の伝文は、「RF Start」という文字列である。
例えば、図10に示すパルス出力ON要求952メッセージの実際の出力は、アドレス0100hへのデータ0200hの書き込みである。
図14は、テスト対象である制御ソフトウェア806が出力する制御結果ファイルの内容である。ファイル名は、kekka.txt、1107にはそのフォーマットを示す。
ステップS101(以降「S101」という)にて、テスト実行者6が、テスト実行プログラム5にテスト開始の起動をかける。S102で、テスト実行プログラム5は、テスト対象プログラム7を起動し、S103でテスト実行プログラム用シナリオ3を読み込み、アクションを順番に実行する。図2のテスト実行プログラム用シナリオ3の場合、
S104で、1番目に図11に示すButton Exceという実行ボタンを自動でクリックする。次に2000msウェイトする。
模擬I/F8は、S105で出力データ10を受信すると、図4に示すように受信時刻A:401を付加して、メッセージキュー9に入れる。
S106でメッセージキュー9に入れられたデータは、テスト実行プログラム5から取り出されるのを待つ。
S107で、テスト実行プログラム5は、図2の3番目のアクションである出力データチェック206実行時、メッセージキュー9からデータを取り出し、出力データが正解データ207(この場合は、「RF Start」)と一致することをチェックする。チェックした結果がYesの場合はS120で「判定OK」を記録し、次のステップへ進む。チェックした結果がNoの場合は、S121で〔1〕に示すように「判定NG」を記録する。また、取り出したメッセージキュー9のデータのうち受信データ402は破棄するが、受信時刻A:401は、後に実行される7番目のアクションにおいて、受信タイミング208のチェックに使用するため、保持される。
次にS109で、図2の5番目のアクションである画面判定を実行し、結果表示テキストボックス(IDはTextBoxKekka)の表示が「OK」であるかをチェックする。
S110で、6番目のアクションである画面判定を実行し、SG出力状態テキストボックス(IDはTextBoxSts)の表示が「出力中」であるかをチェックする。
次に送信タイミングのチェックを行う。図10に示すシーケンスをチェックする場合には、「RF Stop」は「RF Start」の10秒後に送信されているはずである。
メッセージキュー9から取り出したデータに付与されている受信時刻Bと、3番目のアクションで保持した受信時刻Aとの時間間隔を求める。時間間隔が受信タイミング208の範囲(この場合「No3から10000±100ms後」)であれば合格とする。
S114で、8番目のアクションとして、終了ボタンを自動クリックする。このアクションにより、テスト対象プログラム7は終了する。
S115で、9番目のアクションであるファイルチェックを実施する。図10に示すシーケンスの場合には、制御結果が図14の制御結果ファイル名内容でファイルに出力されているはずである。あらかじめ、ref.txtという名称で、正解のファイルを生成しておき、テスト対象プログラムから出力されたファイルkekka.txtとref.txtが同一であるかを判定する。
模擬I/F8は、S201で出力データ10を受信した時、S202で模擬I/F用シナリオ4の応答設定501の受信データ503に出力データ10と一致するものが有るか調べる。無ければ異常を記録する。
また、出力開始後の模擬I/F用シナリオ4の応答は、出力状態要求(STS?)に対し「出力中」(RF ON)を返すように、応答変更設定として、出力ON要求(RF Start)を受信したら、以後の出力状態要求(STS?)に対し、「出力中」(RF ON)を返すようにする。
レジスタ応答変更設定702は変更トリガ受信データのアドレス706及びデータ707、出力データのアドレス708及び応答データ709、遅延時間710から構成される。
図7に示す模擬I/Fシナリオ例は、図10シーケンスにおける「ステータス読込み958」を模擬する場合に対応している。テスト対象制御ソフトウェアがステータス読込みとしてレジスタアドレス0001hを読込んだ場合、遅延時間500ms待ってから、図13のインターフェイス定義No2に示す、出力データ0002h(パルス出力OFF)を返す。
図7に示す模擬I/Fシナリオ例は、図10シーケンスにおける「ステータス読込み959」を模擬する場合に対応している。テスト対象制御ソフトウェアから、パルス出力ON要求としてアドレス0100hにデータ0200hが書き込みされたので、これ以後、テスト対象制御ソフトウェアがステータス読込みとして、レジスタアドレス0001hを読込んだ時は、遅延時間30ms待ってから、図13のインターフェイス定義No2に示す、出力データ0003h(パルス出力ON)を返す。
3 テスト実行プログラム用シナリオ、4 模擬I/F用シナリオ、
5 テスト実行プログラム、6 テスト実行者、7 テスト対象プログラム、
8 模擬I/F、9 メッセージキュー、10 出力データ、11 応答データ、
501 応答設定、502 応答変更設定、503 受信データ、
504 応答データ、505 遅延時間、506 変更トリガ受信データ、
507 応答変更設定後の受信データ、508 応答変更設定後の応答データ、
509 応答変更設定後の遅延時間、
701 レジスタ応答設定、702 レジスタ応答変更設定、703 読込みアドレス、
704 応答データ、705 遅延時間、706 変更トリガ受信データアドレス、
707 変更トリガ受信データ、708 出力データアドレス、709 応答データ、
710 遅延時間、
801 PC、802 SG(周辺機器)、803 制御ボード、804 ユーザー、
805 PCIカード、806 制御ソフトウェア
Claims (6)
- 周辺機器との入出力機能を有し、試験対象である制御ソフトウェアの試験手順を、前記制御ソフトウェアの動作に対応する複数のアクションにより時系列的に記述したテスト実行プログラム用シナリオと、
前記制御ソフトウェアに対する前記周辺機器の入出力処理を模擬する模擬I/F用シナリオと、
前記制御ソフトウェアを起動し、前記テスト実行プログラム用シナリオに記述されたアクションに従い、前記制御ソフトウェアのテストを逐次実行するテスト実行プログラムと、
前記模擬I/F用シナリオに従い前記制御ソフトウェアとの間での前記周辺機器の入出力インターフェイス動作を模擬する模擬I/Fとを備え、
前記テスト実行プログラムは、前記制御ソフトウェアを起動する第1のアクションと、その後、前記制御ソフトウェアから出力された第1の出力データと前記模擬I/Fが前記第1の出力データを受信した第1の受信時刻とからなる第2の出力データのチェックを実施する、前記テスト実行プログラム用シナリオに記述された第2のアクションを、前記制御ソフトウェアから出力された前記第1の出力データ、及び、前記第2の出力データに対し実行し、前記第1の出力データの出力後に、前記制御ソフトウェアから出力される第3の出力データと前記模擬I/Fが前記第3の出力データを受信した第2の受信時刻とからなる第4の出力データのチェックを実施する、前記テスト実行プログラム用シナリオに記述された第3のアクションを、前記制御ソフトウェアから出力された前記第3の出力データ、及び、前記第4の出力データに対し実行するものであって、
前記制御ソフトウェアが出力した前記第1の出力データは、前記模擬I/Fによって前記第1の受信時刻及び前記第1の出力データとからなる前記第2の出力データとなり、前記第2のアクションによりそれぞれ前記第1の出力データのチェック、及び、前記第1の出力データ及び前記第1の受信時刻とからなる前記第2の出力データのうち、前記第1の受信時刻を前記第3アクションでチェックするために、前記第2の出力データを前記模擬I/Fからメッセージキューに出力し、前記制御ソフトウェアが出力した前記第3の出力データは、前記模擬I/Fによって前記第2の受信時刻及び前記第3の出力データとからなる前記第4の出力データとなり、第3のアクションによりそれぞれ前記第3の出力データのチェック、及び、前記第3の出力データ及び前記第2の受信時刻とからなる前記第4の出力データのうち、前記第2の受信時刻を前記第3アクションでチェックするために、前記第4の出力データを前記模擬I/Fからメッセージキューに出力し、
前記模擬I/Fは、受信した前記第1の出力データに前記第1の受信時刻を付加して前記第2の出力データとし、及び、受信した前記第3の出力データに前記第2の受信時刻を付加して前記第4の出力データとし、
前記テスト実行プログラムは、メッセージキューに出力された前記第2の出力データのうち、前記第1の出力データが、前記第2のアクションに記述されたデータと一致しているか判定し、一致している場合に、メッセージキューに出力された前記第4の出力データのうち、前記第3の出力データが、前記第3のアクションに記述されたデータと一致しているか判定し、一致している場合に前記第1の受信時刻と前記第2の受信時刻との時間間隔を計算して、前記第1の受信時刻及び前記第2の受信時刻の時間間隔がテスト実行プログラム用シナリオに記述された規定時間内であるかを判定し、
前記制御ソフトウェアの試験を自動的に実行することを特徴とするソフトウェア自動試験方式。 - 前記模擬I/Fシナリオには、受信データ、応答データ、遅延時間が記述され、
前記模擬I/Fは、
前記制御ソフトウェアから出力され受信した出力データと前記受信データとを照合し、両データが一致する場合には、前記遅延時間の後に前記応答データを前記制御ソフトウェアに返す応答手段を有すること
を特徴とする請求項1に記載のソフトウェア自動試験方式。 - 前記模擬I/Fシナリオには、変更トリガ受信データ、受信データ、応答データ、遅延時間が記述され、
前記模擬I/Fは、
前記制御ソフトウェアから出力され受信した前記出力データと前記変更トリガ受信データとを照合し両データが一致する場合以後は、受信した前記出力データと前記受信データとが一致する場合に前記遅延時間の後に前記応答データを前記制御ソフトウェアに返す応答変更手段を有する
ことを特徴とする請求項1に記載のソフトウェア自動試験方式。 - 前記制御ソフトウェアにより制御される制御ボードのレジスタアドレスへの入出力動作を模擬する前記模擬I/Fシナリオには、レジスタアドレス、応答データ、遅延時間が記述され、
前記模擬I/Fは、前記制御ソフトウェアから前記レジスタアドレスへ読込まれた場合には、前記遅延時間の後に、前記応答データを前記制御ソフトウェアに返すレジスタ応答手段を有する
ことを特徴とする請求項1に記載のソフトウェア自動試験方式。 - 前記制御ソフトウェアにより制御される制御ボードのレジスタアドレスへの入出力動作を模擬する前記模擬I/Fシナリオには、変更トリガ受信データである第1レジスタアドレス、受信データ、第2レジスタアドレス、応答データ、遅延時間が記述され、
前記模擬I/Fは、前記制御ソフトウェアから前記第1レジスタアドレスに前記受信データが書込みされた場合以後は、前記制御ソフトウェアから前記第2レジスタアドレスに読込みを行なった場合に前記応答データを読取り値として返すレジスタ応答変更手段を有する
ことを特徴とする請求項1に記載のソフトウェア自動試験方式。 - 前記テスト実行プログラム用シナリオ及び前記模擬I/F用シナリオを作成・編集するシナリオ作成プログラムを有する
ことを特徴とする請求項1〜請求項5のいずれか一項に記載のソフトウェア自動試験方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009268682A JP5327019B2 (ja) | 2009-11-26 | 2009-11-26 | ソフトウェア自動試験方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009268682A JP5327019B2 (ja) | 2009-11-26 | 2009-11-26 | ソフトウェア自動試験方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011113272A JP2011113272A (ja) | 2011-06-09 |
JP5327019B2 true JP5327019B2 (ja) | 2013-10-30 |
Family
ID=44235564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009268682A Expired - Fee Related JP5327019B2 (ja) | 2009-11-26 | 2009-11-26 | ソフトウェア自動試験方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5327019B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6692278B2 (ja) * | 2016-11-15 | 2020-05-13 | ルネサスエレクトロニクス株式会社 | 演算装置及び仮想開発環境装置 |
KR102082472B1 (ko) * | 2018-07-27 | 2020-02-27 | 한화시스템(주) | 텍스트 기반 시뮬레이터 시스템 |
KR102082473B1 (ko) * | 2019-03-15 | 2020-02-27 | 한화시스템(주) | 시뮬레이터 시스템을 통한 시험대상장비의 테스트 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11149394A (ja) * | 1997-11-17 | 1999-06-02 | Ricoh Co Ltd | 制御ソフトウェア検証方法 |
JP2004021461A (ja) * | 2002-06-14 | 2004-01-22 | Canon Inc | シミュレータ装置 |
JP4909772B2 (ja) * | 2007-03-16 | 2012-04-04 | 株式会社リコー | シミュレーション装置 |
-
2009
- 2009-11-26 JP JP2009268682A patent/JP5327019B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011113272A (ja) | 2011-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112817872B (zh) | 开发测试***及方法 | |
US4696003A (en) | System for testing interactive software | |
KR100618319B1 (ko) | 무선통신단말기의 에러 테스트 방법 | |
CN103580942B (zh) | 一种模拟串口测试方法和装置 | |
CN103345446A (zh) | 一种适用于遥控类产品的自动化测试方法 | |
WO2016115801A1 (zh) | 一种回放用户操作的方法和装置 | |
KR101110241B1 (ko) | 프로그램 테스트 장치 및 프로그램 | |
CN102479152A (zh) | 基于Android平台获取工具自动测试结果的方法及装置 | |
JP5327019B2 (ja) | ソフトウェア自動試験方式 | |
EP3296875B1 (en) | Simulation reproduction device, simulation reproduction method, and simulation reproduction program | |
JPWO2005036402A1 (ja) | テストプログラムデバッグ装置、半導体試験装置、テストプログラムデバッグ方法、及び試験方法 | |
JP2011107866A (ja) | 接続機器シミュレータのシーケンス制御装置、方法、及びプログラム | |
CN110209565A (zh) | 一种元数据模型调试方法及其装置 | |
JP2004003960A (ja) | 重量測定装置を備えたプログラム可能なシステムおよびそのようなシステムをプログラミングする方法、ならびにこの方法を実行するソフトウエア | |
CN115758963A (zh) | 芯片eda仿真中打印信息的处理装置、方法及*** | |
JP2009104490A (ja) | プログラムのテスト装置 | |
CN114327416A (zh) | 应用于开发分支的接口同步方法、装置及电子设备 | |
CN100367233C (zh) | 程序执行控制方式 | |
CN109522205A (zh) | 一种仿真测试的方法、装置、计算机存储介质及终端 | |
CN115935876B (zh) | 一种fpga电路模拟仿真的方法及装置 | |
JP2003177942A (ja) | ソフトウェア単体試験の支援方法及び支援装置 | |
CN114817071B (zh) | 一种联机自动化测试***、方法、装置及可读存储介质 | |
AU2023201696B2 (en) | Method and device for determining coverage in HIL testing, and storage medium | |
Boumiza et al. | Design and development of a user interface to customize web testing scenarios | |
CN103514093B (zh) | 嵌入式***字库测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120508 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121120 |
|
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: 20130625 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130708 |
|
LAPS | Cancellation because of no payment of annual fees |