第５コース（Simulation Software Testing グループ）

物理解析ソフトウェアのテスト手法の検討- Search-based testing および Metamorphic testing によるアプローチ-

Investigation on the testing method for the simulation software- Approach using the search-based testing and the metamorphic testing 研 究 員：小川
主 査 ：石川副 主 査：徳本栗田哲生（株式会社 JSOL）
冬樹（国立情報学研究所）
晋 （株式会社富士通研究所）
太郎（ソニー株式会社）

研究概要
物理解析ソフトウェアのテストにおいて，テスト対象機能の複雑さにより，テストケースを導出できないケースや期待結果が事前に導出することが困難な場合がある．本研究ではこの様な問題に対し，Search-based testing および Metamorphic testing によるテストを試行した．結果として，これら手法の有効性を確認することができた．
Abstract The software testing on the simulation software has difficulties to design the test
inputs and to define the expected results beforehand due to its co mplex functionalities. I n thisinvestigation, we applied the search-based testing and the metamorphic testing to the software
to find the effectiveness. This paper reports the approach and the results．

1. はじめに近年，ソフトウェア開発に伴うシステムテストおいては，その機能の複雑さにより，同値分割や境界値分析に基づくテスト設計が困難であったり，テストの期待結果を事前に定量的に定めることができないシステムが散見される．例えば，自動運転システム，推薦システムなどに代表される近年の AI システムはその代表例である．
本論文ではその一例として，物理解析ソフトウェアを取り上げる．物理解析ソフトウェ
アでは解析対象の形状がその動作に影響するが，複雑な形状を同値分割してその境界を見極めることは非常に困難である．また，物理解析の結果は物理方程式とその入力から得られるべきものであるが，これをソフトウェアに依らずに予め導出することは一般的な解析対象に対して現実的ではない．
本論文ではこの様な物理解析ソフトウェアのテスト技法として，最適化技術を利用したテスト生成手法(SBT:Search-based testing)や，システムへの入力の変化に対する出力の応答を検証する手法(MT:Metamorphic testing)の適用を検討し，評価を行った．
2. 背景技術
2.1 Search-based testing
複雑なソフトウェアに対して，その膨大な入力候補の中から欠陥を検出できるテスト入力を効率的に抽出する手法には，盛んな研究がある[1]．ただし，今回の研究対象ではプログラムをホワイトボックス的に解析することができないため，Concolic testing の様にプログラムコードの分岐を踏まえたテスト入力を論理的に探す手法は適用できない．
この様な対象に適用可能な手法として，ブラックボックスに様々なテスト入力を試行しながら問題の発生につながるような入力をメタヒューリスティックに自動探査する SBT がある[2]．SBT は，テスト実行の適切さを判断する評価指標を定めておき，メタヒューリ
1

第５コース（Simulation Software Testing グループ）
スティックな最適化により評価指標が最適化するようにテスト入力群に変更を加えて，より適切なテスト入力群を自動生成していく手法である(図 2-1)．

テスト入力の生成
テスト対象機能の実行最適化によるテスト入力の更新

評価指標の計算
図 2-1

SBT によるテスト入力の生成

2.2 Metamorphic testing
テストの期待結果が定まらない場合のアプローチとして，検査基準となるような解析結果から性質を定めることがある．Property-based testing では入出力が満たすべき関係を定義してテスト成否判断に用いるが，今回の研究対象ではその関係の定量的な導出が困難である．また，同等の機能の複数実装間で出力を比較する N-version programmingという手法があるが，今回の研究対象では同等の機能群を有するソフトウェアが多数ある訳ではなく適用できない．
この様な場合に適用可能な手法として MT がある[3]．MT では，テスト入力 x とその出力 y に 対 し て ， x に 変 換 M(x) を 加 え た 際 の 出 力 y’ が y と の 間 に 期 待 さ れ る 関 係 性(MR:Metamorphic relation)が成立することを検証する(図 2-2)．
テスト入力:x

テスト対象機能MR の成立を確認する

