JP2009237707A - プログラムテスト自動化システム、プログラムテスト自動化方法及びプログラム - Google Patents
プログラムテスト自動化システム、プログラムテスト自動化方法及びプログラム Download PDFInfo
- Publication number
- JP2009237707A JP2009237707A JP2008080523A JP2008080523A JP2009237707A JP 2009237707 A JP2009237707 A JP 2009237707A JP 2008080523 A JP2008080523 A JP 2008080523A JP 2008080523 A JP2008080523 A JP 2008080523A JP 2009237707 A JP2009237707 A JP 2009237707A
- Authority
- JP
- Japan
- Prior art keywords
- program
- subroutine
- test
- instruction
- information
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】テスト対象プログラムあるいは実行環境や他のソフトウエアが自発的に発生させる事象に依存した動作の検証を自動化する。
【解決手段】テスト対象プログラムに対する操作手順を記述したスクリプトを保持する記憶装置200と、該スクリプトに従って操作を自動実行する操作自動実行手段110と、任意個数のプログラムと任意個数のサブルーチンに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、各プログラムに対し、前記ルーチン指定情報に指定されているサブルーチンを結合し、各プログラムにおいて、ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集する注入手段130を含む。
【選択図】図1
【解決手段】テスト対象プログラムに対する操作手順を記述したスクリプトを保持する記憶装置200と、該スクリプトに従って操作を自動実行する操作自動実行手段110と、任意個数のプログラムと任意個数のサブルーチンに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、各プログラムに対し、前記ルーチン指定情報に指定されているサブルーチンを結合し、各プログラムにおいて、ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集する注入手段130を含む。
【選択図】図1
Description
本発明は、プログラムのテスト実行を自動化するシステムに関し、特に、外部公開されているインタフェースを介して制御できない内部処理の発生に依存する動作のテストに適用できるプログラムテスト自動化システム、プログラムテスト自動化方法及びプログラムに関する。
ある実行環境上でプログラムの動作をテストするには、ユーザが様々な操作を行い、その操作に依存する動作結果を確認する必要がある。
関連技術としての一般的なプログラムテスト自動化システムは、テストの際にソフトウエアに対して行わなければならない操作を自動化するため、例えば、特許文献1に記載されているように、操作手順をログファイルに記録する手段と、指示により該ログファイルに記録された手順を再現する手段とを備えている。
これはテスト対象プログラムをユーザが手動で操作した際に、実行環境上で検出されるコマンドやメッセージの発生をログファイルに記録しておき、以後はログファイルの内容を制御のシナリオと見立てて記録時と同等の操作を自動実行させることにより、プログラムのテストを自動実行するものである。
また、市販のいくつかのプログラムテスト自動化システム、例えばMercury社のQuickTestやMicrosoft社の「TeamEdition For Tester」は、該ログファイルの内容を利用者が修正できるようにしている。そしてログファイルの書式として、操作を再現させるためのシナリオをプログラミングできるスクリプト言語形式を採用することにより、より複雑な操作手順の自動実行をプログラミングできるようになっている。
一般的なプログラムテスト自動化システムが自動化の対象としている操作の例を図8から図16に示した。
テストを行う際にはユーザまたはテスト自動化ツールが、実行環境またはテスト対象プログラムに対して操作を行い、その際の振舞いを観測してテストの合否を判定する。
図8の例は、ユーザがテスト対象プログラムの処理を実行してその完了を待ち、処理結果を取得する場合を示している。
太い矢印の部分がユーザが行う作業であり自動化すべき対象でもある。
太い矢印の部分がユーザが行う作業であり自動化すべき対象でもある。
図9の例は、図8と似ているが、処理の実行を開始した後、ユーザはその完了を待たずに別の操作を行うことができるような場合を示している。
この場合は、最初の処理開始メッセージの送信とその処理中に行う操作とが自動化の対象である。
この場合は、最初の処理開始メッセージの送信とその処理中に行う操作とが自動化の対象である。
さらに図10の例は、ユーザが開始した処理の途中でユーザに対して直接にメッセージが送り返されてくる場合を示しており、図11の例は送り返されるメッセージが実行環境を経由してからユーザに渡される例を示している。
いずれも、送り返されてくるメッセージが同期の場合は、それを受け取る操作が必要となり、これも自動化の対象である。
また、テストに際しては、あらかじめ初期状態を設定しておく必要がある。
図12の例は処理前または処理中にユーザがプログラムの状態を直接的に設定する場合を示している。
図13の例はプログラムの処理実行前に実行環境の状態を設定する場合を示している。
これらの場合における状態を設定する操作も自動化の対象である。
さらにテストの結果判定のためにはプログラムや実行環境の状態を観測する必要があり、図14〜図16の例に示すような、ユーザからタイミングを指定してテスト対象プログラムや実行環境の状態を参照する操作も自動化の対象である。
実開昭64−27740号公報
さらにテストの結果判定のためにはプログラムや実行環境の状態を観測する必要があり、図14〜図16の例に示すような、ユーザからタイミングを指定してテスト対象プログラムや実行環境の状態を参照する操作も自動化の対象である。
上述した関連技術としてのプログラムテスト自動化システムは、外部からの操作以外の要因、例えばメモリ空間の逼迫やシステム障害など実行環境内部でごく稀に発生する事象や、実行中のプログラムが外部からの操作とは無関係に内部で発生させる事象、あるいは他のプログラムがテスト対象プログラムの動作の影響を受けて発生させる事象など、に依存した動作のテストを自動実行できないという、問題点を有している。
例えば図17の例は、実行環境自身が2で処理を自発的に実行したり、テスト対象プログラム自身が3で処理を自発的に実行するような場合を示している。この場合ユーザは1や4の操作を行ってテストを試みるが、2や3の発生タイミングを自由には制御できない。そのため、2以後に3が起こる状況を確実に再現させるような操作の手順は存在せず、テストを自動化することができない。
また図18の例は、ユーザが1でテスト対象プログラムの処理を起動した後に、テスト対象プログラム内部で自発的なイベント2と4が間隔をおいて発生する場合を示している。そして、2で開始した処理の終了直後に実行環境に対する状態設定3を行っておいたとして、その後に4が発生したとしたらどうなるか、についてのテストを想定している。このときユーザには、4のタイミングを3の後になるよう制御する手立てがないため、このようなテストを自動化することはできない。
上記のような問題が生じる理由は、自動化する手段の対象が、ユーザの行うことのできる操作のみを対象としており、テスト対象プログラムあるいは実行環境あるいは他の関与するプログラムの側で自発的に発生しユーザ操作によっては直接制御できないような事象を発生させるための自動化手段を持たなかったためである。
(発明の目的)
本発明の目的は、テスト対象プログラムあるいは実行環境や他のソフトウエアが自発的に発生させる事象をテスト自動化手段から制御可能にすることで、そのような事象に依存した動作の検証を自動化できるプログラムテスト自動化システム、プログラムテスト自動化方法及びプログラムを提供することにある。
(発明の目的)
本発明の目的は、テスト対象プログラムあるいは実行環境や他のソフトウエアが自発的に発生させる事象をテスト自動化手段から制御可能にすることで、そのような事象に依存した動作の検証を自動化できるプログラムテスト自動化システム、プログラムテスト自動化方法及びプログラムを提供することにある。
本発明によるプログラムテスト自動化システムは、テスト対象プログラムのテスト実行を自動化するプログラムテスト自動化システムであって、テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、テスト開始の指示を受け付けてスクリプトを記憶装置から読み出し、スクリプトに記述された手順でプログラムに対する操作を自動的に実行する操作自動実行手段と、任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、各プログラムに対し、サブルーチンのうちルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、各プログラムにおいて、ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集する注入手段とを含む。
本発明によるプログラムテスト自動化方法は、テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、テスト開始の指示を受け付けてスクリプトを記憶装置から読み出し、スクリプトに記述された手順でプログラムに対する操作を自動的に実行する操作自動実行手段を有するプログラムテスト自動化システムのプログラムテスト自動化方法であって、任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、各プログラムに対し、サブルーチンのうちルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、各プログラムにおいて、ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集するステップを含む。
第1の効果は、手動操作以外の要因で発生する事象に依存した動作のテストを自動実行できることにある。
その理由は、テスト対象プログラムあるいは実行環境あるいは他の関与するソフトウエアの側で自発的に発生しユーザ操作によっては直接制御できないような事象を発生させることのできる条件分岐命令手段を注入手段によってプログラムに注入できるためである。
(第1の実施の形態)
次に、本発明の実施の形態について図面を参照して詳細に説明する。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図1を参照すると、本発明の第1の実施の形態によるプログラムテスト自動化システムは、テストに関与する一般に複数個のプログラムに対する操作手順をプログラムしたスクリプト210を保持する記憶装置200と、プログラム制御により動作し、テスト開始の指示を受け付けてスクリプト210を記憶装置200から読み出し、当該スクリプト210の指示内容を解釈し操作手順を自動的に実行するコンピュータ100とを含んでいる。
コンピュータ100は、操作自動実行手段110と、注入先プログラム120と、注入手段130と、条件分岐命令手段140と、サブルーチン141と、指示情報送出手段150と、指示情報受付手段160及びテスト対象プログラム300を含む。
ここで、プログラムテスト自動化システムを構成する上記各手段の機能について説明する。
操作自動実行手段110は、テスト開始の指示を受け付けて当該スクリプト210を当該記憶装置200から読み出し、読み出したスクリプト210の指示内容を解釈し操作手順を自動的に実行する機能を有する。
注入手段130は、条件分岐命令手段140と、与えられたサブルーチン141と、指示情報受付手段150を、指定された注入先プログラム120に結合する機能と、サブルーチン141に関連付けるべき注入先プログラム120中の箇所が指定された場合に、当該注入先プログラム120の当該箇所に、条件分岐命令手段140へのサブルーチン呼出が行われ、その復帰後に本来の処理が継続されるような命令列を挿入する機能を有する。
条件分岐命令手段140は、注入手段130の指示に従って、注入先プログラム120からの分岐によって実行を開始する手段であって、サブルーチン141を実行する命令を含み、分岐元への復帰命令で終結する命令列を保持する手段である。
指示情報送出手段150は、操作自動実行手段110からの制御を受け付けて、指示情報受付手段160に対してサブルーチン141に参照させるべき情報を送り出す手段である。
指示情報受付手段160は、指示情報送出手段150が送り出した情報を受け取って保持するデータ領域並びに命令列保持領域を含み、事象発生ルーチン141又は外部からの参照または更新を可能とする手段である。
なお、サブルーチン141とは、注入先プログラム120に結合可能な任意の命令と呼出元への復帰命令とを含む命令列であり、注入先プログラム120内部で通常にアクセス可能な変数や手続きに加え、指示情報受付手段160に保持された情報を参照、更新及び削除することができる任意のルーチンである。
コンピュータ100のハードウェア構成例について、図7を参照して説明する。
図7を参照すると、コンピュータ100は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、CPU(Central Processing Unit)401、RAM(Random Access Memory)等のメインメモリであり、データの作業領域やデータの一時退避領域に用いられる主記憶部402、ネットワークを介して他のノードとデータの送受信を行う通信部403、入力装置405、出力装置406及び記憶装置407(記憶装置200に相当)と接続してデータの送受信を行う入出力インタフェース部404、上記各構成要素を相互に接続するシステムバス408を備えている。記憶装置407は、例えば、ROM(Read
Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
本実施の形態によるプログラムテスト自動化システムは、コンピュータ100に、図1に示す各手段の機能を実現するプログラムテスト自動化プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、プログラムテスト自動化プログラムを、記憶装置407に格納し、そのプログラムを主記憶部402にロードしてCPU401で実行することにより、ソフトウェア的に実現することも可能である。
(第1の実施の形態による動作)
次いで、上記のように構成される本実施の形態によるプログラムテスト自動化システムの動作について、図2及び図3のフローチャートを参照して説明する。
次いで、上記のように構成される本実施の形態によるプログラムテスト自動化システムの動作について、図2及び図3のフローチャートを参照して説明する。
まず、テストを実行するための準備が行われる。
注入手段130に対して、任意個数のサブルーチン141、テスト対象プログラム300のテストに関与する注入先プログラム120が与えられ、さらに、注入先プログラム120における監視対象手続きとそれに対応させるべき事象発生ルーチン141の情報が与えられる(ステップA101)。
注入手段130に対して、任意個数のサブルーチン141、テスト対象プログラム300のテストに関与する注入先プログラム120が与えられ、さらに、注入先プログラム120における監視対象手続きとそれに対応させるべき事象発生ルーチン141の情報が与えられる(ステップA101)。
詳細には、図2に示すように、任意個数の注入先プログラム120、任意個数のサブルーチン141、どのルーチンをどの注入プログラムに結合すべきかを指定するルーチン指定情報、ルーチン毎に関連付けるべき注入プログラム中の任意個数の箇所を指定するルーチン関連付け箇所情報、指示情報受付手段160内の変数値又は注入先プログラム内の変数値への参照を含むような条件判定式が与えられる。
注入手段130は、与えられた各注入プログラム120に、条件分岐命令手段140と、ルーチン指定情報で指定されたサブルーチン141と、指示情報受付手段160を結合する(ステップA102)。
また、注入手段130は、注入先プログラム120に対して、ルーチン関連付け箇所情報で指定された箇所に、条件分岐命令手段140へのサブルーチン呼出しを行うサブルーチン呼出し命令を挿入する(ステップA103)。
すなわち、注入手段130は、ルーチン関連付け箇所情報で指定された箇所の直前においてサブルーチンへのサブルーチン呼出し命令が実行されるように、注入先プログラム120を編集する。
さらに、注入手段130は、各注入プログラム120に関連付けた各サブルーチンに対して、与えられた条件判定式を評価して、その結果が真の時にサブルーチンの呼出しを行った後に分岐元への復帰を行うような命令例を挿入する(ステップA104)。
以上により、プログラムテストの準備が完了する(ステップA105)。
次に、テストの準備が完了した状態で(ステップA210)、テスト対象プログラム300を操作する命令および注入先プログラム120を操作する命令および指示情報送出手段150を操作する命令を含んだスクリプト210が記憶装置200に保持されているときに、コンピュータ100がテスト実行の指示を受けると(ステップA220)、操作自動実行手段110は、テスト対象プログラム300の操作および注入先プログラム120の操作ならびに指示情報送出手段150の操作を自動的に実行する(ステップA230)。
指示情報送出手段150は、操作自動実行手段110からの操作を受けたとき(ステップA231)、指示情報受付手段160に対して前記サブルーチン141に参照させるべき情報を送り出す(ステップA232)。
そして、指示情報受付手段160がアクセス可能な状態となる(ステップA233)。
そして、指示情報受付手段160がアクセス可能な状態となる(ステップA233)。
注入先プログラム120が起動すると(ステップA310)、注入プログラム120による通常の処理が行われる(ステップA320)と共に、注入手段120によって挿入された分岐命令が実行され(ステップA330)、条件分岐命令手段140へと制御が分岐されると(ステップA340)、条件分岐命令手段140に格納されている命令列に従って、サブルーチン呼出しがなされサブルーチン141が実行される(ステップA350)。
サブルーチン141の実行においては、指示情報受付手段160からの指示情報を参照し(ステップA351)、その指示情報に応じて、テスト対象プログラム300の状態参照(ステップA352)、注入先プログラムの状態参照(ステップA353)、実行環境の状態参照(ステップA354)を実行する。
また、状態参照によって取得した情報に対する条件判定式による評価がなされ(ステップA355)、評価結果が真であれば、所定の処理を実行する(A355〜A358)。
そして、サブルーチン141の実行完了後に、元の命令列へと制御が復帰する。
(実施の形態による効果)
本実施の形態によれば、手動操作以外の要因で発生する事象に依存した動作のテストを自動実行できる。その理由は、テスト対象プログラムあるいは実行環境あるいは他の関与するソフトウエアの側で自発的に発生しユーザ操作によっては直接制御できないような事象を発生させることのできる条件分岐命令手段を注入手段によってプログラムに注入できるためである。
本実施の形態によれば、手動操作以外の要因で発生する事象に依存した動作のテストを自動実行できる。その理由は、テスト対象プログラムあるいは実行環境あるいは他の関与するソフトウエアの側で自発的に発生しユーザ操作によっては直接制御できないような事象を発生させることのできる条件分岐命令手段を注入手段によってプログラムに注入できるためである。
次に、プログラムテスト自動化システムの具体的な動作について実施例を用いて説明する。
図4に示すように、イベントキューを読み取ってイベントに対応するスレッド(処理)を生成して実行し、再びイベントキュー読み取りを行うといった、イベント処理を反復するタイプのアプリケーションプログラムを想定する。
図5に示すように、main()関数内のwhileループ内で「queue」から「getEvent()」によりイベント取り出しを試み、それを「dispatch()」で具体的な処理を実行する例を用いて動作を説明する。
図6にaspectJ言語を利用して実現した注入手段130を示す。
「Injectee」に記述したアスペクトは、図5のアプリケーションプログラムの「Main」内の任意のメソッドが呼出されるたびに、「before」内のロジックが実行され、その後にメソッド本来の処理が実行されるべきことを指示する内容である。これをaspectJの処理系で処理することにより、アプリケーションプログラムの「Main」に対する注入が実現される。
「Injectee」に記述したアスペクトは、図5のアプリケーションプログラムの「Main」内の任意のメソッドが呼出されるたびに、「before」内のロジックが実行され、その後にメソッド本来の処理が実行されるべきことを指示する内容である。これをaspectJの処理系で処理することにより、アプリケーションプログラムの「Main」に対する注入が実現される。
また、図6において、「SharedObject」は、指示情報受付手段160を実装したクラスであり、「get()」で情報の参照、「set()」で情報の設定を行うことができるものとする。
さらに、図4によると、テストを自動化すべき対象のアプリケーションプログラムの持つ処理Aおよび処理Bは実行環境の情報を参照、更新しながら動作し、処理Aの結果は処理Bの挙動に影響するものとする。
これは、図5では、「processA()」でxやyに設定した値が「processB()」にてzの値の算出に使用される場合を示している。
このとき、処理Aの後に処理Bを実行させた場合の動作をテストしたいものとすると、処理Aと処理Bの実行順序を制御することが必要だが、図5のアプリケーションプログラムには外部から処理Aと処理Bの順序を制御する手段が備わっていない。
なお、「MyEventQueue」は外部から制御不可能なシステム内部のイベントが入力されるものとする。このとき、Injecteeアスペクトが注入されていることにより、指示情報"flag"を参照してprocessA()に続いてprocessB()を実行することができる。
まず、最初にプログラムテスト自動化システムから上記アプリケーションアプリケーションプログラムを起動する。
これにより、Mainのmain()関数内のwhileループ内のステートメントが反復実行され始める。
次に、指示情報送出手段150がSharedObject.set("flag",true)を実行し、指示情報受付手段160であるSharedObjectにtrueという値を持つ変数flagを渡す。
すると、その後でwhileループ中でdispatch()が呼出されたとき、アスペクトInjecteeに制御が渡り、SharedObjectからflag値がgetされ、それがtrueとなるため、次のprintln()とprocessA()とprocessB()とprintln()が順次実行される。これにより、出力結果の中で、begin
test と end testで囲まれた箇所を見れば、processA()の後にprocessB()を実行した場合の結果を確認することができる。
test と end testで囲まれた箇所を見れば、processA()の後にprocessB()を実行した場合の結果を確認することができる。
以上のようにして、希望通りの操作をプログラムテスト自動化システムから実行することができる。
なお、C言語のプログラムの場合であれば、Pin等のbinary
instrumentationツールを用いることで、同様の注入処理を実装することができる。
instrumentationツールを用いることで、同様の注入処理を実装することができる。
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
本発明によれば、プログラムを実運用に近い条件下でテストするテストシステムに適用することができる。
100:コンピュータ
110:操作自動実行手段
120:注入先プログラム
130:注入手段
140:条件分岐命令手段
141:サブルーチン
150:指示情報送出手段
160:指示情報受付手段
200:記憶装置
210:スクリプト
300:テスト対象プログラム
110:操作自動実行手段
120:注入先プログラム
130:注入手段
140:条件分岐命令手段
141:サブルーチン
150:指示情報送出手段
160:指示情報受付手段
200:記憶装置
210:スクリプト
300:テスト対象プログラム
Claims (8)
- テスト対象プログラムのテスト実行を自動化するプログラムテスト自動化システムであって、
前記テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、
テスト開始の指示を受け付けて前記スクリプトを前記記憶装置から読み出し、前記スクリプトに記述された手順で前記プログラムに対する操作を自動的に実行する操作自動実行手段と、
任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、
前記各プログラムに対し、前記サブルーチンのうち前記ルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、
前記各プログラムにおいて、前記ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集する注入手段と、
を備えたことを特徴とするプログラムテスト自動化システム。 - 前記注入手段が、前記サブルーチンが参照または更新する情報を保持するデータ領域並びに命令列保持領域を含む指示情報受取手段を、注入対象の前記プログラムに結合する機能を含むことを特徴とする請求項1記載のプログラムテスト自動化システム。
- 前記注入手段が、前記指示情報受取手段内の変数値またはプログラム内の変数値の参照を含むような、与えられた条件判定式を評価して、当該の式の結果を受けて以後の処理の実行有無を制御する条件分岐命令手段を、前記プログラムに結合するサブルーチンの先頭部分に挿入する機能を含むことを特徴とする請求項2記載のプログラムテスト自動化システム。
- 前記操作自動実行手段の指示を受けて、前記指示情報受取手段に対する情報または命令列の参照または更新を行うことのできる指示情報送出手段を含むことを特徴とする請求項2又は請求項3に記載のプログラムテスト自動化システム。
- テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、テスト開始の指示を受け付けて前記スクリプトを前記記憶装置から読み出し、前記スクリプトに記述された手順で前記プログラムに対する操作を自動的に実行する操作自動実行手段を有するプログラムテスト自動化システムのプログラムテスト自動化方法であって、
任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、
前記各プログラムに対し、前記サブルーチンのうち前記ルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、
前記各プログラムにおいて、前記ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集するステップを含むことを特徴とするプログラムテスト自動化方法。 - 前記プログラムを編集するステップにおいて、前記サブルーチンが参照または更新する情報を保持するデータ領域並びに命令列保持領域を含む指示情報受取手段を、注入対象の前記プログラムに結合することを特徴とする請求項5記載のプログラムテスト自動化方法。
- 前記プログラムを編集するステップにおいて、前記指示情報受取手段内の変数値またはプログラム内の変数値の参照を含むような、与えられた条件判定式を評価して、当該の式の結果を受けて以後の処理の実行有無を制御する条件分岐命令手段を、前記プログラムに結合するサブルーチンの先頭部分に挿入することを特徴とする請求項6記載のプログラムテスト自動化方法。
- 前記操作自動実行手段の指示を受けて、前記指示情報受取手段に対する情報または命令列の参照または更新を行う指示情報送出ステップを含むことを特徴とする請求項6又は請求項7に記載のプログラムテスト自動化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008080523A JP2009237707A (ja) | 2008-03-26 | 2008-03-26 | プログラムテスト自動化システム、プログラムテスト自動化方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008080523A JP2009237707A (ja) | 2008-03-26 | 2008-03-26 | プログラムテスト自動化システム、プログラムテスト自動化方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009237707A true JP2009237707A (ja) | 2009-10-15 |
Family
ID=41251607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008080523A Pending JP2009237707A (ja) | 2008-03-26 | 2008-03-26 | プログラムテスト自動化システム、プログラムテスト自動化方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009237707A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360951A (zh) * | 2014-12-09 | 2015-02-18 | 迈普通信技术股份有限公司 | 一种脚本测试方法和装置 |
-
2008
- 2008-03-26 JP JP2008080523A patent/JP2009237707A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360951A (zh) * | 2014-12-09 | 2015-02-18 | 迈普通信技术股份有限公司 | 一种脚本测试方法和装置 |
CN104360951B (zh) * | 2014-12-09 | 2017-09-29 | 迈普通信技术股份有限公司 | 一种脚本测试方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4950454B2 (ja) | テスト自動化のスタック階層化 | |
US8356282B1 (en) | Integrated development environment for the development of electronic signal testing strategies | |
KR101269549B1 (ko) | 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법 | |
EP0752653B1 (en) | Method and system for synchronizing the execution of events during software testing | |
US7926040B2 (en) | Method and system for timing code execution in a korn shell script | |
KR101565840B1 (ko) | 서버에 자동화 테스트를 제공하는 방법 및 시스템 | |
JP5337155B2 (ja) | 組み込み機器におけるapi評価システム | |
US20090013312A1 (en) | Executable High-Level Trace File Generation System and Method | |
CN105209925A (zh) | 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性 | |
US20040107179A1 (en) | Method and system for controlling software execution in an event-driven operating system environment | |
CN111104315A (zh) | 一种测试脚本生成方法及装置、计算机可读存储介质 | |
US7779302B2 (en) | Automated testing framework for event-driven systems | |
US20080133977A1 (en) | Non-stop debugging apparatus for correcting errors in embedded systems and method thereof | |
CN109966742B (zh) | 游戏运行中获取渲染性能数据的方法及装置 | |
CN108874649B (zh) | 自动化测试脚本的生成方法、装置及其计算机设备 | |
CN112100085B (zh) | 安卓应用程序稳定性测试方法、装置和设备 | |
US20030235156A1 (en) | Methods and structure for improved testing of embedded systems | |
CN110532182A (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
CN116166525A (zh) | 一种测试脚本的生成方法及装置 | |
CN103049374A (zh) | 一种自动化测试的方法及装置 | |
US7174359B1 (en) | Apparatus and methods for sequentially scheduling a plurality of commands in a processing environment which executes commands concurrently | |
JP2009237707A (ja) | プログラムテスト自動化システム、プログラムテスト自動化方法及びプログラム | |
JP2008135008A (ja) | プログラムモジュール検証方式 | |
KR100901780B1 (ko) | 내장형 시스템 오류 수정을 위한 비정지 디버깅 장치 및방법 | |
JP2002157144A (ja) | ソフトウェア自動試験方式 |