メタモーフィックテスト(MT)は、プロパティベースのソフトウェアテスト手法であり、テストオラクル問題やテストケース生成問題への効果的なアプローチとなり得ます。テストオラクル問題とは、選択されたテストケースの期待される結果を決定すること、あるいは実際の出力が期待される結果と一致するかどうかを判断することの難しさを指します。
メタモルフィック関係(MR)は、ソフトウェアの意図した機能に必要な特性であり、ソフトウェアを複数回実行する必要があります。たとえば、100 桁の有効数字まで正しいsin xを実装するプログラムを考えてみましょう。正弦関数のメタモルフィック関係は、「sin ( π − x ) = sin x」です。したがって、必要な精度で正しいソーステストケースx 1 = 1.234 に対する sin x 1の期待値が不明であっても、フォローアップテストケースx 2 = π − 1.234 を構築できます。テスト対象プログラムによってソーステストケースとフォローアップテストケースから生成された実際の出力が、問題の MR と一致しているかどうかを検証できます。不一致 (丸め誤差を考慮後) は、実装の 障害[1] : 31 によって引き起こされたプログラムの失敗[1] : 31 を示します。
MRは、数値入力や等式関係を持つプログラムに限定されません。例えば、予約ウェブサイトをテストする場合、オーストラリアのシドニーの宿泊施設をウェブ検索すると1,671件の結果が返されます。この検索結果は正確かつ完全でしょうか?これはテストオラクルの問題です。メタモルフィック関係に基づいて、価格帯や星評価でフィルタリングし、再度検索を適用すると、以前の結果のサブセットが返されるはずです。この期待に反する結果が返された場合、同様にシステムの障害が明らかになります。
メタモーフィックテストは、1998年にTY Chenによって技術レポート[2]で発明されました。それ以来、実際のアプリケーションでのMTの理論と実践をさらに追求した750以上の論文が国際的な研究者と実務家によって発表されました。[3]いくつかの例としては、ウェブサービス、[4] コンピューターグラフィックス、[5] 組み込みシステム、[6] シミュレーションとモデリング、[7] 機械学習、[8] 意思決定支援、[9] バイオインフォマティクス、[10] コンポーネント、[11] 数値解析、[12] コンパイラ、[13]さらには量子コンピューティングなどがあります。[14] MTの最初の主要な調査は2016年に実施されました。[15] その後、2018年に別の主要な調査が行われ、[16]課題と機会が強調され、よくある誤解が明らかにされています。
MTは当初ソフトウェア検証技術として提案されましたが、後に検証、妥当性確認、その他の種類のソフトウェア品質評価をカバーするパラダイムへと発展しました。[17] MTは単独で適用できるだけでなく、証明やデバッグなどの他の静的および動的ソフトウェア解析技術と組み合わせることもできます。[18]
2018年8月、Googleはインペリアル・カレッジ・ロンドン発のスタートアップ企業GraphicsFuzzを買収し、Androidスマートフォンのグラフィックデバイスドライバーにメタモーフィックテストを適用した。[19] [20]
参照
参考文献
- ^ ab 610.12-1990 - IEEE標準ソフトウェア工学用語集、IEEE、1990、doi :10.1109/IEEESTD.1990.101064、ISBN 9781559370677
- ^ TY Chen; SC Cheung; SM Yiu (1998)、「メタモルフィックテスト:次のテストケースを生成するための新しいアプローチ」、技術レポート HKUST-CS98-01 (PDF) 、香港科技大学コンピュータサイエンス学部、香港、arXiv : 2002.12543。
- ^ "allintitle: "metamorphic testing" OR "metamorphic relation"". Google Scholar . 2025年7月11日閲覧。
- ^ C. Castro-Cabrera および I. Medina-Bulo、「WS-BPEL コンポジションのメタモルフィック テストへのアプローチ」、 Proceedings of the International Conference on e-Business、 IEEE (2011)。
- ^ R. GuderleiとJ. Mayer、「ランダムテストとメタモルフィックテストによるイメージングソフトウェアの自動テストに向けて」、 International Journal of Software Engineering and Knowledge Engineering 17 (6): 757−781 (2007)。
- ^ TH Tse、SS Yau、WK Chan、H. Lu、TY Chen、「コンテキスト依存ミドルウェアベースのソフトウェアアプリケーションのテスト」、第28回国際コンピュータソフトウェアおよびアプリケーション会議( COMPSAC '04)の議事録、第1巻、 IEEEコンピュータ協会、pp. 458−465(2004年)。
- ^ S. Segura、RM Hierons、D. Benavides、A. Ruiz-Cortes、「機能モデルの分析に基づく自動テストデータ生成:メタモーフィックテストアプローチ」、第3回国際ソフトウェアテスト、検証、および検証会議( ICST '10)の議事録、 IEEE Computer Society、pp. 35−44(2010年)。
- ^ J. Ding、X.-H. Hu、V. Gudivada、「大規模画像データの検証と妥当性確認のための機械学習ベースのフレームワーク」、 IEEE Transactions on Big Data (2017)。doi: 10.1109/TBDATA.2017.2680460。
- ^ F.-C. Kuo、ZQ Zhou、J. Ma、G. Zhang、「意思決定支援システムのメタモルフィックテスト:ケーススタディ」、 IETソフトウェア4(4):294−301(2010)。
- ^ LL PullumとO. Ozmen、「疫学的モデルのメタモルフィックテストの初期結果」、 2012 ASE/IEEE国際バイオメディカルコンピューティング会議( BioMedCom '12)の議事録、 IEEEコンピュータ協会、pp. 62−67(2012年)。
- ^ S. Beydeda、「自己変形テストコンポーネント」、第30回国際コンピュータソフトウェアおよびアプリケーション会議( COMPSAC '06)の議事録、第1巻、 IEEEコンピュータ協会、pp. 265−272(2006年)。
- ^ C. Aruna、RSR Prasad、「多精度演算ソフトウェアアプリケーションのテスト精度を向上させるための変形関係」、 2014年国際コンピューティング、通信、情報科学の進歩に関する会議( ICACCI '14 )の議事録、 IEEE (2014)。
- ^ C. Lidbury、A. Lascu、N. Chong、AF Donaldson、「メニーコア コンパイラ ファジング」、第 36 回ACM SIGPLAN プログラミング言語の設計と実装に関する会議( PLDI '15 ) の議事録、 ACM、pp. 65−76 (2015)。
- ^ M. Paltenghi; M. Pradel (2023)、「MorphQ: Qiskit 量子コンピューティングプラットフォームのメタモーフィックテスト」、2023 IEEE/ACM 第45回国際ソフトウェア工学会議(ICSE)、ICSE '23、pp. 2413– 2424、arXiv : 2206.01111、doi :10.1109/ICSE48619.2023.00202。
- ^ S. Segura、G. Fraser、AB Sanchez、A. Ruiz-Cortes、「メタモーフィックテストに関する調査」、 IEEE Transactions on Software Engineering 42 (9}: 805-824 (2016)。
- ^ TY Chen、F.-C. Kuo、H. Liu、P.-L. Poon、D. Towey、 TH Tse、ZQ Zhou、「メタモルフィックテスト:課題と機会のレビュー」、 ACM Computing Surveys 51 (1): 4:1-4:27 (2018)。
- ^ ZQ Zhou、S. Xiang、TY Chen、「ソフトウェア品質評価のためのメタモーフィックテスト:検索エンジンの研究」、 IEEE Transactions on Software Engineering 42 (3): 264-28s4 (2016)。
- ^ TY Chen、 TH Tse、ZQ Zhou、「セミプロービング:プログラムの証明、テスト、デバッグのための統合手法」、 IEEE Transactions on Software Engineering 37 (1): 109-125 (2011)。
- ^ 「GraphicsFuzzがGoogleに買収される」GraphicsFuzz .マウンテンビュー、カリフォルニア州、米国. 2018年8月6日. 2020年12月23日閲覧。
- ^ Frederic Lardinois (2018年8月6日). 「GoogleがAndroidグラフィックドライバーをテストするサービスGraphicsFuzzを買収」TechCrunch .サンフランシスコ、カリフォルニア州、米国. 2025年7月11日閲覧。
同社の創設者は、
インペリアル・カレッジ・ロンドン
のコンピューティング学部で研究を開始し、英国
工学物理科学研究会議
とTETRACOM EUプロジェクトから資金援助を受けていた。
外部リンク
- 「メタモルフィックテスト:概要と応用」ACM SIGSOFTウェビナー。
- Sergio Segura; Zhi Quan Zhou (2018). ICSE 2018 メタモーフィックテストに関する技術説明会.国際ソフトウェア工学会議(ICSE 2018). doi :10.5281/zenodo.1256230.
- Zhi Quan (George) Zhou (2019年4月9日).実世界の自動運転システムとその先を見据えた自動テスト:基調講演. IEEE国際人工知能テスト会議 (AI Test 2019). サンフランシスコ・イーストベイ, カリフォルニア州, 米国. doi :10.5281/zenodo.2636979.