変換 M(x)を行う
テスト入力:M(x)

出力:y

テスト対象機能
図 2-2

出力:y’

MT の概念図

2.3 研究対象との適合性
前節までに取上げた各テスト手法について，その特徴と今回の研究対象との適合性を表2-1 にまとめる．
表 2-1
テスト手法
Concolic testing
Search-based testing
Property-basedtestingN-version programming
Metamorphic testing

テスト手法の特徴と研究対象への適合性
特徴
本研究対象への適用性
プログラムコードの分岐を分 ホワイトボックス的にコー析しテスト入力を探索する
ド解析できないため不適切メタヒューリスティックにテ 形状や位置を変数として探スト入力を自動探査する査でき，適用可能性があるシステムの入出力の関係を定 入出力関係の定量的な導出義して検証するができないため不適切同等機能を有する複数実装間 同種のソフトウェアを複数で出力を比較する用意できないため不適切入力に変化を加えた際の出力 物理法則等を MR に用いるの応答を検証することで，適用可能性がある

2

第５コース（Simulation Software Testing グループ）
これら比較により，テスト入力を効率的に抽出するための手法としては，研究対象の物理解析ソフトウェアのホワイトボックス的なコード分析の必要なく，入力となる形状や位置などを変数として直接的に探査できる SBT を取上げることした．また，テストの期待結果を定量的に定めることなくテストを行うための手法としては，研究対象の物理解析ソフトウェアが満たすべき物理法則を MR に活用できる MT を取上げることとした．
3. ケーススタディ
3-1. 研究用題材ソフトウェア
研究用題材として，ある商用の物理計算ソフトウェアを取り上げる．このソフトウェア
では CAD で製図された解析対象の形状と動作条件(解析対象の材料特性や温度など)を入力とし，解析目的に応じた物理方程式を解くことにより物理現象を解析した上で，結果の物理量を視覚的に出力する(図 3-1)．
解析対象の形状がソフトウェアの入力となり各機能の成否や解析精度が形状に依存するため，ソフトウェアの検証においては形状をテスト入力として考慮する必要がある．しかしながら，本ソフトウェアが扱う形状は利用者が任意に作成可能であり，CAD による表現方法も多様であるため，テスト入力を網羅的に抽出することができない．このため，形状に依存する機能に対しては，SBT の適用候補となり得ると考えられる．
また，形状と動作条件が確定すれば物理方程式の計算自体は決定論的であり，入出力は物理的な因果関係によって関係付けられるべきである．しかし，この計算は多次元多変数の方程式で構成されているため，ソフトウェアを用いることなく検証の期待結果を定量的に導出することは現実的ではない．このため，物理的な因果関係を MR として扱うことで，MT の適用候補となり得ると考えらえる．
利用者は解析対象の形状を CAD で製図し入力する

利用者は解析対象の動作条件(材料特性や温度など)を入力する

ソフトウェアは解析対象の形状を微小な要素群に分割する

ソフトウェアは物理方程式を解き物理量を算出する

ソフトウェアは結果の物理量を形状上に可視化表示する
図 3-1

研究用題材ソフトウェアにおける物理計算の流れ

以上を踏まえ，本ソフトウェアの構成機能から SBT および MT の適用候補として複数機能を選定し，次の 2 点を研究設問としたケーススタディを行った．
RQ1: SBT により欠陥の存在を検出できるか．
RQ2: MT により欠陥の存在を検出できるか．
3.2 SBT のケーススタディ
3.2.1 力の計算機能への適用
解析対象に含まれる物体間に生じる力の計算機能に対して SBT の適用を行った．物体間に生じる力は作用反作用の法則により，その和はゼロとなることが期待される．本評価では作用反作用の法則が満たされている位置を初期状態として物体間の位置関係をテスト入3

