ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

【翻訳】探索的テスト3.0 - その3

 James BachさんとMichael Boltonさんの記事・『探索的テスト3.0』について、「探索的テスト2.0」まで翻訳を公開しました。この記事ではその範囲について、ポイントと私見を書きます。

scriptという言葉について

 今さらですが、翻訳および一連の記事では、「scripted testing」を不恰好ながら「手順付きテスト」と訳しています。JSTQBの用語集では「スクリプトテスト」と訳しているこの言葉を、あえて別の訳にしているのには理由があります。
 まず、「スクリプト」という言葉が、「プログラミングされたテストスクリプトという印象を与えるため。
 次に、記事ではこのscriptという言葉を、スクリプトあるいは手順書といった、「テスト実装の具体的な成果物」にとどまらない抽象的な何かを指したり、さらには動詞として「script you」といった表現を使っているため、「手順」(「手順書」ではない)の方が伝わるのでは、と考えたためです。
 一般的な訳語とズレていることをご承知いただければと思います。

探索的テストの定義付け

 ET 2.0では、「探索的テスト」と「手順付きテスト」とは完全に分けるべきものでなく、裁量の濃度の違いであるということが前提になります。すべての手順が明確になっていたとしても、そこからまったく外れることなくテストを行うことはまれでしょう。つまり、探索的な要素が入り込んでいる。それを表しているのが、以下の絵です。(元記事より引用)

20150505_EtContinuum

 これを前提に、探索的テストの定義付けが始まります。
 1996年のシンプルな定義が、以下です。

学習、テスト設計、そしてテスト実行を同時に行うこと

 確かにこの定義は、設計・実行をシリアルに行う従来の「手順付きテスト」と対照的でわかりやすいと思います。ですが、この定義をベースに開かれた小規模な会合・「探索テスト研究サミット」で議論してみると、この定義が結局なにを意味しているのかについて、さっぱり合意ができなかったのだそうです。シンプル過ぎて、解釈の余地が大きすぎる。
 そこで詳細化した定義が以下です。

テスター一人ひとりの自由と責任を前面に出し、テスト設計、テスト実行、テスト結果の解釈、そして学習を、プロジェクトを通じて並行に、かつ相互補完的に続くアクティビティと捉えることで、テスターの仕事の質を継続的に最適化する、テスティングのスタイル

 テスティングの中で行う作業の位置づけが詳細化されているだけでなく、「自由と責任を前面に」といった、テスターのあり方が明示されているのが特徴です。

手順付きテストの定義付け

 「探索的」という言葉から、わたしたちが抱く印象はどういうものでしょうか。それはたとえば、自分の頭で考えることだったり、地図なしに先に進んでいくことだったりします。ですがよく考えてみるとそれらは本来、テスティング自体が備えているべき性質ということができます。では、探索的テストと手順付きテストの本質的な違いは何か。
 元記事では、これを「level of agency」と表現しています。このフレーズをどう訳すべきかをとても悩みました。「エージェント」「代理」などではまったく話がつながりません。
 いろいろ探した結果、社会学の用語に行きつきました。孫引きですが、『社会学の新しい方法基準』にはこう定義されているそうです。

世界内の事象の継続する過程に対して、身体を持った存在が、能動的にあるいは熟慮のうえで、因果的に介入していく流れ。

 これはまさに、述べられている「探索的」のイメージに近いのではないでしょうか。この後に現れる「self-directedness」という言葉ともフィットします。そこでわたしは、「level o f agency」を「主体性の程度」と理解し、訳を当てました。
 手順付きテストの本質とは、この「主体性の程度」が低いもの。自分自身以外のものに自分のアクティビティが制約され、主導権が握られているということです。それは他人の指示のこともあれば、自分で作った手順書ということもあります。「事前にテスト手順がしっかり準備されていること」という手順付きテストに対する一般的な理解から、だいぶ離れてきています。

スティングの区別

 さて、2009年には、Michael Boltonによる「テスティング」と「チェッキング」の区別が出てきます。簡単に言うと、チェッキングはすべて自動化することがきるが、テスティングをすべて自動化することはできない。
 実は同様の区別をJamas Bachが「知性的(sapience)/非知性的なテスティング」という言葉で行っていたのですが、正直、言葉が悪い。ということで、testing / checkingの方に流れていったとのことです。

 こう読んでくると正直、言葉とその定義をいじくり倒しているだけにも見えます。ですが元記事の最後にあるように、探索的テストを単なるバズワードに終わらせないよう、テスティング自体を定義し直したうえで、あらためて探索的テスト(および手順付きテスト)をそこに定義付けているのです。

 この節でも、探索的テストの創始者たちが思想・哲学の分野から貪欲に成果を取り込み、自分たちのアクティビティを明瞭に位置付けていこうとしている様子がわかります。次節・ET 3.0では、現時点での探索的テストの定義に至るまでの総仕上げが説明されます。