2009/11/18こんにちは、第3バイオリンです。日々の仕事をこなしていると、テストエンジニアというのは、技術力、テクニカルスキルだけではどうにもならないことがたくさんあるなあと実感します。テストエンジニアの仕事のうち、テストそのものに費やす時間というのは実はそれほど多くないからです。それ以外の時間は何をしているのかというと、だいたいは仕様書や関連資料を読んだり、チェックリストやテストの手順書、それに報告書を書いたりしています。その合間にレビューや反省会で人の話を聞き、そして質問に答えたりテストの内容や結果を説明したりしています。いう生活をしているので、わたしは「テストエンジニアに必要なのは国語力」だと思っています。残念ながら今のわたしにとってまだまだ不足しているスキルのひとつです。今回は、わたしが国語力の必要性を痛感したときのことを書きたいと思います。■書く力......チェックリストの不備→テスト失敗テストの前には必ずチェックリストを作成します。このチェックリストの出来ばえがそのままテストの成否を左右するといっても過言ではありません。テストの手順や、それによって期待される結果の記述があいまいで、読む人によって解釈が分かれてしまうようだとテストの失敗につながることがあります。それはわたしがリーダーを務めるテストチームで、あるアプリケーションのテストをしたときのことでした。テスト項目のひとつに、アプリケーションの画面上に並んだアイテムをマウスでポイントすると、そのアイテムの説明がバルーンヘルプに表示されることを確認する、というものがありました。そのテスト項目について期待される結果として、チェックリストには「テキストが正しく表示される」と記載されていました。このアプリケーションは何度もバージョンアップを繰り返していることもあり、チェックリストは過去バージョンのものを流用しながら作成していました。問題の機能はずっと昔からあって仕様変更もない、いわゆる枯れた機能だったのでわたしはチェックリストの内容について特に見直しもかけず、そのまま流用することにしました。画面上に表示されるアイテムの種類にも変更はなく、したがってバルーンヘルプに表示される説明文の内容にも変更はありません。そのためチェックリストに記載されている「テキストが正しく表示される」というのはテキストの一字一句を確認しなくてもいい、ただ文字の欠けや抜けがないかどうかだけを確認するということを意味していました。このテストを担当するのはわたしと、同じチームのテスター1名でした。彼はわたしの前任のリーダーのときからこのチームに所属しているので、わたしは彼がチェックリストの記載の意味もわかっているものだと思い込んだまま、テストを開始しました。テストが少し進んだところでふと隣で作業を進める彼をみると、なぜかグロッサリファイルを開いています。文言の変更はなかったはずだけど」と問いかけました。すると彼は答えました。「バルーンヘルプの文言チェックしているんです。ほら、ここに“正しく表示される”って書いてありますし」つまり彼は「正しく表示される」というのを「グロッサリファイルと比較して、一字一句間違いがないこと」と解釈したわけですね。わたしはすぐにチェックリストを修正しました。テスト全体に大きな影響はなかったものの、チームのテスターに余計な確認作業をさせて、時間をロスしてしまいました。■読む力......仕様書に「書いていないこと」が読み取れないチェックリストを作成するには、まず仕様書を読むことから始まります。仕様書に書いてあることを読み取り、チェックリストに反映することは簡単です。難しいのは、「書いていないこと」がないかどうかチェックすること、なぜそれが書かれていないのかを確かめることです。書いていないことは仕様書に追記するか、訳あって仕様書に追記できない場合はテストチームのほうでノウハウとして残すかのどちらかの解決策を取る必要があります。言っても、実際には書いていない仕様をバグと誤認し、余計な障害票を起票してしまうことはしょっちゅうです。書いてあることだけから「書いていないこと」があるかどうか読み取ることは本当に難しいです。書かれていない仕様を仕様書に追記するのは開発チームの仕事です。よってわたしから開発チームに追記の依頼をする必要があるのですが、ことがそう簡単に運ばない場合もあります。わたしがまだ新米リーダーだったとき、「書いていない仕様」を読み取ることができずに、余計な障害票を起票してしまったことがありました。わたしは今後このようなことを引き起こさないためにも、この仕様を仕様書に追記してほしいと開発チームに依頼したのですが、断られてしまいました。その仕様は特定の機種にのみ適用されるものだったので、開発チームとしては「いちいち書いていたらきりがない」というのが理由でした。そこを何とか......と食い下がってみたのですが、開発チームのメンバーのひとりから「あなたはまだ仕様が分かっていないようですね。早く理解して下さいよ」と言われ、追い返されてしまいました。後にそのメンバーが出した報告書には例の障害票について「チェックリスト作成者が不慣れだったので」といった意味合いのことが書かれていました。このときは、なんでここまで言われなくてはいけないのか、しかも報告書というかたちで残すなんて......とかなり憤慨しました。今から振り返ると、わたしの言い方にも問題があったのかもと思います。わたしがあのとき、一方的に食い下がるだけでなく開発チームのいい分も聞けていたら、お互い嫌な思いをせずにすんだのかもと反省しています。仕様を覚えてやる!」と思ったのですが、結局何も見せないうちに彼は派遣元に戻ってしまいました。そのことはいまだに心の奥でモヤモヤしていますが、でもそのおかげで話し方、聞き方について考えるようになったので結果的には良かったのかもしれません。