第５コース（Simulation Software Testing グループ）
力とし，力の和の差異を評価指標として，SBT の実行を行った．この実験を初期状態 2 モ
デルに対して実行した．
3.2.2 メッシュ生成機能への適用
研 究 対 象 の ソ フ ト ウ ェ ア で は ， 物 理 解 析 を 行 う た め に ， 解 析 対 象 を 空 間 的 に 離 散 化して微小な網目状の要素群(メッシュ)に分割する(図 3-2)．

図 3-2 形状に対するメッシュ生成イメージ（左：CAD モデル 右：メッシュモデル）このメッシュ生成機能に対して SBT の適用を行った．メッシュ生成に成功する解析対象の形状を初期状態として，その形状を定義する寸法や角度などを入力変数として変更し，メッシュ生成の成否を評価指標として SBT の実行を行った．この実験を，初期状態 2 モデルに対して実行した．
3.3 MT のケーススタディ
3.3.1 回路計算機能への適用
回路に算出される電流電圧値を算出する機能に対して MT を適用した．回路に算出される電圧値は Kirchhoff の法則に則り，回路の直並列度に比例/反比例することが期待される．本実験ではこの関係を MR として，解析対象に対して結線状態をテスト入力として変更しつつ，電圧への応答を確認した．この実験を 12 モデルに対して実行した．
3.3.2 損失計算機能への適用
解析対象に発生する電気的損失を算出する機能に対して MT を適用した．電気的損失は通電対象の厚みに比例する．この関係を MR として，解析対象に対して通電箇所の厚みテスト入力として変更しつつ，損失への応答を確認した．この実験を 2 モデルに対して実行した．
4. 評価結果
4.1 SBT の適用結果
SBT の適用実験では，3.2 節に示したケーススタディの初期状態から最適化計算を実行し，一定時間で到達した最適化世代内で得られたテスト入力に対して，評価結果が異常を示すテスト入力を確認した．そのテスト入力に対応するテスト実行結果を精査して，欠陥の存在有無を判断した．
結果として，計 5 件の欠陥を検知することができた．うち 2 件は本実験によって新規に検知された欠陥である．これにより，RQ1 については，SBT が今回の適用対象に対して有効であることが確認できた．
表 4-1 SBT の試行結果
ケーススタディ
検知した欠陥の件数
3.2.1
2 (1)
3.2.2
3 (1)
* 括弧内は既知であった欠陥の件数

4

第５コース（Simulation Software Testing グループ）
4.2 MT の適用結果
MT の適用実験では，3.3 節に示したケーススタディの各モデルに対して，物理解析が成立する上下限値範囲でテスト入力を変化させ，解析結果から MR の成立有無を確認した．
確認から MR に則っていないテスト入力値が確認できたため，そのテスト実行結果を精査して欠陥の有無を判断した．
結果を表 4-2 に示す．実験により 3 件の欠陥を検知することができた．うち 2 件は本実験によって新規に検知された欠陥である．これにより，RQ2 については，MT が今回の適用対象に対して有効であることが確認できた．
表 4-2 MT の試行結果
ケーススタディ
検知した欠陥の件数
3.3.1
2 (1)
3.3.2
1 (1)
* 括弧内は既知であった欠陥の件数
5. 考察
ケーススタディで得られた欠陥の内容と生成されたテスト入力，実行コストの観点から，両手法の有効性と有用性ならびに課題について考察する．
5.1 SBT 適用についての考察
ケーススタディ 3.2.1，3.2.2 のいずれにおいても欠陥を検出することができ，テスト手法としての有効性を確認することができた．検出された欠陥に対応する形状および位置関係はいずれも実際の解析対象として存在し得るものであり，機能価値に影響する欠陥であった．また，これらテスト入力は当該機能の外部仕様に基づく同値分割と境界値分析では導出することができないテスト入力であり，テスト入力の生成手法として SBT の有効性を確認することができた．
本手法の適用に関して要した時間を表 5-1 に示す．ここで，初期入力作成は 3.2 節に示した初期状態における入力データの生成に要した時間を表す．環境構築は，SBT に用いる最適化設定を含む計算環境の準備時間である．テスト実行は 4.1 に示した結果を得るまでに要した SBT の実行時間である．結果評価は SBT 実行で Fail したケースを目視精査することに要した時間である．なお，計算には同ソフトウェアの利用に通常使用されるのと同等のマシンを利用した．従来手法とは生成されるテスト入力が異なるため単純な比較はできないが，これは同機能のテスト工数としては実用的な範囲である．

