mixi engineer blog

*** 引っ越しました。最新の情報はこちら → https://medium.com/mixi-developers *** ミクシィ・グループで、実際に開発に携わっているエンジニア達が執筆している公式ブログです。様々なサービスの開発や運用を行っていく際に得た技術情報から採用情報まで、有益な情報を幅広く取り扱っています。

JaSST'13 Tokyo に参加して、考えたこと

こんにちは。
アサシンクリード3」というタイトルから、てっきり3部作だと思って、シリーズをプレイし始めたところ、実は5部作だったという事実を知って、軽く戦慄している品質管理部門の柿崎です。ちなみに2までクリアしました。


先日、国内最大級のソフトウェアテストシンポジウムである「JaSST'13 Tokyo」に参加して来たので、レポートします。

と、思ったのですが、既に素敵なレポートがあちらこちらに存在するので、シンポジウムを通して見えてきた、ミクシィの品質保証、QAチームを取り巻く状況を書いてみたいと思います。

テストの自動化

ここ数年、「テストの自動化」はホットなキーワードであり続けています。今年のシンポジウムでも、幾つかテスト自動化に関するセッションが開かれていました。

自分の参加したセッションでは、テスト自動化の難しさや、自動化を担えるエンジニア像について議論が交わされていました。世の開発現場では、まだまだ自動テストの導入が進んでいない、という現状があるようです。

ミクシィでは、テスト自動化は大分進んでいて、ユニットテストや機能テストは開発者自身が書く、という文化も根付いています。テスト好きな開発者も多数在籍しているので、自動テストの面ではとても恵まれた環境にあると思われます。

欠陥報告を大事にする

欠陥の分類・分析、再発防止策に関するセッションにも参加しました。
セッションでは、欠陥の構造を徹底的に分析する手法が紹介されていました。
(何が原因でミスが発生したのか?原因の背景は何か?というような分析です)

ミクシィでも、徹底的とまでは行きませんが、欠陥の分析や再発防止に関する取り組みが存在します。

ミクシィでは欠陥を発生させてしまった場合、報告が義務付けられており、原因と再発防止策の記載が必須となっています。報告の中で最も重要視されるのは「再発防止策」の部分です。

再発防止に関しては「人は間違えるもの」という前提の下、できるだけ機械化・自動化された対応を行うことが求められます。この要求は原因分析の指針も同時に示していて、欠陥の原因究明を、誰かの不注意や、確認不足等で終わらせずに、システムの構造までしっかり考えることが、肝要とされています。

欠陥の報告と振り返りは、全社公開の形式で行われていますが、決して欠陥を発生させた人の吊し上げでは無く、「ノウハウの蓄積」として、うまく機能しています。現場によっては、バグ分析が晒し上げっぽく捉えられてしまうこともあるそうなので、この点でも、ミクシィは恵まれた環境だと言えるかもしれません。

アジャイル開発

アジャイル開発についても、1つセッションが設けられていたようです。

私自身は、こちらのセッションには参加が叶いませんでしたが、ミクシィでも、スクラム開発の取り組みが活発に行われており、QAチームもスクラムチームに参加して、新しいテストプロセスを模索している最中です。

取り組み内容の詳細についてはこちらのエントリーに預けることにして、ミクシィでのスクラム開発におけるテストプロセスでは、探索的テスト以外にも特徴的な点があって、その中のひとつに「ピアレビューの積極活用」というものがあります。

以前、ミクシィではピアレビューをリリース承認のテストと定義付けていなかったのですが、現在は、ピアレビュー後のリリースが可能になっています。
(※もちろん全ての要件ではなく、QAテストが必須のプロジェクトも存在します)

これはスクラム開発の推進によって、開発のバッチサイズがコンパクトになり、テスト範囲が絞られたことや、エンジニア・ディレクター・QA問わず、ミクシィのスタッフの多くが品質に対して高い意識を持っていることで、実現できたことだと思います。

課題

と、ここまで良いことばっかり書いてみましたが、課題もあります。

まず、課題のひとつとして「テスト品質の指標化が難しい」という点が挙げられます。
シンポジウムでは「DDP(欠陥検出率)」というものが紹介されていましたが、現在のミクシィの開発プロセスでは、そもそもの不具合検出数が少なく済んでしまうパターンも多く、テストの価値について、どのように表現したら良いのか、頭を悩ませています。
(ちなみにコード品質については、こちらの仕組みが用意されています。是非ご一読ください)

更に別の課題として「テストのコモディティ化」という点があります。
前項で、テスト自動化や、ピアレビューの活用について取り上げましたが、これはテストがQAチームだけの活動ではないことを、端的にあらわしていると考えられます。

シンポジウムの基調講演では、テストのコモディティ化が将来の課題として語られていましたが、ミクシィでは進行形で直面している課題であり、今はテスターの新しい役割について考えている毎日です。

テスターの役割については、岸田孝一氏の招待講演から多くのアイデアを頂けたので、
自分の中でしっかり昇華して、現場で実践して、その結果をまた紹介できたら良いな、と考えています。

まとめ

そんなわけで、シンポジウムで多く目にしたキーワードを基に、ミクシィの品質保証、QAチームの今、をご紹介させて頂きました。

ミクシィの開発現場では、テストの重要性がしっかりと認識されており、テスト好きなエンジニアや、QAチームにとって、とても恵まれた環境になっています。その分、変化のスピードが早く、テストの価値を問われ続ける、チャレンジングな環境だとも言えます。今回のシンポジウムは、ミクシィのQAチームの状況を見つめなおす、良い機会になったと思います。

JaSSTは定期的に、そして東京以外の都市でも開催されているので、テストに関わる人達は、是非一度参加されることをおすすめします。