レポート

テストを学んでいない開発者に贈る「WACATE2014冬」参加レポート

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

クラシフィケーション・ツリー法入門

分類木を書くことによりテスト条件のモデリングとテスト設計を行うことができる手法だそうです。記述のルール自体は平易で,機能テストの入力や事前条件の整理から始められそうなので取っつきやすい印象を受けました。演習もあったのでわかりやすかったです。

画像

日本では全く無名らしいこの手法をどうやって知ったのかが気になりますが,講義資料の参考文献には洋書が幾つか並んでいましたので,日ごろから洋書を読まれているのでしょう。私もたまに読むことがあるのですが,どうにもMPを大量消費してしまうもので習慣にはなっていません。見習いたいものです。

温泉とディナーセッション

ここで1日目は一区切り。各セッションで集中するとかなり疲れるものです。温泉とご馳走で回復しましょう。ここからはお酒も入ります。実行委員の二人によるトークショーで参加者の申し込み時のメッセージを紹介したり,技術書を抽選でプレゼントするのが恒例のようです。

画像

宴会ですからもちろんのこと親睦を深める良い機会です。セッション中ではあまり接する機会の少ない他のグループの方や実行委員とお話をするのに向いていると思います。私は実行委員の一人に「ブログにあるほぼ全てのエントリを読みました。昔は??という時代もあったのですね。」と話しかけ,⁠うわぁあああ黒歴史見られてるー!』とMPにダメージを与えることに成功しました。親睦の深め方は人それぞれです。

夜の分科会

宴会も終わり21:00を回ると夜の分科会があります。テーマごとに5つ程度のグループに分かれて議論をするものです。各分科会のテーマは参加者が決めるので,特に議論したいテーマがある方は申し込み時に申請しておくといいでしょう。

画像

私は他の参加者が主催した「モバイルアプリ/サービス開発におけるテストエンジニアの向かう先」というテーマの議論に参加しました。私は組込みシステムを専門としていますが,モバイルアプリとウェブサービスの知識も必要ですので有意義な議論ができたと思っています。明確な結論は出ませんでしたが,各参加者それぞれの普段のソフトウェア開発への関わり方,職種,業種の違いから見られる意見の違いは興味深く,副次的に得られた知見は見逃せないものです。

もしあなたが駆け出しのエンジニアであったり,他の職場のエンジニアと会話をする機会に乏しいのであれば,この機会に自分の言葉で沢山議論に参加するのがおすすめです。自分のレベルや,次にステップアップすべきことがきっと見えてくるでしょう。