ケーススタディ
3.2.1
3.2.2

表 5-1
初期入力作成1 h0.5 h

SBT の試行コスト
環境構築
テスト実行
0.5 h
2 d
0.5 h
3 d

結果評価
4 h8 h

課題としては，SBT のケーススタディ 3.3.2 の様に形状の変更を行う場合において，形状として成立しないテスト入力が生成され，無効なテスト入力となってしまう状況が発生した．また，対象ソフトウェアではメッシュ生成の失敗をエラー真偽値として判別するインタフェースしかなく，破綻に近づいていることを評価値として獲得し最適化に反映するには対象ソフトウェアの設計変更が必要であった．このため，3.2.2 の試行においては形状特性をテスト入力の更新に反映できていない．今後，形状の破綻状況を数値化して最適化に反映する仕組みの導入が必要である．

5第５コース（Simulation Software Testing グループ）
5.2 MT 適用についての考察
ケーススタディ 3.3.1，3.3.2 のいずれにおいても欠陥を検出することができ，テスト手法としての有効性を確認することができた．検出された欠陥は特定条件下での解析結果が異常になるものであり，機能価値に重要な影響を及ぼし得る欠陥であった．
MT の適用においてはテスト対象に適切な MR を検討する必要があるが，今回の試行では適用対象の物理法則に基づき MR を規定することができ，物理解析ソフトウェアとの親和性が高い手法であることを確認できた．
本手法の適用に関して要した時間を表 5-2 に示す．初期入力作成は 3.3 節に示した初期状態における入力データの生成に要した時間を表す．結果評価は実行結果が MR に適合するかどうかを確認するための時間である．本手法についても，従来手法との単純な時間比
較はできないものの，同機能に対するテスト工数としては実用的な範囲である．

ケーススタディ
3.3.1
3.3.2

表 5-2
初期モデル作成
2.5 h
0.5 h

MT の試行コスト
環境構築
テスト実行
5 h5 h

結果評価
1 h
1 h

課題としては，今回のケーススタディでは MR は線形かつ１次関数的なもののみを取り上げたが，機能によっては MR が非線形的になるものや複数の入力に依存する場合があり，今回の様に解析的に MT が適用できるものばかりではない．また，検出できる欠陥は MR に依存するため，検証対象機能と検証目的に応じた MR をどう導くかについては更に検討が必要である．
6. まとめ本研究では，従来のテスト設計手法ではテスト入力の設計や期待結果の導出が困難であった物理解析ソフトウェアの機能群に対して，SBT ならびに MT の適用を検討し評価を行った．結果として，いずれの手法も既知の欠陥だけでなく新規の欠陥を発見することができ，同ソフトウェアのテスト手法として有効であることが確認できた．今回の研究では実験の数は限定的であったため，今後さらに適用対象機能を増やし，機能に応じた SBT の評
価関数や MT の MR 導出方法について検討を進めたい．
7. 参考文献[1]丹野治門，倉林利行，張暁晶，伊山宗吉，安達悠，岩田真治，切貫弘之，テスト入力
値生成技術の研究動向，コンピュータソフトウェア，34 巻 3 号, 121-147，2017[2]Shaukat Ali，Hadi Hemmati, Rajwinder K.Panesar-Walawege ， A Systematic
Review of the Application and Empirical Investigation of Search based Test
Case Generation，IEEE Transactions On Software Engineering, Vol.36, No.6，
742-762，2010[3]Sergio Segura ， Gordon Fraser ， Ana B. Sanchez ， Antonio Ruiz-Cortes ， ASurvey on Metamorphic Testing，IEEE Transactions on Software Engineering，
Vol.42，No.9，805-824，20166