テストエンジニア時代の悲喜こもごもが今のわたしを作った

「JaSST'10 Hokkaido」参加レポート(その2)――銀の弾丸と欠陥管理

»

 こんにちは、第3バイオリンです。

 前回から間が空いてしまいましたが、「JaSST'10 Hokkaido」の参加レポート第2弾です。

 なお、このときの発表資料がJaSSTのサイトにアップされました。よろしければ、こちらもあわせてご覧ください。

■テスト力/レビュー力向上に向けた欠陥管理のススメ

 日本IBMの細川宣啓さんの発表です。

 まず最初に、「銀の弾丸」と「欠陥管理」、このふたつのテーマを同時進行で進める、と説明がありました(このように、映画やドラマなどで複数のストーリーが切り替わりながら同時進行する手法を「クレショフ効果」というそうです。これも細川さんから説明がありました)。

 さらに、みなさんがTwitterでハッシュタグをつけてつぶやくのを見ています、興味深いツイートがあればそれにも答えます、と。前代未聞の双方向プレゼンです。さすがはプレゼンのプロ、細川さんです。

 さて、本題に入りましょう。

 世の中にはいろいろなテスト技法が出回っています。しかし、どの技法にも一長一短があります。どんなバグもこれひとつですべて解決! などという万能の技法、いわゆる「銀の弾丸」は存在しません。

 また、たいていのプロジェクトでは、テスト中に見つけたバグをDBで管理していると思います。しかし、せっかく管理しているのに次のバージョンでまた同じようなバグが出てしまう、プロジェクト間でバグ情報が共有できず、あちこちのプロジェクトで同じようなバグに悩まされている、というように、バグ情報がうまく活用できていない、という状況になっていることが多いのではないかと思います。

 例えば、医学であれば病気の症例すべて(稀な事例も含めて)の文献がデータベース化されているそうです。その数はおよそ900万件。しかし、ソフトウェアのバグについて、その現象や原因、対策方法といった情報が、プロジェクトや会社をまたいでデータベース化されている……という話はありません。

 テスト技法は便利ですが、やみくもに使えばいいというものではありません。大切なことは、「どの技法を使うか」ではなく「どういうバグを見つけるか」なのです。そのためには、まず倒したいバグのことを知らなくては、除去することはもちろん、見つけることすらできません。例えば、最近の若いエンジニアは「桁落ち」が原因のバグを見つけられないそうです。その理由は、そもそも「桁落ち」が何なのかを知らないことからくるそうです。

 細川さんは、これまでに見つけたバグについて、メモを取っているそうです。メモして覚えておけば、一度見たことがあるバグに次に出くわしたとき、「これ前に見たことがある」と分かります。それだけでもだいぶ違うそうです。

 細川さんは、個人的にメモするだけでなく、誰でも参照できるバグのデータベースのようなものでバグ情報を共有できるようにすることが、テストやレビューの専門家の育成に必要なのではないか、と話しました。

 バグ情報をデータベースにするための第一歩として、バグを階層的に分類する必要があります。なぜなら、一口にバグといっても重度のバグ、軽度のバグがあり、その程度もさまざまです。これらすべてを一度にまとめて除去しようとすると、かえって効率が悪くなってしまいます。こういうときは軽度のバグから順番に除去するべきです。

 では、具体的にはどのような基準をもって分類すればいいのでしょうか。細川さんは、以下の3つのメトリクスの組み合わせで分類する方法を提案しました。

1. 検出難易度
  開発者またはプロジェクトメンバーによる自己レビューで検出しにくいバグ

2. 除去難易度
  存在は確認できるものの、除去に手間のかかるバグ

3. 予防難易度
  再発予防が難しいバグ

 バグを分類して整理をすれば、次の予想もつきやすくなる、と細川さんはおっしゃいました。

 わたしは社内で、プロジェクトのバグの傾向調査をやっています。しかし現状は傾向をグラフ化して出すだけで、プロジェクトのメンバーにバグを減らすためのアドバイスもできず、結局また同じようなグラフを提示する、の繰り返しになっています。この状況、どうにかならないものか……とモヤモヤしていたところだったので、細川さんの発表を聞いて、まさに悩みをズバリと言い当てられた気分でした。

 また、これからテストに携わるプロジェクトで、テストリーダーに「勉強会とか行ってるなら、何かいい技法とか知らないかな? 今度のプロジェクトで使えそうなのがあったら教えて」と言われています。提案するときは、いろいろと注意しようと思いました。

■今年もやります!ライトニングトークス ~自分の殻をぶち破れ!~

 発表者9名による、ライトニングトークス(以下、LT)大会です。それぞれが、5分間で熱い想いを語ってくれました。簡単に、感想を述べたいと思います。

