レポート

テスターの“フィーリング”を研ぎ澄ませ ─JaSST Tokyo 2015基調講演レポート

この記事を読むのに必要な時間:およそ 3 分

CheckingとTesting,もう一度Feeling

CheckingとTestingの違いは,ここ数年,よく耳にするテーマです。ボルトンさんもこの違いに触れていました。Checkingは,その名の通りチェックです。動かしてみて本当にそうなるかどうかを確認します。Checkingに必要なのは観察と判断の規則です。いわゆるテストケースを使って正解と比較するのはこのCheckingです。Checkingはどちらかというと機械的な作業で,コンピュータができるものもあります。もしかすると,プログラマがやるべき領域かもしれません。

Checkingに全て合格しても,それで本当に大丈夫でしょうか。ボルトンさんはこんなたとえを話していました。

「西さんに4時に会いたい」

もしあなたの助手にこう頼んだとしたら,助手はきっと朝だとは思わないでしょう? Outlookはダメ。午前4時だと思ってしまうのです。訂正してもまた間違える。人間,助手なら学習するでしょう。テストするときにはこういった難しい不完全な情況に関する判断が必要になるでしょう。

機械的な確認,判断の規則では,社会的コンテキストまでは理解できないのです。

先の「おかしなソフトウェア」もCheckingは合格していたかもしれませんが,ユーザを混乱させる,不安にさせる,こういった問題を見逃しています。マネージャもテスターも,社会的なコンテキストへの配慮が足りなかったのではないでしょうか。Checkingに合格するだけではダメなのです。

機械的にチェックはできても「考えること」はできない

機械的にチェックはできても「考えること」はできない

一方,Testingとは社会的な目的・コンテキストを理解し,問題を見つける行為です。コンピュータサイエンスだけでなく,社会学,人類学も含みます。Testingは人間にしかできません。Testingは探索,発見,調査,学習のプロセスであり,フィードバックと適応の繰り返しです。

ヘッドライトのメタファもありました。

我々が「知っていること」「知るべきこと」の間にはギャップがある

我々が「知っていること」と「知るべきこと」の間にはギャップがある

製品の状態についてわかっていることと,知らなければならないことの間にはギャップがあります。Testingの目的は,この「わかっていない領域」を狭めることです。Checkingはおそらくわかっていることの領域の確認ですね。

基調講演での発見

2011年のJaSSTの基調講演でもCheckingとTestingの違いについての言及がありました。

私はこのアイデアが大好きで,自身の講演で何度も引用しました。Checkingは既知の問題を確認すること,Testingは新しい問題を見つけ出すこと,と表現されていました。前者は機械的な作業でちょっと退屈です。人間でもできますが自動化向きでコンピュータが代わりにできるものもあるでしょう。これに対し,後者は創発的で人間にしかできません。

テストは単に信頼性を確かめるためものではありません。信頼性はプログラマが作るのです。テスターはプログラマの作った信頼性を疑い,問題や過信を見つけるのです。

では,Testingを実際にどうやるのか。私にはうまく説明できませんでした。そこで探索型テストなどちょっと高度そうなものを例としてあげていましたが,ボルトンさんの「フィーリングを大切にする」という説明は素敵でわかりやすく,次の機会では真似しようと思いました。

たしかに私たちのチームでも「ちょっと変かも?」という感覚を大切にしています。テスターが「なにかおかしいかも」と投げかければ,みんなが集まってどうおかしいのか考えはじめます。探索する,というより,たしかにフィーリングに導かれてる感じがします。⁠ちょっと変かも?」は製品がおかしいこともありますが,テスターが間違っていることもあります。その場合はテスターが学ぶ機会になります。いずれにしてもフィーリングを大切にすることはお得なのです。

そうそう。フィーリングを大切にするということはテスターの役割というより,テスター(に限りませんが)からの問いかけを受け止めるチーム全体の態度です。

さいごに ─今年のJaSST

今年のJaSSTで変化を感じたのは「テスター」という言葉の扱いです。

以前は「テスター」「テストエンジニア」と言い換えていた記憶があります。⁠テスター」という言葉のもつ語感が,どこか機械的な作業をする人のような印象を与えていたからなのでしょうか。

今年は基調講演でも「テスター」のまま訳されていました。ようやく日本でもボルトンさんの言うテスターのような役割が認知されてきたからかもしれませんね。

テスターこそが進むべき道を照らす

テスターこそが進むべき道を照らす

クロージングで明らかにされた今年のJaSSTのテーマは「百貨店のようなJaSST⁠⁠。多くの人に来て欲しい,常に上質で新しいものを創造し,さまざまなシーンで役に立つ,そんなテーマです。その狙い通り,定番のセッションから,自動テスト,アジャイル,いろいろなパネル,テスターとデベロッパの関係まで,さまざまなプログラムがあったと思います。

4月にはJaSST'15 Niigata,5月にはJaSST'15 Tohokuが開催されます。どちらも興味深いテーマが用意されており,JaSST Tokyoとはまた違う発見があるでしょう。

あー,楽しかった。

著者プロフィール

関将俊(せきまさとし)

プログラマ。Rubyコミッタ。代表作はERB, dRuby, hメソッド。JaSSTは2004より参加。XPや反復開発とテストについて講演している。三月生まれ。