用語の話。
因子、水準はもともと直交表の言葉ですが、他の技法の話をするときにも使われているのを見かけます。
特にデシジョンテーブルテスト。デシジョンテーブルテストにおいて期待結果を左右するものは、JIS X 0125:1986 決定表にならえば「条件」となります。
が、現場でデシジョンテーブルを書くと、条件の詳細度を階層化して表現したいケースがあります。そういったときに因子、水準という言葉は便利です。
例えば、動物園の入園料を決める条件のひとつが年齢にまつわるものである場合、「年齢が6歳未満であること」「年齢が6歳以上であること」とも書けますが「年齢」の下に「6歳未満」「6歳以上」をぶら下げて階層化して書くこともできるという話です。
で、各種文献の、特にデシジョンテーブルテストの説明において、直交表の説明をするときの因子、水準にあたるものをどういう用語で表現しているか確認してみました。
確認結果を先にまとめると、そもそも「因子」「水準」に分けて説明していないものばかり。
まあ、予想はしていた。
じゃあどうするか。
個人的には、直交表以外では「変数」「変数がとりうる値」としておくのが無難な気がしています。
一番の理由は、プログラミングを少しでも齧ったことがあれば比較的分かりやすく、一般的な言葉だからです。実際のテスト技法を説明した文献にも、「変数」「変数がとりうる値」を使っているものはありました。今回はデシジョンテーブルテストについて悩みましたが、一般的な言葉なので他の技法の説明でも使えるというのも強みです。
また、テストの期待結果(JISにならえばデシジョンテーブルでは「動作」)についても階層化して表現したいことがありますが、このときも「変数」「変数がとりうる値」であれば問題なく使えそうです。
一方、「因子」は辞書によると、「ある関係や結果を生じる諸要素」あるいは「ある結果を成り立たせるもとになる要素。」(両方とも https://kotobank.jp/word/%E5%9B%A0%E5%AD%90-437343 より引用)だそうなので、期待結果や動作に対して使うのは、これも個人的には違和感があります。
難を言えば、テストやQAのチームにはプログラムを書いたことがなく「変数」という言葉に馴染みがない人も往々にしているので、とっつきにくい人は一定数いると思います。が、テスト技法を学ぶ前の人にとっての馴染みの薄さは「因子」「水準」も大して変わらないのでは。
直交表の話以外で「因子」「水準」が使われていても話す側も聞く側もその意味が何か理解しているならば、めくじらを立てるような話ではないと思っています。実際、直交表を齧ったことがある人にはイメージが湧きやすい言葉ですし。
ただ、自分自身が経験値が様々な複数の人にテスト技法の話をする機会があり、いろいろ考えてしまったので、この機に整理してみました。
以下は文献を確認した結果の詳細です。
それぞれのデシジョンテーブルテストの説明から、JISでいう「条件」をさしていると自分が判断した単語を抜き出してみました。今回調べた文献は概ね、JIS同様に「条件」でした。
本『ソフトウェアテスト技法ドリル―テスト設計の考え方と実際』秋山 浩一(著), 日科技連出版社, 2010年
- 「変数」「規則」「条件」
本『はじめて学ぶソフトウェアのテスト技法』リー・コープランド(著), 宗 雅彦(翻訳), 日経BP, 2005年
- 「条件」
- 「第6章 ペア構成テスト」という、直交表や全ペアアルゴリズムを扱う章があるのですが、そこでも因子、水準は見当たらず「変数」「パラメータ」、「変数がとりうる値」「変数値」などと表現されていました。
本『ソフトウェアテスト技法』ボーリス バイザー(著), 小野間 彰(翻訳),日経BP, 1994年
- 「条件」
- 条件についての記述を以下に引用します。なるほど
- p270『「条件」とは「述語」を意味する別の言葉である(仕様書の「述語」やプログラムの制御フローの「述語」のどちらでもよい)。』
JSTQB FLシラバス (ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018V3.1.J03 http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J03.pdf)
- 「条件(主に入力)」
- ちなみに、「条件(主に入力)」が書かれていたあたりを引用するとこちらの通り
- p57「デシジョンテーブルを作成する際には、テスト担当者は条件(主に入力)と結果的に起きるシステムのアクション(主に出力)を識別する。条件とアクションは表の行となり、条件を上部、アクションを下部に記述する。」