さて,公式に組まれている夜の分科会は23:00で終了しますが,悪い大人はどこかの部屋に集って深夜の分科会を始めます(ただの飲み会です⁠⁠。

バグ票をもっとうまく使うために

二日目の最初となるセッションのテーマはバグ票です。良いバグ票についての議論は少なくともBugzillaなどのクラシックなチケット管理システムの時代からあったと記憶していますが,現代でもまだまだ議論できるところはあるようです。

画像

このセッションの内容は,お題として配られたいくつかの悪いバグ票に対して,デバッグ担当とプロジェクトリーダーのサポートという二つの立場で改善して欲しいことを挙げ,その違いが何かを考察するというグループワークでした。

  • デバッグ担当者はバグを再現するための情報が欲しい
  • プロジェクトリーダーのサポート担当者はバグの修正優先順位を決められる情報が欲しい

という傾向がどのグループの結果からも読み取れました。結果自体は予想できるものでしたが,立場によって着目する情報が異なることは,実際の開発の中で各人がバグ票に関わる時にどこまで意識できているかは見直すべきところがあるのではないでしょうか。そう考えさせられたセッションでした。

はじめよう!レビューのいろは

こちらもグループワークであり,お題として配られた仕様書と設計書に対してレビューを行いました。グループの一人は仕様書を書いた人として,一人はレビューの進行役として,他の人はレビュアーとして役割が分かれるという同僚によるテクニカルレビューの形態がとられることとなりました。

お題の仕様書と設計書には実に多くの欠陥があるため,ついつい「こんなことも書けていないのか」という気分になりがちですが,欠陥を書き留めるときも作成者にそれを伝えるときも冷静にならないといけないことを改めて認識できたセッションでした。

画像

1段深い心で人と関わろう

15年間占い師をしているという上條飛鳥さんのセッションです。思想の異なる人たち同士で会議をすると何が起きるかを体験するため,フクロウ,イタチ,ネコ,ロバ,ウシ,ゾウという6種類の動物が集まり,人間によってもたらされた世界的な動物の食料危機を議論するというグループワークを行うことになりました。各人にはその人が扮する動物とその役割が書かれたカードが配られ,役割は他人には明かせないというルールがあります。

私にはイタチのカードが配られ,その役割は「革新的な意見を出す」というものでした。その他の役割には「何でも否定する(ロバ)」⁠直感的に判断する(ウシ)」⁠総合的に判断する(ゾウ)」といったものがあり,各々の意見が同時に出ると議論がなかなか進みません。どの立場の意見も必要なのですが,議論のフェーズごとに選ばないといけないことがよくわかりました。

セッション中では明らかにされませんでしたが,元ネタは『エドワード・デボノ博士のSix Thinking Hats』ですね。思考ツールや会議を進めるフレームワークとしての紹介ではなく,各帽子を価値観や信条ととらえてワークセッションに仕立てているのが特徴的だと思いました。

画像

なお,革新的な意見を出す役割のあるイタチとして出した意見は,水道・ガス・電気・通信などのインフラを動物達が協力して徹底的に破壊することで,人類が立ち入れないエリアを作ろうというB級映画にありそうなものでした。同様に人類を攻撃する結論を出したグループが全体の6割を占めました。仮想設定に対するグループワークとはいえ,ずいぶんアグレッシブなものです。

ソフトウェア開発に必要な技術としてのコミュニケーション

招待講演者である名古屋大学の森崎 修司先生によるセッションです。コンウェイの法則やブルックスの法則から始まり,情報共有とコミュニケーションについて,ご自身の豊富な経験を交えてお話頂きました。研究者となる以前は開発者であったこと,研究者となった現在でも幾多の企業と関わっていること,シンポジウムにおける組織的活動に関わっていることもわかり,コミュニケーションに関する主張に説得力があるように感じました。終始意気揚々とした口調でしたが,裏には『あなたはどうしてゆこうと考えていますか?』という真っすぐなメッセージがあったようにも感じました。

こう書くとご本人にどう捉えられるか不安なのですが,シンポジウムでお見かけする森崎先生はどちらかと言うとズバッとした明言を避ける方という印象がありました。しかし,今回のWACATEにおける森崎先生は明朗快活な一本筋の主張があったように思います(特に深夜の分科会にて⁠⁠。

画像

開発者の皆さん,WACATEに参加しましょう!

私はWACATEに2014年の夏と冬の2回参加しました。ソフトウェアテスト技術等の習得はもとより,私から見て他業界のエンジニアと知り合えたことは貴重であり,その後の努力を続ける契機になっています。素晴らしい機会に感謝しています。

ただ,ポジションペーパーの内容から察すると,純粋な開発者の参加比率は少なく,⁠もっと参加した方が良いのでは?」と感じています。

勉強会に参加するような開発者の層には,より良い設計を追求したり,モダンなプログラミング言語や開発ツールを習得するといったことに興味を持っている方が恐らく多いことでしょう。そして,テストにはあまり興味が無いかもしれません。私がそうでした。⁠テストに技術なんてあるんだ」くらいに思っていました。

しかし今ではテストの基礎知識は開発者にとって必須だと考えています。開発者がバグを見つける技術を追求すると,設計時に何を誤りやすいのかを自然と追求することになり,ひいては設計スキルの向上に役立ちます。テストのプロセスを学べば,テスターとのコミュニケーションが円滑になります。特に上位のテストレベルの活動については,組織によっては開発者が知らないことが多いかもしれません。ここの知識を埋めるだけでもソフトウェア開発の世界が大きく広がって見えることでしょう。

つまり,テストを学んでいない開発者の方々はWACATEに参加すると良いと思います。これは強引なポジショントークと思うでしょうか?いいえ,WACATEはそれだけの価値ある機会を与えられる場なのです。少しでも共感した方は次回(6月予定)にお会いしましょう。

画像

著者プロフィール

金子昌永(かねこまさのり)

クラリオン株式会社に所属。プログラマー,プランナーを経て,現在は社内のソフトウェア開発現場をソフトウェア工学の力で支援し,品質と開発スピードの向上に努めている。特に,テスト駆動開発や静的コード解析など,ソースコード品質に関する技術に関心がある。日立グループ内SNSを通じてWACATE創立者等の先駆者達と出会ったことをきっかけにソフトウェアテストを学ぶ。最近の目標はシンポジウム等での発表や執筆活動。

Twitter:@masskaneko