JP6974707B2 - テストプログラム、テスト装置及びテスト方法 - Google Patents
テストプログラム、テスト装置及びテスト方法 Download PDFInfo
- Publication number
- JP6974707B2 JP6974707B2 JP2017177247A JP2017177247A JP6974707B2 JP 6974707 B2 JP6974707 B2 JP 6974707B2 JP 2017177247 A JP2017177247 A JP 2017177247A JP 2017177247 A JP2017177247 A JP 2017177247A JP 6974707 B2 JP6974707 B2 JP 6974707B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- conditional
- executed
- tested
- specified
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
初めに、情報処理システム10の構成について説明を行う。図1は、情報処理システム10の構成を示す図である。図1に示す情報処理システム10は、例えば、情報処理装置1(以下、テスト装置1とも呼ぶ)と、記憶部130と、操作端末3a、3b及び3c(以下、これらを総称して操作端末3とも呼ぶ)とを有する。
図2は、テスト対象プログラム131の具体例を説明する図である。
次に、テスト対象プログラム131におけるパス条件の抽出について説明を行う。図3は、テスト対象プログラム131の制御構造の具体例を説明する図である。
図4は、テスト対象プログラム131のテストに用いられるテストデータ132の具体例を説明する図である。
次に、情報処理システム10のハードウエア構成について説明する。図5は、情報処理装置1のハードウエア構成を説明する図である。
次に、情報処理システム10の機能について説明する。図6は、情報処理装置1の機能ブロック図である。
次に、第1の実施の形態の概略のフローチャート図について説明を行う。図7は、第1の実施の形態におけるテスト処理の概略を説明するフローチャート図である。図8及び図9は、第1の実施の形態におけるテスト処理の概略を説明する図である。図8及び図9を参照しながら、図7に示すテスト処理の概略について説明を行う。
次に、第1の実施の形態の詳細について説明する。図10から図12は、第1の実施の形態におけるテスト処理の詳細を説明するフローチャート図である。また、図13から図22は、第1の実施の形態におけるテスト処理の詳細を説明する図である。図13から図22を参照しながら、図10から図12に示すテスト処理の詳細を説明する。
図13から図16は、テスト処理の具体例を説明する図である。具体的に、図13及び図15は、テスト対象プログラム131の具体例を説明する図である。また、図14及び図16は、パス条件とテストデータ132とが設定された情報の具体例を説明する図である。なお、図14及び図16に示す情報は、図4で説明した情報と同様に、「項番」、「パス条件」及び「テストデータ」を項目として有している。
図15は、S25及びS26の処理の具体例を説明する図である。
図17から図20は、テスト処理の具体例を説明する図である。具体的に、図17から図20は、テスト対象プログラム131の具体例を説明する図である。
図21及び図22は、テスト処理の具体例を説明する図である。具体的に、図21及び図22は、テスト対象プログラム131の具体例を説明する図である。
コンピュータに、
テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行する、
処理を実行させることを特徴とするテストプログラム。
付記1において、
前記実行する処理では、
前記テスト対象のプログラムに対してシンボル変数を用いたシンボリック実行を行うことにより、前記テスト対象のプログラムが実行される際に通過する1以上のパス条件を特定し、
特定した前記1以上のパス条件のそれぞれを満たす1以上のテストデータを生成し、
生成した前記1以上のテストデータを入力として前記テスト対象のプログラムを実行し、
前記条件節を特定する処理では、前記テスト対象のプログラムに含まれる条件節のうち、前記1以上のテストデータを入力とした場合における前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定する、
ことを特徴とするテストプログラム。
付記2において、
前記特定のスタブは、前記テスト対象のプログラムに対して、前記関数呼び出しに対応する関数と同じ型のシンボル変数を与えるスタブである、
ことを特徴とするテストプログラム。
付記3において、
前記置き換える処理では、特定した前記条件節が複数存在する場合、特定した前記条件節のうちのいずれかの条件式に含まれる関数呼び出しに対応する関数を前記特定のスタブに置き換え、さらに、
前記再実行する処理の後、再実行された前記テスト対象のプログラムの実行時において、複数存在した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
複数存在した前記条件節に、実行されていない処理を含む前記条件節が存在すると判定した場合、存在すると判定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理を実行させることを特徴とするテストプログラム。
付記4において、
前記置き換える処理では、特定した前記条件節の条件式に複数の関数呼び出しが含まれている場合、前記複数の関数呼び出しのうちのいずれかに対応する関数を前記特定のスタブに置き換え、さらに、
前記再実行する処理の後、再実行された前記テスト対象のプログラムの実行時において、特定した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
特定した前記条件節に含まれる全ての処理が実行されていないと判定した場合、特定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理を実行させることを特徴とするテストプログラム。
付記1において、
前記条件節を特定する処理では、前記テスト対象のプログラムのソースコードに記述された行のうち、前記テスト対象のプログラムの実行時において実行されなかった行を含む条件節を特定する、
ことを特徴とするテストプログラム。
テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行するプログラム実行部と、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定する条件節特定部と、
特定した前記条件節の条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換えるスタブ置換部と、を有し、
前記プログラム実行部は、前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行する、
ことを特徴とするテスト装置。
付記7において、
前記プログラム実行部は、
前記テスト対象のプログラムに対してシンボル変数を用いたシンボリック実行を行うことにより、前記テスト対象のプログラムが実行される際に通過する1以上のパス条件を特定し、
特定した前記1以上のパス条件のそれぞれを満たす1以上のテストデータを生成し、
生成した前記1以上のテストデータを入力として前記テスト対象のプログラムを実行し、
前記条件節を特定する処理では、前記テスト対象のプログラムに含まれる条件節のうち、前記1以上のテストデータを入力とした場合における前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定する、
ことを特徴とするテスト装置。
テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行する、
ことを特徴とするテスト方法。
付記9において、
前記実行する工程では、
前記テスト対象のプログラムに対してシンボル変数を用いたシンボリック実行を行うことにより、前記テスト対象のプログラムが実行される際に通過する1以上のパス条件を特定し、
特定した前記1以上のパス条件のそれぞれを満たす1以上のテストデータを生成し、
生成した前記1以上のテストデータを入力として前記テスト対象のプログラムを実行し、
前記条件節を特定する処理では、前記テスト対象のプログラムに含まれる条件節のうち、前記1以上のテストデータを入力とした場合における前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定する、
ことを特徴とするテスト方法。
3b:操作端末 3c:操作端末
130:記憶部 131:テスト対象プログラム
132:テストデータ
Claims (8)
- コンピュータに、
テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節が複数存在する場合、特定した前記条件節のうちのいずれかの条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行し、
再実行された前記テスト対象のプログラムの実行時において、複数存在した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
複数存在した前記条件節に、実行されていない処理を含む前記条件節が存在すると判定した場合、存在すると判定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理を実行させることを特徴とするテストプログラム。 - コンピュータに、
テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に複数の関数呼び出しが含まれている場合、特定した前記条件節の条件式に含まれる前記複数の関数呼び出しのうちのいずれかに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行し、
再実行された前記テスト対象のプログラムの実行時において、特定した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
特定した前記条件節に含まれる全ての処理が実行されていないと判定した場合、特定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理を実行させる
ことを特徴とするテストプログラム。 - テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行する、
処理をコンピュータに実行させ、
前記置き換える処理では、特定した前記条件節が複数存在する場合、特定した前記条件節のうちのいずれかの条件式に含まれる関数呼び出しに対応する関数を前記特定のスタブに置き換え、さらに、
前記再実行する処理の後、再実行された前記テスト対象のプログラムの実行時において、複数存在した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
複数存在した前記条件節に、実行されていない処理を含む前記条件節が存在すると判定した場合、存在すると判定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理をコンピュータに実行させることを特徴とするテストプログラム。 - テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行する、
処理をコンピュータに実行させ、
前記置き換える処理では、特定した前記条件節の条件式に複数の関数呼び出しが含まれている場合、前記複数の関数呼び出しのうちのいずれかに対応する関数を前記特定のスタブに置き換え、さらに、
前記再実行する処理の後、再実行された前記テスト対象のプログラムの実行時において、特定した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
特定した前記条件節に含まれる全ての処理が実行されていないと判定した場合、特定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理をコンピュータに実行させることを特徴とするテストプログラム。 - コンピュータが、
テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節が複数存在する場合、特定した前記条件節のうちのいずれかの条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行し、
再実行された前記テスト対象のプログラムの実行時において、複数存在した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
複数存在した前記条件節に、実行されていない処理を含む前記条件節が存在すると判定した場合、存在すると判定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理を実行することを特徴とするテスト方法。 - コンピュータが、
テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に複数の関数呼び出しが含まれている場合、特定した前記条件節の条件式に含まれる前記複数の関数呼び出しのうちのいずれかに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行し、
再実行された前記テスト対象のプログラムの実行時において、特定した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
特定した前記条件節に含まれる全ての処理が実行されていないと判定した場合、特定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理を実行することを特徴とするテスト方法。 - テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行する、
処理をコンピュータが実行し、
前記置き換える処理では、特定した前記条件節が複数存在する場合、特定した前記条件節のうちのいずれかの条件式に含まれる関数呼び出しに対応する関数を前記特定のスタブに置き換え、さらに、
前記再実行する処理の後、再実行された前記テスト対象のプログラムの実行時において、複数存在した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
複数存在した前記条件節に、実行されていない処理を含む前記条件節が存在すると判定した場合、存在すると判定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理をコンピュータが実行することを特徴とするテスト方法。 - テスト対象のプログラム内の変数に具体値を入力することなく前記テスト対象のプログラムを実行し、
前記テスト対象のプログラムに含まれる条件節のうち、前記テスト対象のプログラムの実行時において実行されなかった処理を含む条件節を特定し、
特定した前記条件節の条件式に含まれる関数呼び出しに対応する関数を特定のスタブに置き換え、
前記関数呼び出しに対応する関数を前記特定のスタブに置き換えた前記テスト対象のプログラムを再実行する、
処理をコンピュータが実行し、
前記置き換える処理では、特定した前記条件節の条件式に複数の関数呼び出しが含まれている場合、前記複数の関数呼び出しのうちのいずれかに対応する関数を前記特定のスタブに置き換え、さらに、
前記再実行する処理の後、再実行された前記テスト対象のプログラムの実行時において、特定した前記条件節に含まれる全ての処理が実行されたか否かを判定し、
特定した前記条件節に含まれる全ての処理が実行されていないと判定した場合、特定した前記条件節に含まれる全ての処理が実行されるようになるまで、前記置き換える処理、前記再実行する処理及び前記判定する処理を繰り返す、
処理をコンピュータが実行することを特徴とするテスト方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017177247A JP6974707B2 (ja) | 2017-09-15 | 2017-09-15 | テストプログラム、テスト装置及びテスト方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017177247A JP6974707B2 (ja) | 2017-09-15 | 2017-09-15 | テストプログラム、テスト装置及びテスト方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019053518A JP2019053518A (ja) | 2019-04-04 |
JP6974707B2 true JP6974707B2 (ja) | 2021-12-01 |
Family
ID=66014884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017177247A Active JP6974707B2 (ja) | 2017-09-15 | 2017-09-15 | テストプログラム、テスト装置及びテスト方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6974707B2 (ja) |
-
2017
- 2017-09-15 JP JP2017177247A patent/JP6974707B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019053518A (ja) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10586053B2 (en) | Method for automatically detecting security vulnerability based on hybrid fuzzing, and apparatus thereof | |
US8555234B2 (en) | Verification of soft error resilience | |
EP3264274B1 (en) | Input discovery for unknown program binaries | |
JP6897524B2 (ja) | ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム | |
CN104021072A (zh) | 用于评估失效的软件程序的机器和方法 | |
JP2015130152A (ja) | 情報処理装置及びプログラム | |
US8560991B1 (en) | Automatic debugging using automatic input data mutation | |
US9842044B2 (en) | Commit sensitive tests | |
JP5440287B2 (ja) | シンボリック実行支援プログラム、方法及び装置 | |
CN107193736B (zh) | 测试方法、装置、电子设备以及存储介质 | |
US12001325B2 (en) | Test data generation apparatus, test data generation method and program | |
JP6974707B2 (ja) | テストプログラム、テスト装置及びテスト方法 | |
JP7211228B2 (ja) | 解析装置、解析方法、及びプログラム | |
CN107077394B (zh) | 用于监视对代码集的请求的方法和系统 | |
JP2013196390A (ja) | テストデータ作成方法、テストデータ作成プログラム及びテストデータ作成装置 | |
CN115757099A (zh) | 平台固件保护恢复功能自动测试方法和装置 | |
JP6912104B2 (ja) | 試験装置、試験方法及びコンピュータプログラム | |
US9442701B1 (en) | Verifying models for exceptional behavior | |
JP3833626B2 (ja) | テストケース生成装置及びテストケース生成方法 | |
US20150161006A1 (en) | Information processing apparatus and method for testing same | |
JP2017041196A (ja) | スタブ化対象判定装置、方法、及びプログラム | |
US9053264B2 (en) | What-if simulation methods and systems | |
CN111143229A (zh) | 软件测试方法及装置、计算机设备及计算机可读存储介质 | |
JP6390217B2 (ja) | ソフトウェア変更プログラム、ソフトウェア変更装置、及びソフトウェア変更方法 | |
JPWO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200611 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210430 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210608 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210804 |
|
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: 20211005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6974707 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |