JP6289778B2 - テストケース生成装置及びテストケース生成プログラム - Google Patents

テストケース生成装置及びテストケース生成プログラム Download PDF

Info

Publication number
JP6289778B2
JP6289778B2 JP2017558562A JP2017558562A JP6289778B2 JP 6289778 B2 JP6289778 B2 JP 6289778B2 JP 2017558562 A JP2017558562 A JP 2017558562A JP 2017558562 A JP2017558562 A JP 2017558562A JP 6289778 B2 JP6289778 B2 JP 6289778B2
Authority
JP
Japan
Prior art keywords
test case
test
input
generated
pattern
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
Application number
JP2017558562A
Other languages
English (en)
Other versions
JPWO2017145300A1 (ja
Inventor
誠 磯田
誠 磯田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6289778B2 publication Critical patent/JP6289778B2/ja
Publication of JPWO2017145300A1 publication Critical patent/JPWO2017145300A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

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

この発明は、システム開発におけるテストケースを生成する技術に関する。
制御装置に搭載される制御ソフトウェアは、多機能化と付加価値の向上とに応えるための制御機能の電子化により、大規模化と複雑化とが急速に進んでいる。さらに、制御ソフトウェアは、派生機種と仕向け地の違いとによるバリエーションが増加していくことが見込まれる。このような状況下で収益力を維持及び強化するには、制御ソフトウェアの開発の生産性向上に取り組む必要がある。
制御装置を一から新規開発することは稀であり、既存の制御装置を流用して機能改良することが多い。そのため、制御ソフトウェアの開発に対して従来の開発プロセスを適用した場合、試験工程でのリソースについての課題が顕在化している。
具体的には、機能変更に対する結合試験が十分かの判断が難しく、システム試験に作業量を先送りするという課題と、機種毎に機能変更及び追加することが多いソフトウェア部品についての単体試験の作業量が膨らむという課題とがある。この課題が、開発コストを押し上げる主要因になっている。
上記課題解決の前提として、試験工程に対する要求事項を明確にする必要がある。
試験工程に対する要求事項は、機能安全規格を参考として、以下の(要求事項1)(要求事項2)を同時に保証することとする。(要求事項1)制御ソフトウェアの外部的な機能に基づく網羅を保証すること。(要求事項2)制御ソフトウェアの内部的な構造に基づく網羅を保証すること。
機能安全規格は、具体例としては、航空分野のDO−178Bと自動車分野のISO26262とがある。
従来の試験技術としては、(要求事項1)の機能に基づく網羅と(要求事項2)の構造に基づく網羅とを別々に保証していた(特許文献1、非特許文献1参照)。
特開2008−276556号公報
橋本祐介, 中島 震, "ソフトウェアモデル検査とテストケース生成の統合ツールチェイン", ソフトウェアエンジニアリングシンポジウム2011, September 2011.
従来の試験技術では、(要求事項1)の機能に基づく網羅を保証した上で、(要求事項2)の構造に基づく網羅を保証できなかった部分を人手作業で補う。そのため、(要求事項2)の構造に基づく網羅について、作業量が膨らむとともに、作業もれをなくすことができず(要求事項2)が未達成となる恐れがある。
この発明は、(要求事項1)の機能に基づく網羅と、(要求事項2)の構造に基づく網羅とを同時に保証可能なテストケースを特定することを目的とする。
この発明に係るテストケース生成装置は、
対象システムの入力信号についての複数の入力条件と、前記対象システムの出力信号についての複数の出力条件と、ソフトウェアの構造に基づく試験手法によって処理が到達したことが確認される、前記対象システムにおける複数の到達点との組合せを示す組合せパターンを生成するパターン生成部と、
前記パターン生成部によって生成された前記組合せパターンが示す各組合せを対象パターンとして、前記対象パターンにおける前記入力条件及び前記出力条件のペアである入出力条件と前記到達点とを同時に確認可能な前記複数の入力信号の値であるテストケースを生成可能か否かを判定することにより、前記複数の入力条件それぞれと、前記複数の出力条件それぞれと、前記複数の到達点それぞれとを確認可能な前記テストケースの組を特定するテストケース生成部と
を備える。
この発明は、入力条件と出力条件と到達点との組合せについて、入出力条件と到達点とを同時に確認可能なテストケースを生成可能か否かを判定する。これにより、(要求事項1)の機能に基づく網羅と、(要求事項2)の構造に基づく網羅とを同時に保証可能なテストケースを特定することが可能である。
実施の形態1に係るテストケース生成装置10の構成図。 実施の形態1に係る対象システム30の典型的な構成例を示す図。 実施の形態1に係るテストケース生成装置10の動作を示すフローチャート。 実施の形態1に係る入力条件31及び出力条件32の説明図。 実施の形態1に係る実装物125の説明図。 実施の形態1に係る解析用実装物33の説明図。 実施の形態1に係る組合せパターンの説明図。 実施の形態1に係る条件付実装物34の説明図。 実施の形態1に係る網羅情報35の説明図。 実施の形態1に係るテストケース36の説明図。 実施の形態1に係るステップS5のテストケース生成処理の説明図。 実施の形態1に係るステップS5のテストケース生成処理の具体例を示す図。 実施の形態1に係る構造に基づく試験手法の具体例の説明図。 実施の形態1に係る機能に基づく試験手法(フロー)の具体例の説明図。 実施の形態1に係る機能に基づく試験手法(値)の具体例の説明図。 変形例1に係るテストケース生成装置10の構成図。 実施の形態2に係る繰り返しシステム37の説明図。
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係るテストケース生成装置10の構成を説明する。
テストケース生成装置10は、対象システム30のテストケース36を生成するためのコンピュータである。
テストケース生成装置10は、プロセッサ11と、記憶装置12と、通信インタフェース13と、入出力インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体的には、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
記憶装置12は、メモリ121と、ストレージ122とを備える。メモリ121は、具体的には、RAM(Random Access Memory)である。ストレージ122は、具体的には、HDD(Hard Disk Drive)である。また、ストレージ122は、SD(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。
通信インタフェース13は、外部のサーバといった装置を接続する装置である。通信インタフェース13は、具体例としては、USB(Universal Serial Bus)、IEEE1394の接続端子である。
入出力インタフェース14は、キーボード、マウスといった入力装置と、ディスプレイといった表示装置とを接続する装置である。入出力インタフェース14は、具体例としては、USB、HDMI(登録商標、High−Definition Multimedia Interface)の接続端子である。
テストケース生成装置10は、機能構成要素として、条件抽出部21と、到達信号挿入部22と、パターン生成部23と、テストケース生成部24とを備える。条件抽出部21と、到達信号挿入部22と、パターン生成部23と、テストケース生成部24との各部の機能はソフトウェアにより実現される。
記憶装置12のストレージ122には、テストケース生成装置10の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ121に読み込まれ、プロセッサ11によって実行される。これにより、テストケース生成装置10の各部の機能が実現される。
記憶装置12のストレージ122は、対象システム30の機能仕様を記憶した仕様記憶部123を実現する。
仕様記憶部123には、信号値条件124と、実装物125といったものが記憶される。信号値条件124は、対象システム30の外部的な仕様における、対象システム30の複数の入力信号それぞれについての入力条件と、対象システム30の複数の出力信号それぞれについての出力条件とを示す。入力条件及び出力条件は、信号値の範囲と信号値の境界値といった条件である。実装物125は、対象システム30を実現したプログラムコード、対象システム30の処理の流れを表した処理モデルといった、少なくとも対象システム30の処理の流れが特定されたものである。
プロセッサ11によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、メモリ121、又は、プロセッサ11内のレジスタ又はキャッシュメモリに記憶される。以下の説明では、プロセッサ11によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、メモリ121に記憶されるものとして説明する。
プロセッサ11によって実現される各機能を実現するプログラムは、記憶装置12に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体に記憶されてもよい。
図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。
図2を参照して、実施の形態1に係る対象システム30の典型的な構成を説明する。なお、図2に示された構成は典型的なものであり、対象システム30の構成は、これに限られるものではない。
対象システム30は、制御ソフトウェアとハードウェアとで構成される制御装置と、制御対象とが、デジタル信号線またはアナログ信号線で接続されて構成される。制御ソフトウェアは、機能を実現するアプリケーションと、通信及びスケジューラといった機能動作の仕組みを実現する実行環境と、制御対象を制御するためのドライバとのレイヤで構成される。ハードウェアは、マイクロコンピュータと、スケジューラと等で構成される。制御対象は、センサ及びアクチュエータといったIO(Input/Output)デバイスと、外部装置といった装置である。
アプリケーションは、周期的に指定順序で起動され、内部に持った状態変数、カウンタ及びバッファの値等に依存して処理内容が変更される複数の制御処理で構成される。実行環境とドライバとは、レジスタアクセスといったI/O処理と、制御処理よりも優先度が高い割込み処理、タイマ処理と、通信処理とで構成される。対象システム30では、アプリケーションと実行環境及びドライバとの間でデータがやり取りされながら、時々刻々と制御演算が進められる。
***動作の説明***
図3から図15を参照して、実施の形態1に係るテストケース生成装置10の動作を説明する。
実施の形態1に係るテストケース生成装置10の動作は、実施の形態1に係るテストケース生成方法に相当する。また、実施の形態1に係るテストケース生成装置10の動作は、実施の形態1に係るテストケース生成プログラムの処理に相当する。
図3から図10を参照して、実施の形態1に係るテストケース生成装置10の全体的な動作を説明する。
(図3のステップS1:条件抽出処理)
条件抽出部21は、ストレージ122の仕様記憶部123に記憶された信号値条件124を読み出し、図4に示すように、信号値条件124から、各入力信号についての入力条件31と、各出力信号についての出力条件32とを抽出する。これにより、複数の入力条件31と、複数の出力条件32とが抽出される。図4では、入力信号1〜入力信号nそれぞれについての入力条件31である入力条件1〜入力条件nと、出力信号1〜出力信号mそれぞれについての出力条件32である出力条件1〜出力条件mとが抽出されている。条件抽出部21は、抽出された複数の入力条件31及び複数の出力条件32をメモリ121に書き込む。
各入力条件及び各出力条件は、ビットと、論理値と、値の列挙と、値の範囲との条件、又は、条件の組合せによって規定される。ビットは、入力信号又は出力信号が取り得るビットパターンの有効値及び無効値を示す。論理値は、入力信号又は出力信号が取り得る真偽値を示す。値の列挙は、入力信号又は出力信号が取り得る離散的な有効値及び無効値を示す。値の範囲は、入力信号又は出力信号が取り得る連続的な有効値及び無効値を示す。条件の組合せは、ビットと、論理値と、値の列挙と、値の範囲との少なくともいずれかが論理演算子で結合される。
なお、入力条件31及び出力条件32は、ソフトウェアの機能に基づく試験手法の確認ポイントに対応する。
(図3のステップS2:到達信号挿入処理)
到達信号挿入部22は、ストレージ122の仕様記憶部123に記憶された実装物125を読み出し、対象システム30における複数の到達点に到達信号を挿入して、解析用実装物33を生成する。到達信号挿入部22は、生成された解析用実装物33をメモリ121に書き込む。
到達点とは、ソフトウェアの構造に基づく試験手法によって処理が到達したことが確認され、内部構造の実行可否を解析するための確認ポイントのことである。具体例としては、到達点とは、ソフトウェアの構造に基づく試験手法が分岐網羅であれば、実装物125における全ての分岐先である。実装物125が、図5に示す処理モデルである場合、解析用実装物33は、図6に示すように、実装物125の全ての分岐先に到達信号が埋め込まれたものである。
なお、図5では、対象システム30には、演算と分岐及び合流とだけが含まれているが、他にもループといった処理が含まれる場合もある。
(図3のステップS3:パターン生成処理)
パターン生成部23は、ステップS1で抽出された複数の入力条件と、ステップS1で抽出された複数の出力条件と、ステップS2で生成された解析用実装物33とをメモリ121から読み出す。パターン生成部23は、複数の入力条件と、複数の出力条件と、解析用実装物33に埋め込まれた複数の到達信号に対応する複数の到達点との組合せを示す組合せパターンを生成する。パターン生成部23は、生成された組合せパターンをメモリ121に書き込む。
具体例としては、図4に示す入力条件31及び出力条件32が読み出され、図6に示す解析用実装物33が読み出された場合、パターン生成部23は図7に示す組合せパターンを生成する。その結果、組合せパターンが示す組合せとして、“条件×到達”に添え字として示された1.1.A〜n.m.Zが生成される。
パターン生成部23は、生成された各組合せを対象パターンとして、対象パターンにおける入力条件と、出力条件とを解析用実装物33に埋め込むとともに、対象パターンにおける到達点に対応する到達信号だけを残した条件付実装物34を生成する。パターン生成部23は、生成された各組合せについての条件付実装物34をメモリ121に書き込む。
具体例としては、パターン生成部23は、対象パターンが図7に示す組合せ1.1.Aであれば、図8に示すように、入力条件1と、出力条件1と、到達信号Aとが埋め込まれた条件付実装物34を生成する。
(図3のステップS4:テストケース生成処理)
テストケース生成部24は、ステップS3で生成された各組合せを対象パターンとする。そして、テストケース生成部24は、対象パターンにおける入力条件及び出力条件のペアである入出力条件と到達点とを同時に確認可能な複数の入力条件31及び複数の出力条件32の値であるテストケース36を生成可能か否かを判定する。これにより、テストケース生成部24は、ステップS1で抽出された複数の入力条件31それぞれと、ステップS1で抽出された複数の出力条件32それぞれと、ステップS2で挿入された複数の到達信号に対応する複数の到達点それぞれとを確認可能なテストケース36の組を特定する。
テストケース生成部24は、図9に示すように、テストケース36を生成可能か否かを判定した結果に応じて、組合せが仕様範囲内と仕様想定外と実行不能とのいずれであるかを示す網羅情報35を生成する。
また、テストケース生成部24は、生成可能と判定された組合せから、複数の入力条件31それぞれと、複数の出力条件32それぞれと、複数の到達点それぞれとを確認可能な組合せを抽出して、抽出された組合せについてテストケース36を生成する。テストケース36は、時間軸上の入力信号列及び出力信号列である。具体例としては、テストケース36は、図10に示すように、時間ステップ毎の、入力信号1〜入力信号nの値と、出力信号1〜出力信号mの値とである。図10の各テストケース36の例が、組合せパターンが示すいずれかの組合せに対応している。
図11を参照して、実施の形態1に係るステップS4のテストケース生成処理を説明する。
図11に示す処理は、各組合せを対象パターンとして実行される。図11に示す処理が実行されることにより、試験目的及び確認内容に示されるように、対象パターンについての、要求の実現度合いと、期待通りの動作をしているかとが特定される。
要求の実現度合いとしては、各組合せが仕様範囲内と仕様想定外と実行不能とのいずれであるかが特定される。仕様範囲内とは、構造網羅を解析した結果、実行可能であり、意図した要求事項を実現した場合である。仕様想定外とは、構造網羅を解析した結果、実行されず、意図しない要求事項が混入した場合である。実行不能とは、構造網羅を解析した結果、実行不可能な場合である。
期待通りの動作をしているかとしては、成功と失敗と要確認とのいずれであるかが特定される。成功とは、入力信号として特定の値を与えた場合の出力信号の値が期待値と一致した場合である。要確認とは、入力信号として特定の値を与えた場合の出力信号の値が期待値と不一致の場合であり、かつ、テストケースの対象となる部分が機能変更部分の場合である。失敗とは、入力信号として特定の値を与えた場合の出力信号の値が期待値と不一致の場合であり、かつ、テストケースの対象となる部分が機能変更部分に関さず実装変更部分に関するものである場合である。
図11に示す処理は、手法1:構造に基づく試験手法と、手法2:機能と構造に基づく試験手法(緩い)と、手法3:機能と構造に基づく試験手法(厳しい)と、手法4:機能に基づく試験手法(フロー)と、手法5:機能に基づく試験手法(値)とが用いられる。
手法1:構造に基づく試験手法とは、ソフトウェアの内部的な構造の実行可否を基準にする方法である。手法1は、具体例としては、分岐網羅、MC/DC(Modified Condition/Decision Coverage)である。なお、手法1は、構造に基づく試験手法を1つだけではなく、複数用いてもよい。
手法2:機能と構造に基づく試験手法(緩い)とは、ソフトウェアの機能に基づく試験手法とソフトウェアの構造に基づく試験手法との両方の基準を同時に満たす方法のうち、機能に関する基準が相対的に緩いものである。手法2は、具体例としては、同値分割と分岐網羅との組合せである。なお、手法1は、機能及び構造に基づく試験手法をそれぞれ1つだけではなく、複数用いてもよい。
手法3:機能と構造に基づく試験手法(厳しい)とは、ソフトウェアの機能に基づく試験手法とソフトウェアの構造に基づく試験手法との両方の基準を同時に満たす方法のうち、機能に関する基準が相対的に厳しいものである。つまり、第2手法よりも基準が厳しいソフトウェアの機能に基づく試験手法と、ソフトウェアの構造に基づく試験手法との両方の基準を同時に満たす方法である。手法3は、具体例としては、境界値分析と分岐網羅との組合せである。なお、手法1は、機能及び構造に基づく試験手法をそれぞれ1つだけではなく、複数用いてもよい。
手法4:機能に基づく試験手法(フロー)とは、ソフトウェアの機能に基づく試験手法のうち、外部的な機能仕様において、対象システム30の処理フローに影響を与える入力値を基準としたものである。手法4は、具体例としては、代表値組合せ(境界値)である。なお、手法1は、機能に基づく試験手法を1つだけではなく、複数用いてもよい。
手法5:機能に基づく試験手法(値)とは、ソフトウェアの機能に基づく試験手法のうち、外部的な機能仕様において、出力信号の値と期待値との一致を基準にする方法である。手法5は、具体例としては、Back−to−Backテストである。
したがって、図11に示す処理は、図12に示すように具体化することが可能である。図12では、手法1を分岐網羅とし、手法2を同値分割と分岐網羅との組合せとし、手法3を同値・境界値と分岐網羅との組合せとし、手法4を代表値組合せ(境界値)とし、手法5をBack−to−Backテストとしている。なお、同値・境界値は、同値分割と境界値分析とを組み合わせた方法である。手法3では、分岐網羅を同時に満たすには、代表値組合せ(境界値)では厳しすぎるため、同値も含めて条件を弱めている。
なお、ここで用いられるソフトウェアの構造に基づく試験手法は、ステップS2で用いられる試験手法と同じであることが望ましい。
手法1〜3の構造に基づく試験手法の具体例である分岐網羅の判断条件は、図13に示す通りである。
手法2〜4の機能に基づく試験手法(フロー)の具体例である同値分割、境界値分析、原因結果グラフ、代表値組合せ(境界値)の判断条件は、図14に示す通りである。なお、同値分割には、入力条件の内容及び出力条件の内容が3行あるが、同じ行に記載された入力条件の内容と出力条件の内容とが対応していることを意味する。つまり、一番上の行であれば、全ての入力信号が有効範囲である場合に、全ての出力信号が有効範囲であるという条件になる。同値分割を用いる場合、3行それぞれの条件に対応するテストケース36が生成できる場合に生成可能と判定され、1行の条件についてでもテストケース36が生成できない場合には、生成不可能と判定される。境界値分析についても、同値分割の場合と同様である。
手法5の機能に基づく試験手法(値)の具体例であるBack−to−Backテストの判断条件は図15に示す通りである。なお、ベースラインとは、レビュー又は試験等の結果が承認され、構成管理された対象システム30のバージョンのことである。そのため、機能変更部分を除いて試験の対象となるバージョンと、ベースラインとの出力信号の値は一致することが原則である。また、入出力条件は、機能に基づく試験手法(フロー)と同様となっているが、これは手法4における入出力条件と同じ条件が適用されるということである。
以下の説明では、手法1から手法5が順に実行されるという流れで説明する。しかし、これらの手法の実行順序はこれに限らず、図11及び図12で矢印によって示された手法間の依存関係を満たしていれば、どのような順序で実行されてもよい。
まず、テストケース生成部24は、手法1に対してテストケース36を生成可能であるか否かを判定する。
図12に示す例であれば、テストケース生成部24は、分岐網羅の条件を満たすテストケース36を生成可能であるか否かを判定する。具体的には、テストケース生成部24は、対象パターンにおける入力条件の条件下で、対象パターンにおける到達点を通るテストケース36を生成する。テストケース生成部24は、テストケース36が生成できれば、生成可能と判定し、生成できなければ、生成不可と判定する。テストケース生成部24は、対象パターンにおける入力条件の条件下で、テストケース36として生成し、全ての到達点について通るか否か判定することにより、テストケース36を生成可能か否か判定できる。
テストケース生成部24は、テストケース36を生成不可な場合には、要求の実現度合いを実行不能と判定する。
続いて、テストケース生成部24は、手法1に対してテストケース36を生成可能な場合、手法2に対してテストケース36を生成可能か否か判定する。
図12に示す例であれば、テストケース生成部24は、同値分割と分岐網羅との両方の条件を同時に満たすテストケース36を生成可能であるか否かを判定する。具体的には、テストケース生成部24は、対象パターンにおける入力条件及び出力条件の下で、図14に示す同値分割の3行それぞれを満たし、かつ、対象パターンにおける到達点を通るテストケース36を生成する。テストケース生成部24は、テストケース36が生成できれば、生成可能と判定し、生成できなければ、生成不可と判定する。テストケース生成部24は、対象パターンにおける入力条件及び出力条件の下で、図14に示す同値分割の各行を満たすテストケース36を生成し、全ての到達点について通るか否か判定することにより、テストケース36を生成可能か否か判定できる。
テストケース生成部24は、テストケース36を生成不可な場合には、要求の実現度合いを仕様想定外と判定する。
続いて、テストケース生成部24は、手法2に対してテストケース36を生成可能な場合、手法3に対してテストケース36を生成可能か否か判定する。
図12に示す例であれば、境界値分析と分岐網羅との両方の条件を同時に満たすテストケース36を生成可能であるか否かを判定する。具体的には、テストケース生成部24は、対象パターンにおける入力条件及び出力条件の下で、図14に示す境界値分析の4行それぞれを満たし、かつ、対象パターンにおける到達点を通るテストケース36を生成する。テストケース生成部24は、テストケース36が生成できれば、生成可能と判定し、生成できなければ、生成不可と判定する。テストケース生成部24は、対象パターンにおける入力条件及び出力条件の下で、図14に示す境界値分析の各行を満たすテストケース36を生成し、全ての到達点について通るか否か判定することにより、テストケース36を生成可能か否か判定できる。
テストケース生成部24は、テストケース36を生成不可な場合には、要求の実現度合いを仕様想定外と判定する。
続いて、テストケース生成部24は、手法3に対してテストケース36を生成可能な場合、手法4に対してテストケース36を生成可能か否か判定する。なお、手法4は、必要に応じて補完的に行われるものであり、省略することも可能である。
図12に示す例であれば、代表値組合せ(境界値)を満たすテストケース36を生成可能であるか否かを判定する。具体的には、テストケース生成部24は、対象パターンにおける入力条件及び出力条件の下で、図14に示す代表値組合せ(境界値)を満たすテストケース36を生成する。テストケース生成部24は、テストケース36が生成できれば、生成可能と判定し、生成できなければ、生成不可と判定する。テストケース生成部24は、対象パターンにおける入力条件及び出力条件の下で、図14に示す代表値組合せ(境界値)を満たすテストケース36を生成する処理を必要に応じて補完的に行うことにより、テストケース36を生成可能か否か判定できる。
続いて、テストケース生成部24は、手法4に対してテストケース36を生成可能な場合、手法5に対して手法4で生成されたテストケース36を入力として、出力信号の値が期待値と一致するか否か判定する。
図12に示す例であれば、テストケース生成部24は、手法4で生成されたテストケース36の入力信号を入力として、Back−to−Backテストを実行して、出力信号の値が期待値と一致するか否か判定する。
テストケース生成部24は、出力信号の値が期待値と一致する場合には、期待通りに動作しているかを成功と判定する。一方、テストケース生成部24は、出力信号の値が期待値と一致しない場合には、テストケースの対象となる部分が機能変更部分のときは、期待通りに動作しているかを要確認とし、テストケースの対象となる部分が機能変更部分でなく実装変更部分のときには、期待通りに動作しているかを失敗とする。
テストケース生成部24は、以上の手法4に対して生成されたテストケース36から、入力条件31それぞれと、出力条件32それぞれと、到達点それぞれとに対応する少なくとも1つのテストケース36を抽出する。なお、手法4を省略した場合には、テストケース生成部24は、手法3に対して生成されたテストケース36からテストケース36を抽出する。これにより、(要求事項1)の機能に基づく網羅と、(要求事項2)の構造に基づく網羅とを同時に保証可能なテストケース36を得ることができる。
なお、テストケース生成部24は、入力条件31それぞれと、出力条件32それぞれと、到達点それぞれとに対応する少なくとも1つのテストケース36が生成された時点で、図11に示す処理を止めてもよい。これにより、組合せ数が膨大になった場合に、全組合せについて処理を行い、処理時間がかかるといったことを防止できる。
***実施の形態1の効果***
以上のように、実施の形態1に係るテストケース生成装置10は、(要求事項1)の機能に基づく網羅と、(要求事項2)の構造に基づく網羅とを同時に保証可能なテストケース36を得ることができる。そのため、漏れのないテストケース36、つまり、必要十分なテストケース36を得ることができる。
製品開発プロジェクトではテストケース36の数が膨大になってしまう傾向にある。しかし、実施の形態1に係るテストケース生成装置10では、必要十分なテストケース36を得ることができるため、試験作業量を減らすことができ、人員リソースを有効活用することにも寄与する。
***他の構成***
<変形例1>
実施の形態1では、テストケース生成装置10の各部の機能がソフトウェアで実現された。しかし、変形例1として、テストケース生成装置10の各部の機能はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
図16を参照して、変形例1に係るテストケース生成装置10の構成を説明する。
各部の機能がハードウェアで実現される場合、テストケース生成装置10は、プロセッサ11と記憶装置12とに代えて、処理回路15を備える。処理回路15は、テストケース生成装置10の各部の機能及び記憶装置12の機能を実現する専用の電子回路である。
処理回路15は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各部の機能を1つの処理回路15で実現してもよいし、各部の機能を複数の処理回路15に分散させて実現してもよい。
<変形例2>
変形例2として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、テストケース生成装置10の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
プロセッサ11と記憶装置12と処理回路15とを、総称して「プロセッシングサーキットリー」という。つまり、各部の機能は、プロセッシングサーキットリーにより実現される。
実施の形態2.
実施の形態2は、1つの組合せについて、テストケース36を生成可能か否かを複数回判定する点が実施の形態1と異なる。実施の形態2では、この異なる点を説明する。
対象システム30が内部状態を保持しており、保持された内部状態に応じて、演算、分岐、ループといった処理が変化する場合がある。そのため、1つの組合せについて、テストケース36を生成可能か否かを1度だけ判定しただけでは、正確な判定ができない場合がある。つまり、仕様想定外又は実行不能と判定された組合せについても、内部状態が変化することにより、仕様範囲内になり、テストケース36を生成できる場合がある。
***動作の説明***
図3及び図17を参照して、実施の形態2に係るテストケース生成装置10の動作を説明する。
実施の形態2に係るテストケース生成装置10の動作は、実施の形態2に係るテストケース生成方法に相当する。また、実施の形態2に係るテストケース生成装置10の動作は、実施の形態2に係るテストケース生成プログラムの処理に相当する。
図3のステップS1からステップS3の処理は、実施の形態1と同じである。
(図3のステップS4:テストケース生成処理)
テストケース生成部24は、図17に示すように、時間軸を対象システム30の処理を1回実行するための離散的な時間ステップに分割する。そして、対象パターンについての条件付実装物34を時間ステップの数だけ並べて1つの繰り返しシステム37を構成する。この際、繰り返しシステム37を構成する各対象システム30は、前の時間ステップの処理が終わった時点における内部状態を引き継ぐものとする。また、入力信号及び出力信号は、時間ステップ毎に異なるものとして扱う。
テストケース生成部24は、繰り返しシステム37について、対象パターンにおける入力条件及び出力条件のペアである入出力条件と到達点との少なくともいずれかを確認可能なテストケース36を生成可能か否かを、実施の形態1と同様に判定する。これにより、例えば、時間ステップ1ではテストケース36を生成できない場合でも、時間ステップ2ではテストケース36を生成できるといったことが起こり得る。
時間ステップの数は、対象システム30で正確な判定に必要と想定される数と、テストケース36を生成するための処理時間との関係から、利用者によって決定される。
***実施の形態2の効果***
以上のように、実施の形態2に係るテストケース生成装置10は、繰り返しシステム37を構成した上で、テストケース36を生成可能か否かを判定する。これにより、実施の形態1よりも正確にテストケース36が生成可能か否かを判定することができる。
10 テストケース生成装置、11 プロセッサ、12 記憶装置、121 メモリ、122 ストレージ、123 仕様記憶部、124 信号値条件、125 実装物、13 通信インタフェース、14 入出力インタフェース、15 処理回路、21 条件抽出部、22 到達信号挿入部、23 パターン生成部、24 テストケース生成部、30 対象システム、31 入力条件、32 出力条件、33 解析用実装物、34 条件付実装物、35 網羅情報、36 テストケース、37 繰り返しシステム。

Claims (8)

  1. 対象システムの入力信号についての複数の入力条件と、前記対象システムの出力信号についての複数の出力条件と、ソフトウェアの構造に基づく試験手法によって処理が到達したことが確認される、前記対象システムにおける複数の到達点との組合せを示す組合せパターンを生成するパターン生成部と、
    前記パターン生成部によって生成された前記組合せパターンが示す各組合せを対象パターンとして、前記対象パターンにおける前記入力条件及び前記出力条件のペアである入出力条件と前記到達点とを同時に確認可能な前記入力信号の値であるテストケースを生成可能か否かを判定することにより、前記複数の入力条件それぞれと、前記複数の出力条件それぞれと、前記複数の到達点それぞれとを確認可能な前記テストケースの組を特定するテストケース生成部と
    を備えるテストケース生成装置。
  2. 前記テストケース生成部は、生成可能と判定された組合せから、前記複数の入力条件それぞれと、前記複数の出力条件それぞれと、前記複数の到達点それぞれとを確認可能な組合せについて前記テストケースを生成する
    請求項1に記載のテストケース生成装置。
  3. 前記テストケース生成部は、ソフトウェアの構造に基づく試験手法である第1手法と、ソフトウェアの機能に基づく試験手法とソフトウェアの構造に基づく試験手法との組合せである第2手法と、前記第2手法よりも基準が厳しいソフトウェアの機能に基づく試験手法とソフトウェアの構造に基づく試験手法との組合せである第3手法とのそれぞれの手法に対して、前記対象パターンについて前記テストケースが生成可能か否かを判定することにより、前記入出力条件と前記到達点との少なくともいずれかを確認可能か否かを判定する
    請求項1又は2に記載のテストケース生成装置。
  4. 前記テストケース生成部は、前記第1手法と前記第2手法と前記第3手法とのそれぞれの手法に対して、前記テストケースが生成可能と判定された組合せについて前記テストケースを生成する
    請求項3に記載のテストケース生成装置。
  5. 前記テストケース生成部は、生成された前記テストケースを前記対象システムに入力して得られた値と、期待値とが一致するか否かを判定する
    請求項4に記載のテストケース生成装置。
  6. 前記テストケース生成部は、前記第1手法に対して前記テストケースが生成不可な場合には、前記対象パターンを実行不能と判定し、前記第1手法に対して前記テストケースが生成可能であり、かつ、前記第2手法又は前記第3手法に対して前記テストケースが生成不可な場合には、前記対象パターンを前記対象システムの仕様の想定外と判定し、前記第1手法と前記第2手法と前記第3手法とに対して前記テストケースが生成可能な場合には、前記対象パターンを前記対象システムの仕様の範囲内と判定する
    請求項3から5までのいずれか1項に記載のテストケース生成装置。
  7. 前記テストケース生成部は、前記対象システムが有する内部状態を保持したまま、前記対象システムの処理を複数回繰り返し実行する繰り返しシステムにおいて、前記入出力条件と前記到達点との少なくともいずれかを確認可能な前記テストケースを生成可能か否かを判定する
    請求項1から6のいずれか1項に記載のテストケース生成装置。
  8. 対象システムの入力信号についての複数の入力条件と、前記対象システムの出力信号についての複数の出力条件と、ソフトウェアの構造に基づく試験手法によって処理が到達したことが確認される、前記対象システムにおける複数の到達点との組合せを示す組合せパターンを生成するパターン生成処理と、
    前記パターン生成処理によって生成された前記組合せパターンが示す各組合せを対象パターンとして、前記対象パターンにおける前記入力条件及び前記出力条件のペアである入出力条件と前記到達点とを同時に確認可能な前記入力信号の値であるテストケースを生成可能か否かを判定することにより、前記複数の入力条件それぞれと、前記複数の出力条件それぞれと、前記複数の到達点それぞれとを確認可能な前記テストケースの組を特定するテストケース生成処理と
    をコンピュータに実行させるテストケース生成プログラム。
JP2017558562A 2016-02-24 2016-02-24 テストケース生成装置及びテストケース生成プログラム Active JP6289778B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/055486 WO2017145300A1 (ja) 2016-02-24 2016-02-24 テストケース生成装置及びテストケース生成プログラム

Publications (2)

Publication Number Publication Date
JP6289778B2 true JP6289778B2 (ja) 2018-03-07
JPWO2017145300A1 JPWO2017145300A1 (ja) 2018-04-12

Family

ID=59684847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017558562A Active JP6289778B2 (ja) 2016-02-24 2016-02-24 テストケース生成装置及びテストケース生成プログラム

Country Status (5)

Country Link
US (1) US20190018765A1 (ja)
JP (1) JP6289778B2 (ja)
CN (1) CN108701074A (ja)
DE (1) DE112016006297T5 (ja)
WO (1) WO2017145300A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111566625B (zh) * 2018-01-17 2024-01-09 三菱电机株式会社 测试用例生成装置、测试用例生成方法和计算机能读取的记录介质
JP7070328B2 (ja) * 2018-10-25 2022-05-18 日本電信電話株式会社 テストデータ生成装置、テストデータ生成方法及びプログラム
CN109669436B (zh) * 2018-12-06 2021-04-13 广州小鹏汽车科技有限公司 一种基于电动汽车的功能需求的测试用例生成方法和装置
CN110597730B (zh) * 2019-09-20 2023-08-22 中国工商银行股份有限公司 基于场景法的自动化测试用例生成方法及系统
CN111930613B (zh) * 2020-07-14 2023-11-28 深圳市紫光同创电子有限公司 待测芯片的测试用例生成方法、装置、电子设备以及介质
CN111984540A (zh) * 2020-08-27 2020-11-24 北京一仿科技有限公司 最小代价测试用例生成方法
CN112052177A (zh) * 2020-09-14 2020-12-08 北京一仿科技有限公司 一种多值耦合信号的mc/dc测试用例集生成方法
CN112052176A (zh) * 2020-09-14 2020-12-08 北京一仿科技有限公司 一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法
JP2024048916A (ja) * 2022-09-28 2024-04-09 株式会社オートネットワーク技術研究所 情報処理システム、情報処理方法およびコンピュータプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299502A (ja) * 2007-05-30 2008-12-11 Denso Corp テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法
JP2011028313A (ja) * 2009-07-21 2011-02-10 Toyota Motor Corp 検証項目自動生成装置
JP2012185539A (ja) * 2011-03-03 2012-09-27 Toyota Motor Corp ソフトウェア検証支援装置、ソフトウェア検証支援方法及びソフトウェア検証支援プログラム
JP2015204065A (ja) * 2014-04-16 2015-11-16 株式会社日立製作所 テストケース生成装置及びテストケース生成方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778169A (en) * 1995-08-07 1998-07-07 Synopsys, Inc. Computer system having improved regression testing
US5748878A (en) * 1995-09-11 1998-05-05 Applied Microsystems, Inc. Method and apparatus for analyzing software executed in embedded systems
US7028290B2 (en) * 2002-04-29 2006-04-11 Microsoft Corporation Method and apparatus for prioritizing software tests
US20040031019A1 (en) * 2002-05-20 2004-02-12 Richard Lamanna Debugger for a graphical programming environment
US7844350B2 (en) * 2006-11-22 2010-11-30 Honeywell International Inc. Testing of control strategies in a control system controlling a process control plant
JP4924188B2 (ja) 2007-04-27 2012-04-25 トヨタ自動車株式会社 クロス検証装置
CN102176200A (zh) * 2009-09-25 2011-09-07 南京航空航天大学 一种软件测试用例自动生成方法
CN101814053B (zh) * 2010-03-29 2013-03-13 中国人民解放军信息工程大学 一种基于功能模型的二进制代码漏洞发现方法
JP2013008277A (ja) * 2011-06-27 2013-01-10 Toshiba Corp カバレッジ測定装置、方法およびプログラム
JP5523526B2 (ja) * 2012-09-11 2014-06-18 日本電信電話株式会社 テストパス中に複数の参照アクセスをもつテスト用のデータ生成装置及び方法及びプログラム
JP5894954B2 (ja) * 2013-03-22 2016-03-30 株式会社日立製作所 テストケース生成方法、テストケース生成装置およびプログラム
CN105095060A (zh) * 2014-04-15 2015-11-25 富士通株式会社 利用规则集网络生成测试用例的装置和方法
CN103995781B (zh) * 2014-06-10 2017-08-25 浪潮通用软件有限公司 一种基于模型的构件测试用例生成方法
CN104991863B (zh) * 2015-07-14 2017-11-03 株洲南车时代电气股份有限公司 一种基于功能块图测试模型自动生成测试用例的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299502A (ja) * 2007-05-30 2008-12-11 Denso Corp テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法
JP2011028313A (ja) * 2009-07-21 2011-02-10 Toyota Motor Corp 検証項目自動生成装置
JP2012185539A (ja) * 2011-03-03 2012-09-27 Toyota Motor Corp ソフトウェア検証支援装置、ソフトウェア検証支援方法及びソフトウェア検証支援プログラム
JP2015204065A (ja) * 2014-04-16 2015-11-16 株式会社日立製作所 テストケース生成装置及びテストケース生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
松尾谷 徹: "難しいテストを簡単に CFD法の極意 前編", ソフトウェア・テストPRESS, vol. 第8巻, JPN6016010919, 25 February 2009 (2009-02-25), JP, pages 98 - 106 *

Also Published As

Publication number Publication date
CN108701074A (zh) 2018-10-23
WO2017145300A1 (ja) 2017-08-31
US20190018765A1 (en) 2019-01-17
JPWO2017145300A1 (ja) 2018-04-12
DE112016006297T5 (de) 2018-10-31

Similar Documents

Publication Publication Date Title
JP6289778B2 (ja) テストケース生成装置及びテストケース生成プログラム
US9990458B2 (en) Generic design rule checking (DRC) test case extraction
US10319457B2 (en) Methods and systems of testing interfaces of computer storage for storage vulnerabilities
US11954015B2 (en) Software environment for control engine debug, test, calibration and tuning
US8875064B2 (en) Automated design rule checking (DRC) test case generation
US20150074646A1 (en) Adopting an existing automation script to a new framework
US10970079B2 (en) Parallel dispatching of multi-operation instructions in a multi-slice computer processor
US20170261354A1 (en) Methods and systems for performing test and calibration of integrated sensors
US11194705B2 (en) Automatically introducing register dependencies to tests
US8650546B2 (en) Static analysis based on observed string values during execution of a computer-based software application
US9043584B2 (en) Generating hardware events via the instruction stream for microprocessor verification
US10223225B2 (en) Testing speculative instruction execution with test cases placed in memory segments with non-naturally aligned data boundaries
US9218273B2 (en) Automatic generation of a resource reconfiguring test
US9395992B2 (en) Instruction swap for patching problematic instructions in a microprocessor
CN107506623B (zh) 应用程序的加固方法及装置、计算设备、计算机存储介质
US20140172344A1 (en) Method, system and apparatus for testing multiple identical components of multi-component integrated circuits
CN106484945B (zh) 用于分析逻辑电路的方法
CN111176663B (zh) 应用程序的数据处理方法、装置、设备及存储介质
CN111295658B (zh) 模拟装置、模拟方法和计算机能读取的存储介质
JP6813513B2 (ja) プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置
US20110022373A1 (en) Model checking of liveness property in a phase abstracted model
US10289808B2 (en) Method and system for secure data processing
Godunov et al. Baget real-time operating system family (features, comparison, and future development)
US20090249132A1 (en) Data Processing Apparatus and Method of Verifying Programs
US9721048B1 (en) Multiprocessing subsystem with FIFO/buffer modes for flexible input/output processing in an emulation system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171108

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171108

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180206

R150 Certificate of patent or registration of utility model

Ref document number: 6289778

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