グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか?
グーグルは検索エンジンだけではなく、メールソフトのGmail、オフィス系ソフトのGoogle Apps、WebブラウザのChromeやOSのAndroidなど、さまざまな種類と規模のソフトウェアを開発しています。
それらはどのようにテストされ品質管理されているのでしょうか? グーグルのブログGoogle Testing Blogに、Test Engineering DirectorのJames A Whittaker氏による「How Google Tests Software」がポストされ、その概要を伝えています。
3つのチームからなるEngineering Productivity
テスターはデベロッパーがテストできるようにするのが仕事
このようにEngineering Productivityのメンバーのレポートラインと所属を分けることのメリットを、Whittaker氏は次のように書いています。ここにグーグルの品質管理の大事なポイントがあるようです。 This separation of project and reporting structures has its challenges. By far the biggest is that testers are an external resource. Product teams can't place too big a bet on them and must keep their quality house in order. プロジェクトとレポートラインを分けることは1つのチャレンジだ。これまでは、テスターは︵製品チームにとって︶外部のリソースだった。製品チームにとってテストとはあまりに多くのリソースを必要とするため、それを適切に維持することができなかったのだ。 一般にテストは製品開発の最後の段階で行われることが多く、製品チーム/開発チームの中にテストチームを抱えても、テストフェーズ以外は手持ちぶさたになってしまうため、多くの開発組織ではテストチームは製品チーム/開発チームとは別に存在し、必要なときに登場してテストを行う、というケースがほとんどです。 ところがグーグルではEngineering Productivityに属する、テストのノウハウを持ち支援を行うエンジニアたちは、前述のように各製品チームに所属しています。 Yes, that's right: at Google it's the product teams that own quality, not testers. Every developer is expected to do their own testing. The job of the tester is to make sure they have the automation infrastructure and enabling processes that support this self reliance. Testers enable developers to test. そう、グーグルではテストチームではなく、製品チームが自身で品質管理を負っている。各デベロッパは自身でテストすることを期待されている。テスターの仕事は、自動テストのインフラを確立することと、それによってデベロッパ自身がそれをプロセスの中で実行できるようにすること。テスターはデベロッパーがテストできるようにするのだ。 各製品チームは、Engineering Productivityのメンバーの支援を受けつつ、自分たちの責任でテストを行わなければならない、ということがグーグルのテストを行う際のポリシーのようです。 しかも各製品チームが自分たちの責任でテストを行うと同時に、社内の優れた開発ノウハウ、テストのノウハウ、ツールといったものがEngineering Productivityのレポートラインによって速やかに全社で共有できる利点もある、とWhittaker氏は書いています。テストエンジニアはテストへの取り組みを促進する
あわせて読みたい
次期電子書籍フォーマット「EPUB 3」のパブリックドラフトが公開、5月にはファイナルの予定
≪前の記事
Publickeyがアルファブロガー・アワード 2010を受賞しました。ありがとうございました!