長谷川聡さん:「テストの現場が楽しくなる(かもしれない)ちょっとした取り組み」

 前回の「JaSST'09 Hokkaido」では釣りの話をしたという長谷川さん。今回はテストチームを盛り上げる「現場を楽しむ方法」について紹介してくれました。仕事が楽しいとは、自信がもてること、自分のやりたいようにできること、自分の仕事に価値を感じること。この意見はわたしも共感できました。

島田浩二さん:「Rubyにおけるテスティング環境の紹介(導入編)」

 「日本Rubyの会」「Ruby札幌」にも所属する島田さん。開発者の視点でテストについて語ってくれました。「テストとは、エラーを見つけるつもりでプログラムを実践する過程」。エラーを見つける、という視点はわたしも意識したいです。

鶴谷俊之さん:「ゲンバノチカラを最大化するためのたった一つの冴えた考え方」

 業務システムを開発している鶴谷さんにとって、タイトルに対する答えは「コードを書くことに専念できる環境を整えること」。コードを書く時間を奪うのは無駄な中間成果物のドキュメント、人手に頼るテスト。それらを減らすために必要なのは、本当にやるべきところに注力し、それ以外のところは自動化するように先手を打つこと語ってくれました。シンプルだけど、大切なことだとわたしも思います。

杉田正実さん:「We will go to outside the world.」

 WACATEでご一緒させていただいている杉田さん。海外のテストエンジニア事情を紹介し、いずれ世界中の英語を話すテストエンジニアと競っていくことになる現状を伝えました。世界に通用するテストエンジニアになるためには英語力以外にも必要なスキルはたくさんある、まずは自分の弱みと強みを知ること、と語ってくれました。これからは、海外で働く予定がないから世界のことは気にしなくていい、という考えでは通用しないということをかみ締めました。

奥村有紀子さん:「3段階レビュー」

 デバッグ工学研究所の奥村さん。時期と目的を3段階に分けたレビューについて説明してくれました。

  • 1段階目:テスト設計開始前に、テスト設計の教育のためのレビュー
  • 2段階目:テスト設計中に、手戻り防止とリスク軽減のためのレビュー
  • 3段階目:テスト設計終了後に、テストケースの問題指摘と品質向上のためのレビュー

 レビューを通してテスト設計の教育を行う、という視点がわたしには新鮮でした。

櫻井清敬さん:「はじめてのシナリオテスト」

 日本ナレッジの櫻井さん。会社の上司から無茶振り(!)されて、初めてシナリオテストを実施したときのエピソードを語ってくれました。初めてだったためか、残念ながら今回は目新しいバグを見つけることができなかったという櫻井さん。今後の活躍に期待しています。

秋元毅彦さん:「くり返し使える!品質特性テンプレート」

 日本アイビーエム・ソリューション・サービスの秋元さん。主観的要素が入り込みがちな非機能要件のテストケースを、品質特性のテンプレートを適用して作成するという取り組みについて説明してくれました。ISO/IEC9126-1でも規格化されている「品質特性」。抽象的な特性について定義し、具体的な事例に落とし込むまでのプロセスをテンプレート化しました。メンバーと共通認識を作るためにテンプレート化して、くり返し使う、というお話が印象的でした。

小田部健さん:「マインドマップで始めるブレない目標作り」

 こちらもWACATEでご一緒させていただいている小田部さん。目標作りにマインドマップを取り入れるという方法について説明してくれました。まず「外側(組織的な動機)」「内側(プライベートな動機)」「生活(生活維持の動機)」の3つを軸に、優先順位を決めながらRIA(Reason, Image, Action)の整合性を取る、RIAに矛盾があるようであれば目標を変形していく……こうすることで、自分のやりたいことが見えるようになるというお話でした。わたしは会社の目標を作るのに毎年苦労しています(苦笑)。この方法を、来年の目標作りで試してみようかなと思いました。

鈴木三紀夫さん:「意地悪テストの観点」

 WACATEだけでなくTEF東海の勉強会でもお世話になった鈴木さん。テストケースを漢字一文字で表す、という斬新なテスト観点を紹介してくれました。国語辞典を片手に選び抜いた72文字を「裏」と「表」に分けて、図式化しました。漢字の配置、そしてフォントにもこだわった図は必見です!

 どの発表からも、発表者それぞれの個性と熱い想いが伝わってきました。また、わたし自身が「JaSST'10 Hokkaido」の1週間前に、エンジニアライフのコラムニストLT大会でLTをやったばかりだったので、発表者の方々のスライドの作り方、プレゼン方法も興味深く拝見させていただきました。

 わたしも来年あたりにJaSSTでLTをやりたいと思ったのはまた、別の話です。

◇ ◇ ◇

 第2回のレポートはここまでにします。次回は最終回です。お楽しみに!

Comment(0)

コメント

コメントを投稿する