テストオラクルとは何か?概要や対象物について解説

テストオラクルとは

JSTQBの用語にはテストに関連する様々な用語が存在します。

本記事で扱う「テストオラクル」も用語の一つですが、テスト+オラクル(神託)という言葉だけではどのような場面で使う言葉なのか、また、どのような意味を持つ言葉なのかイマイチわかりませんよね。

本記事では、テストオラクルの概要や対象物について解説します。

テストオラクルとは

JSTQBの教本では、テストオラクルは下記のように説明されています。

テストオラクル(test oracle)
テスト対象のシステムの実行結果と比較する期待結果のソース

出典:大西 建児,佐々木大西 建児,佐々木 方規,鈴木 三紀夫,中野 直樹,福田 里奈,町田 欣史,湯本 剛,吉澤 智美. 「第1章 テストの基礎」.『ソフトウェアテスト教科書 JSTQB Foundation 第4版 シラバス2018対応』.翔泳社,第4版 (2019/9/17),78

説明文だけではまだ少しわかりにくいので、説明文の「ソース」という言葉を「情報元」に変換するともう少しわかりやすくなると思います。

説明文を「テスト対象のシステムの実行結果と比較する期待結果の情報元」という言葉に変えると文章としては理解できそうですが、「それはテストベースの事を指しているのでは?」と疑問を抱く方もいると思います。

教本の説明文だけでは理解が難しいため公式のシラバスも引用すると、下記のような一文が掲載されています。

具体的なテストデータに関連する具体的な期待結果は、テストオラクルを使用して識別する。

出典:JSTQB認定テスト技術者資格-シラバス(学習事項)・用語集-|ISTQBテスト技術者資格制度
Foundation Level シラバス 日本語版 Version 2018V3.1.J03,25

シラバスからは「具体的なテストデータ」「具体的な期待結果」という言葉が出てきました。
要するに「具体的なテストデータに関連する具体的な期待結果」について識別可能な情報が掲載されている情報元がテストオラクルに該当することになります。

教本とシラバスの内容を組み合わせると、テストオラクルは「テスト対象の実行結果と比較可能な具体的なテストデータや期待結果が掲載されている情報元」という言葉に変換ができます。

上記を考慮してテストオラクルとテストベースの関係性を考えると、具体的な内容が記載されているテストベースはテストオラクルとなり、抽象的な内容が記載されているテストベースはテストオラクルにはならないという関係性になります。

例えば、掛け算の計算結果を出力するシステムのテスト内容を考える際に、テストオラクルとなる情報元とならない情報元には下記のような違いがあります。

  • テストオラクルになる情報元
    「記載例の通り、入力値の積を出力する。例:1*1=1、1*2=2、1*3=3 … 9*9=81」
  • テストオラクルにならない情報元
    「入力値の積を出力する。」

テストオラクルの対象物

具体的なテストデータや実行結果が掲載されている情報元がテストオラクルになりますので、テストベースと同じで下記のような情報もテストオラクルになり得ます。

  • 依頼書
  • 企画書
  • 要求仕様書
  • RFP(提案依頼書)
  • アーキテクチャー
  • ユースケース
  • ユーザーストーリー
  • インターフェース
  • お客様とやりとりをしたメール
  • 電話や口頭で話した会話の内容
  • 会議の議事録

上記以外にも、下記のような情報もテストオラクルに該当する場合があります。

  • 機能の参考にした実績のあるシステムやソフトウェアの仕様書などのドキュメント
  • 過去のリグレッションテスト(回帰テスト)で利用したテストスイート
  • 専門家が発信している情報

まとめ

テストオラクルの概要は下記の通りとなります。

  • テストオラクル(test oracle)
    テスト対象の実行結果と比較可能な具体的なテストデータや期待結果が掲載されている情報元

テストオラクルはJSTQBのシラバスでは一度だけ使われる単語なので、文章から意味を理解することはなかなか難しい用語となっています。

開発の現場でもテストオラクルという単語を使うことは稀ですが、明確に区別したい場合には便利な言葉となりますので、正しい意味を理解して適切に使えるようにしましょう。