JP6143993B2 - テスト自動化装置、テスト自動化方法及びテスト自動化プログラム - Google Patents
テスト自動化装置、テスト自動化方法及びテスト自動化プログラム Download PDFInfo
- Publication number
- JP6143993B2 JP6143993B2 JP2017514040A JP2017514040A JP6143993B2 JP 6143993 B2 JP6143993 B2 JP 6143993B2 JP 2017514040 A JP2017514040 A JP 2017514040A JP 2017514040 A JP2017514040 A JP 2017514040A JP 6143993 B2 JP6143993 B2 JP 6143993B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- test case
- path
- factor
- result
- 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
- 238000012360 testing method Methods 0.000 title claims description 535
- 238000000034 method Methods 0.000 title claims description 135
- 230000007547 defect Effects 0.000 claims description 111
- 230000008569 process Effects 0.000 claims description 111
- 238000005206 flow analysis Methods 0.000 claims description 44
- 238000004458 analytical method Methods 0.000 claims description 27
- 239000000284 extract Substances 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 10
- 230000002950 deficient Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000013522 software testing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 230000007847 structural defect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
従来、テストは手動で行われていた。しかし、ソフトウェアの大規模化、複雑化に伴い、テストに要する時間及び労力が増大し、欠陥の見落としが発生するようになった。このような背景の下、テストを効率的かつ効果的に行うための手法が提案されてきた。
非特許文献2では、この直交表を改良し、データの値で組み合わせが不可能なものの排除、データ数の増加及び取り得る値の種類の増加への対応等、直交表で困難であった処理を実現したHAYST法が提案されている。
「網羅率」とは、モデルにおけるパスの総数のうち、列挙されているパスの数の割合を
表すものとする。また、「欠陥箇所」とは、パス上の欠陥が存在する位置を表すものとする。また、「欠陥の情報」とは、欠陥箇所を含め、欠陥の種類、欠陥に関係しているデータ等、欠陥の詳細を表すものとする。欠陥の種類は、例えば、予期しない値が発生する欠陥、モデルの構造的な欠陥等である。
非特許文献2の直交表を用いた手法も非特許文献1の手法と同様に、欠陥の情報を用いずデータの組み合わせ数のみを高めるようにテストケースを生成する。よって、非特許文献2の手法では、欠陥が潜む可能性が高い部分の組み合わせのみを追加するようにテストケースを生成することは困難であるという課題がある。
さらに、特許文献1の手法も欠陥の情報の利用については開示しておらず、特許文献1の手法では欠陥箇所とその周辺を重点的にテストするテストケースの生成は困難であるという課題がある。
ソフトウェアの処理の流れを表すモデルを取得し、前記モデルから前記ソフトウェアの処理の経路を表すパスと、前記ソフトウェアの処理で用いられる因子とを抽出し、抽出した前記パスと前記因子とを含む解析結果を出力するフロー解析部と、
前記解析結果を記憶する解析結果記憶部と、
前記解析結果に含まれる前記パスと前記因子とを用いて、前記パスを分岐網羅するように前記因子に値を設定したテストケースを分岐網羅テストケースとして生成するテストケース生成部と、
前記テストケース生成部により生成された前記分岐網羅テストケースを用いて前記ソフトウェアのテストを実行し、実行した結果をテスト結果として出力するテスト実行部と、
前記テスト実行部により出力された前記テスト結果を用いて、テストケースの追加の要否を判定する結果判定部とを備える。
UMLとは、Unified Modeling Language、すなわち統一モデリング言語である。
ステートマシン図は、状態遷移図、ステートチャート、状態機械図と同義である。
フローは、ソフトウェアの動作を表す処理の流れであり、フローチャートの開始から終了まで、ステートマシン図の2状態間の遷移の並び等がフローに相当する。
パスは、フローを構成する一つ一つの処理の経路である。
モデルは、ソフトウェアの動作を示す抽象的な概念であり、特に以下の実施の形態では図を用いて動作を視覚的に表現したものを含めてモデルと呼ぶ。モデルには、フローチャートやステートマシン図等が含まれる。
分岐網羅とは、フロー上の全ての分岐を一度は通過するようにテストすることである。
条件網羅とは、フロー上の分岐に関する条件を全て一度はテストすることである。
経路網羅とは、フロー上の全ての分岐の組合せをテストすることである。経路網羅は最も強力な網羅基準となる。
因子は、テスト対象となる変数、パラメータ、状態等の処理に影響するデータである。
水準は、因子が取り得る値である。例えば、温度を因子とすると、水準は0度、10度等の値がある。
***構成の説明***
図1は、本実施の形態に係るテスト自動化装置100のブロック構成図である。
図1に示すように、テスト自動化装置100は、フロー解析部120、テストケース生成部130、テスト実行部140、結果判定部150を備える。また、テスト自動化装置100は、解析結果161を記憶する解析結果記憶部160、テストケース情報171を記憶するテストケース記憶部170、網羅率情報181を記憶する網羅率記憶部180、テスト結果情報191を記憶するテスト結果記憶部190を備える。
モデル200は、ソフトウェアの処理の流れを表すものであり、フローチャートやステートマシン図等のソフトウェアの動作を解析可能な図である。
の経路を表すパス121と、ソフトウェアの処理で用いられる因子122とを抽出する。フロー解析部120は、入力されたモデル200からパス121を抽出し、各パス121上の因子122を取得する。フロー解析部120は、パス121及び因子122を含む解析結果161を出力する。
解析結果記憶部160は、解析結果161を記憶する。
テスト実行部140は、テストケース生成部130により生成されたテストケース131を用いてテストを実行する。
テスト結果記憶部190は、テスト実行部140により出力されたテスト結果141をテスト結果情報191として記憶する。
結果判定部150は、テスト結果141を、欠陥の情報である欠陥情報と条件網羅率とに基づいて分析し、テストケースの追加の要否を判定する。結果判定部150は、テストケースの追加の要否の判定結果151をテストケース生成部130に出力する。
判定結果151がテストケースを追加しないことを示す場合、テスト自動化装置100は処理を終了する。
図2は、本実施の形態に係るテスト自動化装置100のテスト自動化方法、テスト自動化処理S100の動作を示すフロー図である。
図2を用いて、テスト自動化処理S100の動作について説明する。
フロー解析部120は、ソフトウェアの処理の流れを表すモデル200を取得し、モデル200からソフトウェアの処理の経路を表すパス121と、ソフトウェアの処理で用いられる因子122とを抽出し、パス121と因子122とを含む解析結果161を出力するフロー解析処理S110を実行する。
S111において、フロー解析部120は、モデル200からパス121を抽出する。
S112において、フロー解析部120は、抽出したパス121に基づいて、モデル200内の因子122を取得する。
図3の動作例では、フロー解析部120は、ソフトウェアのモデル200であるフローチャートからパス1、パス2、パス3をパス121として抽出している。パス121は、ソフトウェアが動作する際に辿るモデル200上の経路である。各パスには、ソフトウェアが行う処理内容、分岐における分岐の条件等の動作に関する情報が含まれる。動作に関する情報は、例えば、処理内容であれば「変数に値を格納する」、分岐の条件であれば「因子である温度が0度未満の場合と0度以上の場合で処理を分岐する」等の情報である。
図3の動作例では、フロー解析部120は、パス1の分岐1から変数a,cを因子122として取得する。また、フロー解析部120は、パス2の分岐2から変数bを因子122として取得する。フロー解析部120は、このような動作を各パスで行い、モデル200内の因子122をすべて取得する。
抽出したパスは、因子や動作に関する情報等をメンバとするようなクラスのオブジェクトや構造体等を配列やリスト等の一連のデータで表した形式として保持される。
なお、図3の動作例では、ソフトウェアのモデル200としてフローチャートを用いているが、上述したように、動作開始から目的の処理までのフローを解析可能であれば、ステートマシン図等、他のモデルでも本実施の形態は適用可能である。ステートマシン図の場合、フロー解析部120は、任意の始点と終点をテスト対象の動作として設定し、始点から終点までの全ての遷移を一度は通るようにパスを抽出する。
次に、テストケース生成部130は、解析結果161に含まれるパス121と因子122とを用いて、パス121を分岐網羅するように因子122に値を設定したテストケース131を分岐網羅テストケース1311として生成するテストケース生成処理S120を実行する。
テストケース生成部130は、現在の処理がフロー解析処理S110の直後の処理ならば、網羅基準は分岐網羅であると判定し、分岐網羅テストケース生成処理S122に進む。また、テストケース生成部130は、現在の処理が後述するテスト結果判定処理S140の直後の処理ならば、網羅基準は条件網羅であると判定し、追加テストケース生成処理S123に進む。
分岐網羅テストケース生成処理S122において、テストケース生成部130は、分岐網羅を網羅基準として、パスから取得した各因子についてパスの動作を満たすように水準を列挙し、分岐網羅テストケース1311を生成する。
追加テストケース生成処理S123において、テストケース生成部130は、条件網羅を網羅基準として、パスから取得した各因子についてパスの動作を満たすように水準を列挙し、条件網羅テストケース1312を生成する。
テストケース生成部130は、分岐の際に処理対象のパスを通るように因子の水準を設定する。例えば、パス1が処理対象のパスの場合、パス1の分岐1では変数aまたはcのいずれかが0以下であれば分岐1を通過できる。そこで、テストケース生成部130は、分岐1を通過するための条件を満たす値として(a,c)=(1,0)と設定する。テストケース生成部130は、このような処理をパス上の全ての分岐で実行する。また、テストケース生成部130は、分岐に表れない因子については任意の値xを設定することで、全ての因子の水準を列挙する。
図4を用いて、本実施の形態に係るテストケース生成部130による分岐網羅テストケース生成処理S122の動作について説明する。
図4は、図3に示すフロー解析処理S110で得られたパス1〜パス3に対し、因子である変数a,b,cの値を列挙し、テストケース131を生成する動作例である。図4では、テストケース生成部130が分岐網羅を網羅基準としてテストケース131を生成する動作例を示している。
まず、パス1のように分岐するための条件は変数aまたはcが0以下の場合であるが、パス1において分岐網羅するためには変数aまたはcのいずれか一方が0であれば良い。したがって、テストケース生成部130は、変数aのみを0、変数cを1としたテストケースを生成する。また、テストケース生成部130は、変数cについては任意の値xを設定する。よって、テストケース生成部130は、パス1をテストするテストケース1として(a,b,c)=(0,x,1)(xは任意の値)を生成する。
パス2では変数a,cはともに0より大でなければならないため、a=1,c=1となる。また、パス2では変数bに関してはb>0である。よって、テストケース生成部130は、パス2をテストするテストケース2として(a,b,c)=(1,1,1)を生成する。
パス3では変数a,cはともに0より大でなければならないため、a=1,c=1となる。また、パス3では変数bに関してはb≦0である。よって、テストケース生成部130は、パス3をテストするテストケース3として(a,b,c)=(1,0,1)を生成する。
以上のように、テストケース生成処理S120により、テストケース131として(a,b,c)=(0,x,1)(xは任意の値),(1,1,1),(1,0,1)が自動生成される。
以上で、分岐網羅テストケース生成処理S122の説明を終わる。
ただし、テストケース生成部130による水準の列挙の仕方は、使用する網羅基準によって変化する。網羅基準は以下の2通りであり、テストケース生成部130は、網羅基準における網羅率が、予め設定された閾値を満たすように自動で水準を列挙する。網羅基準における網羅率が満たすべき閾値の選び方は任意とする。
(1)フロー解析処理S110直後のテストケース生成処理S120時には分岐網羅を用いる。ただし、分岐網羅を用いる場合、各パスに分岐は存在しないので分岐網羅は必ず100%になる。このため、網羅基準が分岐網羅の場合の網羅率(以下、分岐網羅率とする)は考慮しなくてもよい。
(2)後述する結果判定処理S140後には条件網羅を用いる。分岐の条件をすべてテストしない場合、条件網羅を網羅基準とした場合の網羅率(以下、条件網羅率とする)は100%未満になる。例えば、分岐の条件が「a≦0、または、c≦0」であるとき、水準に境界値を用いる場合このパスを通るテストケースには、(a,c)=(0,1),(0,0),(1,0)の3通りがある。この中の2つを用いると条件網羅率は2/3≒67%となる。このため、条件網羅率が満たすべき閾値を50%とすると、テストケース生成部130は、条件網羅率を満たすために上記3通りのテストケースからランダムに2つ選択する。また、条件網羅率が満たすべき閾値を100%とすると、テストケース生成部130は、条件網羅率を満たすために上記3通りのテストケースの全てを選択する。
テストケース生成部130は、各パスをテストするテストケース131を生成した際の因子122の条件網羅率を網羅率情報181に記録しておく。
上記(1)の分岐網羅でテストケースを生成した場合、パス1の分岐1では3通りの(a,c)=(0,1),(0,0),(1,0)から1つを選択する。このため、分岐1における(a,c)の条件網羅率は、(1/3)×100≒33.33%となる。パス2の分岐1では(a,c)は(1,1)の1通りしかないため条件網羅率は100%となる。パス2の分岐2ではbはb=1の1通りしかないため条件網羅率は100%である。
このように、テストケース生成部130は、各パスにおける条件網羅率1811を網羅率情報181に記憶する。
網羅基準を条件網羅とした場合の追加テストケース生成処理S123の詳細については後述する。
次に、テスト実行部140は、テストケース131を用いてテストを実行するテスト実行処理S130を実行する。テスト実行部140は、実行の結果としてテスト結果141を出力する。
1311であるが、条件網羅テストケース1312であっても同様の処理である。
テスト実行部140によるテストの実行中に発生しうる欠陥の例として、「変数を用いた処理において設定した変数が予期しない値であった」、「変数を用いた処理の後に得られる結果が予期しないものであった」等、テストケースとして列挙された因子の水準に関するものや、無限ループ等、モデル200の構造に関するものが挙げられる。
図6の動作例では、パス1の実行処理において、パス1上に潜んでいた欠陥が、テスト実行中に検出された場合を示している。このとき、テスト実行部140は、検出された欠陥の情報をテスト結果141に記録する。
欠陥の情報には、欠陥発生個所を示す発生位置1411、欠陥の種別が設定される。発生位置1411には、どの条件分岐の後に検出されたか等の情報が設定される。図7に示すように、発生位置1411には、分岐1の後に検出された等の情報が設定される。また、欠陥の種別には、因子の水準に関するものか、モデルの構造に関するものか等の情報が設定される。図7に示すように、欠陥の種別には、無限ループ等の情報が設定される。
結果判定部150は、テスト実行処理S130により出力されたテスト結果141を用いて、テストケースの追加の要否を判定する結果判定処理S140を実行する。結果判定部150は、網羅率情報181とテスト結果141とに基づいて、テストケースの追加が必要か否かを判定する。
結果判定部150は、テスト結果141に含まれる発生位置1411に基づいて、因子122のうち欠陥に関わる因子を欠陥関連因子1221として抽出する。結果判定部150は、抽出した欠陥関連因子1221が条件網羅されたか否かを判定し、欠陥関連因子1221が条件網羅されていないと判定した場合にテストケースの追加を要すると判定する。
処理S140の動作例について詳しく説明する。
S141において、結果判定部150は、テスト結果141を参照し、1つ以上のパスに欠陥が検出されているか判定する。欠陥が検出されていれば、結果判定部150は、S142に進む。結果判定部150は、図7に示すテスト結果141の発生位置1411及び欠陥の種別に欠陥に関する情報が設定されている場合に、該当のパスに欠陥が検出されたと判定する。
S142において、結果判定部150は、列挙された因子のうち特定の因子、すなわち欠陥関連因子1221が条件網羅を満たしているか否かを判定する。特定の因子、すなわち欠陥関連因子1221とは、欠陥に関わる因子である、検出された欠陥に直接関係する因子の他、パス上における欠陥箇所の幾つか前後にある因子、および欠陥に関係している因子と相関がある有則な因子等を指すものとする。
欠陥関連因子1221が条件網羅を満たしていないと判定した場合、結果判定部150は、欠陥関連因子1221についてテストケースを追加すると判定し、テストケース生成処理S120に戻る。
次に、図2及び図7,8を用いて、追加テストケース生成処理S123について説明する。
ここでは、テストケース生成部130は、結果判定部150から出力された判定結果151を取得し、判定結果151から結果判定処理S140の後の処理であると判定し、追加テストケース生成処理S123に進む。
テストケース生成部130は、条件網羅するようにテストケースを列挙する。テストケース生成部130は、欠陥が発生したパスとしてパス1、特定の因子として変数a,cを判定結果151から取得する。
テストケース生成部130は、分岐網羅テストケース生成処理S122において既に変数a,cに対して(a,c)=(0,1)を与えている。これらは分岐網羅を基準に決定した値であるが、結果判定部150後の処理の場合、変数a,cは条件網羅を基準に決定される。条件網羅するためには、変数a,cの値がa=1およびc=0の場合と、a=c=0の場合とに関してもテストケースとする必要がある。したがって、テストケース生成部130は、(a,c)=(0,0),(1,0)となるテストケース4,5を生成し、元のテストケース情報171に追加する。
また、テストケース生成部130は、パス毎の条件網羅率を更新する。例えば、テストケース生成部130は、パス1における分岐1が条件網羅率33.33%だったものを100%に変更する。
以上で、追加テストケース生成処理S123についての説明を終わる。
以上で、本実施の形態に係るテスト自動化装置100のテスト自動化処理についての説明を終わる。
0%未満でもよい。
例えば閾値が80%の場合、追加テストケース生成処理S123では、テストケース生成部130は、まず条件網羅率80%を満たすように条件網羅してテストケースを決定してもよい。条件網羅率80%で決定したテストケースにおいても欠陥が発生した場合には、次の追加テストケース生成処理S123では、テストケース生成部130は、条件網羅率を80%から100%に上げてテストケースを生成してもよい。
具体的には、テストケース生成部130は、追加テストケース生成処理S123において、条件網羅率が閾値80%を満たすように条件網羅してテストケース4を決定する。そしてテスト実行部140によるテスト実行処理により欠陥が発生した場合、テストケース生成部130は、次の追加テストケース生成処理S123において、条件網羅率を80%から100%に上げてテストケース5を決定する。このように、テストケース生成部130は、段階的に条件網羅率を上げてテストケースを生成するようにしてもよい。
追加テストケース生成処理S123において、テストケース生成部130は、分岐1と分岐2の条件網羅率を共に100%として、テストケースを生成してもよい。あるいは、テストケース生成部130は、欠陥に関わる分岐2の因子の条件網羅率は上げて、正常に追加した分岐1の条件網羅率は上げずにテストケースを生成してもよい。すなわち、テストケース生成部130は、欠陥に関わる分岐2の条件網羅率は閾値の100%として変数bを決定し、正常に追加した分岐1の条件網羅率は網羅率情報181に設定されている33.33%のままで変数a,cを決定してもよい。あるいは、テストケース生成部130は、欠陥に関わる分岐2の因子の条件網羅率は閾値100%まで上げ、正常に追加した分岐1の条件網羅率は分岐2の条件網羅率100%より下げてテストケースを生成してもよい。
このように、条件網羅率を欠陥に関わる度合いにより操作することで、きめ細かくテストケースを決定することができ、効率的かつ効果的なソフトウェアのテストを行うことができる。
以上のように、本実施の形態に係るテスト自動化装置は、モデルからパスと因子を抽出するフロー解析部と、パスから分岐網羅するようにテストケースを生成するテストケース生成部を備える。また、テスト自動化装置は、生成されたテストケースを用いてテストを実行するテスト実行部と、欠陥の情報に基づきテストケースの追加の判断を行うテスト結果判定部とを備える。よって、本実施の形態に係るテスト自動化装置よれば、欠陥の情報に基づきテストケースの追加の判断を行うことができるので、効率的かつ効果的なテストを実行することができる。
で、テストケースの生成をより効率的に行うことができる。
本実施の形態では、主に、実施の形態1と異なる点について説明する。
本実施の形態において、実施の形態1で説明した構成と同様の構成には同一の符号を付し、その説明を省略する。
本実施の形態に係るテスト自動化装置100の構成は、実施の形態1で説明した図1と同様である。
図9は、本実施の形態に係るテスト自動化処理S100において結果判定処理S140後の追加テストケース生成処理S123aを説明する図である。
本実施の形態に係る追加テストケース生成処理S123aは、経路網羅を用いて追加のテストケースを生成する。
すなわち、結果判定部150は、テスト結果141に含まれる発生位置1411に基づいて、発生位置1411より前に実行される第1命令と発生位置1411より後に実行される第2命令とを結ぶ経路が経路網羅されたか否かを判定する。結果判定部150は、第1命令と第2命令とを結ぶ経路が経路網羅されていないと判定した場合にテストケースの追加を要すると判定する。なお、図9において命令1は第1命令の例であり、命令2は第2命令の例である。
テストケース生成部130は、各パスにおいて、実施の形態1で説明したように新たにテストケースを生成し、テストケース情報171に追加する。
以上で、追加テストケース生成処理S123aの説明を終わる。
以上のように、本実施の形態に係るテスト自動化装置によれば、テストケース生成部が経路網羅を用いることで動作の因果関係に基づいてテストケースを生成可能となり、効率的かつ効果的なソフトウェアのテストが実現する。
本実施の形態では、主に、実施の形態1,2と異なる点について説明する。
本実施の形態において、実施の形態1,2で説明した構成と同様の構成には同一の符号を付し、その説明を省略する。
テストする追加のテストケースを生成するものであった。本実施の形態では、欠陥の箇所のみならず、モデルの修正や処理の追加を行った箇所についても同様に、その周辺を重点的にテストするようにテストケースを生成する場合について説明する。これは、一般にモデルの修正やモデルへの処理の追加等、モデルの部分的な変更を行った場合、その周辺に欠陥が発生しやすいとされているためである。テストケースの生成は、修正または追加を行った処理の幾つか前後の命令の間を経路網羅することで実現する。
本実施の形態に係るテスト自動化装置100の構成は、実施の形態1で説明した図1と同様である。
なお、ソフトウェアのモデル200は、そのソフトウェアを修正追加した場合、追加修正した箇所を示す情報である変更位置1412が含まれているものとする。
図10は、本実施の形態に係るテスト自動化処理S100において結果判定処理S140a及び追加テストケース生成処理S123bを説明する図である。
結果判定処理S140aにおいて、結果判定部150は、各パスにおいて、欠陥の発生を検知すると共に修正追加を行った箇所があるか否かを検知する。
図10に示すように、モデル200の命令1から命令2の間の命令3に修正追加を行ったものとする。
結果判定部150は、モデル200に含まれる変更位置1412より前に実行される第3命令と変更位置1412より後に実行される第4命令とを結ぶ経路が経路網羅されたか否かを判定する。結果判定部150は、第3命令と第4命令とを結ぶ経路が経路網羅されていないと判定した場合にテストケースの追加を要すると判定する。図10において命令1は第3命令の例であり、命令2は第4命令の例である。
トケースを生成してもよい。あるいは、テストケース生成部130は、各パスにおいて、条件網羅を網羅基準としてテストケースを生成してもよい。
テストケース生成部130は、各パスにおいて、実施の形態1で説明したように新たにテストケースを生成し、テストケース情報171に追加する。
以上で、追加テストケース生成処理S123bの説明を終わる。
以上のように、本実施の形態に係るテスト自動化装置によれば、欠陥のみならず修正または追加の情報も用いることで、モデル上の欠陥が発生する可能性のある箇所についてテスト可能なテストケースが得られるため、効率的かつ効果的なソフトウェアのテストが実現する。
テスト自動化装置は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、入力装置907に接続されている。
ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、例えば、CPU、DSP(Digital Signal Processor)、GPUである。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。補助記憶装置902は、作成したソフトウェアのモデルやテスト自動化装置の機能を実現するプログラム、テスト結果の出力ファイルを保持しておく装置である。
メモリ903は、例えば、RAM(Random Access Memory)である。メモリ903は、プログラムの実行ファイルやテスト対象となるソフトウェアのモデル、プロセッサ901によるプログラムの実行結果である解析結果、テストケース、テスト結果及び網羅率を記憶する。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。
入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。
ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。入力装置907からの入力によりプログラムが実行される。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。出力結果をディスプレイ908により確認する。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。また、「処理」を「回路」又は「工程」又は「手順」又は「部」に読み替えてもよい。
「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
例えば、テストケース生成部と結果判定部とを1つの機能ブロックとしてもよい。テスト自動化装置の機能ブロックは、上記の実施の形態で説明した機能を実現することができれば、任意である。これらの機能ブロックを、他のどのような組み合わせ、あるいは任意のブロック構成でテスト自動化装置を構成しても構わない。
また、上述したように、テスト自動化装置は1つの装置でなく、複数の装置から構成さ
れたテスト自動化システムでもよい。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
Claims (10)
- ソフトウェアの処理の流れを表すモデルを取得し、前記モデルから前記ソフトウェアの処理の経路を表すパスと、前記ソフトウェアの処理で用いられる因子とを抽出し、抽出した前記パスと前記因子とを含む解析結果を出力するフロー解析部と、
前記解析結果を記憶する解析結果記憶部と、
前記解析結果に含まれる前記パスと前記因子とを用いて、前記パスを分岐網羅するように前記因子に値を設定したテストケースを分岐網羅テストケースとして生成するテストケース生成部と、
前記テストケース生成部により生成された前記分岐網羅テストケースを用いて前記ソフトウェアのテストを実行し、実行した結果をテスト結果として出力するテスト実行部と、
前記テスト実行部により出力された前記テスト結果を用いて、テストケースの追加の要否を判定する結果判定部と
を備えるテスト自動化装置。 - 前記テスト実行部は、
前記分岐網羅テストケースを用いた前記ソフトウェアのテストを実行中に欠陥が発生した場合、前記テスト結果に前記欠陥が発生した発生位置を含め、
前記結果判定部は、
前記テスト結果に含まれる前記発生位置に基づいて、前記因子のうち前記欠陥に関わる因子を欠陥関連因子として抽出し、抽出した前記欠陥関連因子が条件網羅されたか否かを判定し、前記欠陥関連因子が条件網羅されていないと判定した場合に前記テストケースの追加を要すると判定する請求項1に記載のテスト自動化装置。 - 前記テストケース生成部は、
前記結果判定部により前記テストケースの追加を要すると判定された場合、前記欠陥関連因子の条件網羅率が閾値を満たすように前記欠陥関連因子に値を設定した条件網羅テストケースを生成する請求項2に記載のテスト自動化装置。 - 前記テストケース生成部は、
前記分岐網羅テストケースを生成すると共に、前記因子の条件網羅率を記憶装置に記憶し、
前記結果判定部は、
前記因子の条件網羅率に基づいて、前記因子のうちの前記欠陥関連因子が条件網羅されているか否かを判定する請求項3に記載のテスト自動化装置。 - 前記結果判定部は、
前記テスト結果に含まれる前記発生位置に基づいて、前記発生位置より前に実行される第1命令と前記発生位置より後に実行される第2命令とを結ぶ経路が経路網羅されたか否かを判定し、前記第1命令と前記第2命令とを結ぶ経路が経路網羅されていないと判定した場合に前記テストケースの追加を要すると判定する請求項2から4のいずれか1項に記載のテスト自動化装置。 - 前記テストケース生成部は、
前記結果判定部により前記第1命令と前記第2命令とを結ぶ経路が経路網羅されていないと判定された場合、前記第1命令と前記第2命令とを結ぶ経路を経路網羅することにより命令間パスを抽出すると共に、前記命令間パスにおいて用いられる命令間因子を抽出し、前記命令間パスと前記命令間因子とを前記パスと前記因子として前記解析結果に含める請求項5に記載のテスト自動化装置。 - 前記フロー解析部は、
前記ソフトウェアが変更された位置を変更位置として含む前記モデルを取得し、
前記結果判定部は、
前記モデルに含まれる前記変更位置より前に実行される第3命令と前記発生位置より後に実行される第4命令とを結ぶ経路が経路網羅されたか否かを判定し、前記第3命令と前記第4命令とを結ぶ経路が経路網羅されていないと判定した場合に前記テストケースの追加を要すると判定する請求項6に記載のテスト自動化装置。 - 前記テストケース生成部は、
前記結果判定部により前記第3命令と前記第4命令とを結ぶ経路が経路網羅されていないと判定された場合、前記第3命令と前記第4命令とを結ぶ経路を経路網羅することにより抽出されるパスを前記命令間パスとする請求項7に記載のテスト自動化装置。 - フロー解析部が、ソフトウェアの処理の流れを表すモデルを取得し、前記モデルから前記ソフトウェアの処理の経路を表すパスと、前記ソフトウェアの処理で用いられる因子とを抽出し、抽出した前記パスと前記因子とを含む解析結果を出力し、
テストケース生成部が、前記解析結果に含まれる前記パスと前記因子とを用いて、前記パスを分岐網羅するように前記因子に値を設定したテストケースを分岐網羅テストケースとして生成し、
テスト実行部が、前記テストケース生成部により生成された前記分岐網羅テストケースを用いて前記ソフトウェアのテストを実行し、実行した結果をテスト結果として出力し、
結果判定部が、前記テスト実行部により出力された前記テスト結果を用いて、テストケースの追加の要否を判定するテスト自動化方法。 - ソフトウェアの処理の流れを表すモデルを取得し、前記モデルから前記ソフトウェアの処理の経路を表すパスと、前記ソフトウェアの処理で用いられる因子とを抽出し、抽出した前記パスと前記因子とを含む解析結果を出力するフロー解析処理と、
前記解析結果に含まれる前記パスと前記因子とを用いて、前記パスを分岐網羅するように前記因子に値を設定したテストケースを分岐網羅テストケースとして生成するテストケース生成処理と、
前記テストケース生成処理により生成された前記分岐網羅テストケースを用いて前記ソフトウェアのテストを実行し、実行した結果をテスト結果として出力するテスト実行処理と、
前記テスト実行処理により出力された前記テスト結果を用いて、テストケースの追加の要否を判定する結果判定処理と
をコンピュータに実行させるテスト自動化プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015086281 | 2015-04-20 | ||
JP2015086281 | 2015-04-20 | ||
PCT/JP2016/060213 WO2016170937A1 (ja) | 2015-04-20 | 2016-03-29 | テスト自動化装置、テスト自動化方法及びテスト自動化プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6143993B2 true JP6143993B2 (ja) | 2017-06-07 |
JPWO2016170937A1 JPWO2016170937A1 (ja) | 2017-06-29 |
Family
ID=57143008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017514040A Active JP6143993B2 (ja) | 2015-04-20 | 2016-03-29 | テスト自動化装置、テスト自動化方法及びテスト自動化プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6143993B2 (ja) |
WO (1) | WO2016170937A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828911A (zh) * | 2018-12-26 | 2019-05-31 | 北京仁科互动网络技术有限公司 | 一种测试方法和装置 |
EP3929751B1 (en) | 2019-03-25 | 2023-03-01 | Mitsubishi Electric Corporation | Test case generation device, test case generation method, and test case generation program |
CN112685283A (zh) * | 2019-10-17 | 2021-04-20 | 拉扎斯网络科技(上海)有限公司 | 测试校验方法、装置、电子设备及计算机可读存储介质 |
CN112685322B (zh) * | 2021-01-12 | 2022-10-04 | 武汉思普崚技术有限公司 | 一种客制化测试方法、装置及系统 |
CN113010424B (zh) * | 2021-03-17 | 2024-04-02 | 平安壹钱包电子商务有限公司 | 接口自动化测试处理方法、系统、计算机设备与存储介质 |
CN114615695B (zh) * | 2022-03-18 | 2023-07-18 | 机械工业仪器仪表综合技术经济研究所 | 一种5g工业终端模拟装置及测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013077124A (ja) * | 2011-09-30 | 2013-04-25 | Hitachi Ltd | ソフトウェアテストケース生成装置 |
-
2016
- 2016-03-29 JP JP2017514040A patent/JP6143993B2/ja active Active
- 2016-03-29 WO PCT/JP2016/060213 patent/WO2016170937A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2016170937A1 (ja) | 2016-10-27 |
JPWO2016170937A1 (ja) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6143993B2 (ja) | テスト自動化装置、テスト自動化方法及びテスト自動化プログラム | |
US20150007148A1 (en) | Identifying Test Cases Based on Changed Test Code | |
JP6897524B2 (ja) | ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム | |
JP2016115175A (ja) | ソフトウェアテスト装置およびソフトウェアテストプログラム | |
JP6142705B2 (ja) | オブジェクト指向言語のための記号テストドライバの反復生成 | |
JP2009294846A (ja) | テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 | |
JP7077909B2 (ja) | デッドコード解析プログラム、デッドコード解析方法及びデッドコード解析装置 | |
JP2017167984A (ja) | 情報処理装置、情報処理プログラムおよび検査システム | |
JP2009277110A (ja) | ソフトウェア試験及び開発支援装置並びに当該装置用プログラム | |
JP7215501B2 (ja) | 依存関係検出装置および依存関係検出方法 | |
US20090222696A1 (en) | System and method for detecting non-reproducible pseudo-random test cases | |
US9734458B2 (en) | Predicting outcome based on input | |
JP2009134360A (ja) | モデル検査システム、モデル検査方法およびモデル検査用プログラム | |
JPWO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JPWO2020157795A1 (ja) | 試験装置、試験方法および試験プログラム | |
KR101166128B1 (ko) | 소프트웨어 테스트 장치 및 그 방법 | |
JP5755861B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP5595304B2 (ja) | プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム | |
US20150026523A1 (en) | Debugging method and computer program product | |
JP6320269B2 (ja) | ソフトウェア試験支援装置およびソフトウェア試験支援プログラム | |
JP2021117666A (ja) | コード検査ツール、コード検査方法 | |
JP2011180850A (ja) | モデル生成装置、モデル生成方法およびモデル生成プログラム | |
Reungsinkonkarn et al. | Bug detection using particle swarm optimization with search space reduction | |
JP2014232428A (ja) | テスト実行支援装置、テストシステム、テスト実行方法、及び、テスト実行支援プログラム | |
US20170220450A1 (en) | Analytic method and analyzing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170313 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170313 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170328 |
|
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: 20170411 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6143993 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |