開会の辞
Tony Voellm(Google)
開会の基調講演 - 品質保証からテスト エンジニアリングへの進化
Ari Shamash(Google)
アプリをビルドしました。そこから脱却し、ある程度の資金を調達し、資金をすべて使い、ゼロからスタートして「適切」に実現できると思いました。しかし、新機能に対する要求は非常に高く、今、かつてない規模でかつてない規模で成果を上げるよう求められています。やれやれ!今後は、
廃棄してゼロからスタートすることはできません。既存の機能を進化させるだけで、息をのむほど速いスピードで高品質の機能を追加できます。さらに、既存のデータが適切に機能することを確かめる必要があります。これを実現するには、幸いなことに、この一般的なシナリオに対処するソフトウェア エンジニアリング業界内に新しい分野が形成されています。Google ではこれを「テスト エンジニアリング」と呼んでいます。
このセッションでは、テスト エンジニアリングとは何なのか、また品質保証からどのように発展したか、業界全体がどのようにテスト エンジニアリングを実装したかについて(Google での実装方法の具体例とともに)説明します。
大規模な Twitter でのシステムのテスト
James Waldrop(Twitter)
James は、Twitter のパフォーマンス テストに使用するツール、プロセス、理念について議論します。特に、Iago オープンソース負荷テスト ライブラリに焦点を当てます。このライブラリは、Twitter のエンジニアリング チームがコードを本番環境にデプロイする前に負荷テストを実行できるように記述しました。このセッションでは、これらのテストの一部(ソースコードを含む)の実装の詳細と、OAuth や任意の Thrift プロトコルなどの複雑な要素の管理方法について説明します。
モバイル OS のテスト方法
David Burns(Mozilla)と Malini Das(Mozilla)
これが、Mozilla が FirefoxOS の世界に足を踏み入れることになったときに直面した問題です。何から始めて、どのように行うべきかが、興味深いタスクであることがわかりました。この問題を解決する方法と、新しいフレームワークを作成した方法をご紹介します。
継続的デリバリー パイプラインでのモバイルの自動化
Igor Dorovskikh(Expedia)、Kaustubh Gawande(Expedia)
Expedia では、2012 年初頭にモバイルウェブ アプリと iOS/Android アプリへの投資を開始しました。同時に、テスト エンジニアは、プロダクトの品質とテスト可能性を構築するテスト自動化ソリューションの開発を最初から開始しました。この講演では、オープンソース ツールを活用して Expedia のアジャイル開発および継続的デリバリー環境で自動テストを構築した経験と教訓をご紹介します。テスト ピラミッドについて説明し、効果的なオープンソース ツールについて詳しく説明します。使用しているオープンソース ツールには、Cucumber、ウェブ自動化ツール Selenium-WebDriver、iOS 自動化ツール Frank、Android 自動化ツール Robotium と Calabash、継続的インテグレーション システムである Jenkins などの BDD ツールがあります。さらに、TDD、ペア プログラミング、ビルド、テスト ラジエーターなど、Google が導入に取り組んでいるアジャイル デリバリー原則の一部を紹介します。最後に、アジャイルなテストの自動化によって得られたメリットと、それによって継続的デリバリーの目標がどのように達成されるかをご紹介します。
GStreamer と OpenCV によるセットトップ ボックス自動テスト
David Röthlisberger(YouView)
GStreamer のコマンドライン ツールと OpenCV を使用して、3 分で動画キャプチャ画像認識システムを構築します。(GStreamer はオープンソースのメディア処理フレームワークで、OpenCV は「Open Computer Vision」であり、オープンソースの画像処理ライブラリです)。
このようなシステムの代表的な例は、セットトップ ボックスの UI テストを自動化するために YouView で開発されたオープンソースのツールである http://stb-tester.com です。GStreamer の基盤である柔軟性、それがもたらす可能性、今後の課題について、stb-tester について説明します。
Chrome 向け Webdriver
Ken Kania(Google)
Windows のみのブラウザとして始まった Chrome は、Mac、Linux、Chrome OS に加え、最近では Android と iOS にも拡大しました。これらのプラットフォームでウェブ アプリケーションをユーザーレベルでテストすることは困難で、さまざまな自動化アプローチが必要でした。このセッションでは、すべてのプラットフォームで WebDriver を使用できるようにするために Chrome チームが行っている作業について説明します。基礎となるアプローチの技術的な見解が含まれますが、デベロッパーが新しい ChromeDriver を使用して Chrome の各種プラットフォームのテストを作成する方法に焦点を当てます。また、プロジェクトの現在の状態と、将来に向けたロードマップも取り上げます。
Karma - JavaScript のテストランナー
Vojta Jina(Google)
Karma の概要 - テストブラウザで、実際のブラウザでの JavaScript アプリケーションのテストをスムーズで快適にするテストランナーです。
多くのブラウザやデバイスで機能する JavaScript アプリケーションを作成する場合、テストは任意です。しかし、このようなさまざまな環境でテストを実行するのは困難です。Karma さんは、この大変な作業を簡単な作業に変えています。実際のブラウザやスマートフォンやタブレットなどのデバイスで、ターミナルやお気に入りの IDE から直接 JavaScript テストを実行できます。
動画品質の自動測定
Patrik Höglund(Google)
はい。動画の品質など、複雑な主観的な測定値を自動的にテストできます。このトークでは、WebRTC ビデオ通話の継続的な自動テストをどのように構築したかを説明します。ツールチェーンの概要と、構築中に発生した課題について説明します。これは、メディアテストをレベルアップさせる方法を確認したい場合に最適です。
アプリケーションが適切に機能しない場合
Minal Mishra(Netflix)
モバイル / タブレット コンピューティングの台頭により、ソフトウェア業界はアプリケーション開発プラットフォームに浸透するようになりました。コンピューティング プラットフォームで消費者アプリケーションを開発することで、エンドユーザーは自分自身を魔法のように体験できます。消費者向けのソフトウェア企業は、これらのプラットフォーム向けのアプリケーションの開発において、常に最大限に能力を発揮しようとします。しかし、アプリケーション開発における最大の課題は、企業がアプリケーションの最初のバージョンをロールアウトした後に初めて始まります。消費者とソフトウェア企業は、最新の機能を開発し、最高品質でできるだけ早く開発したいと考えています。その結果、スタックのあらゆるレイヤでコードの絶えずのチャーンが発生しています。UI 自動化エンジニアは、さまざまな問題検出システムを構築し、アプリケーションの問題をより早く検出します。この講演では、このようなアプリケーション システムの背後にある課題や、アプリケーション レイヤの外にある問題を見つけるのに役立ったものの、ユーザー エクスペリエンスに悪影響を及ぼした問題を検出しました。
教育ゲームとテストのテスト用
Tao Xie(ノースカロライナ州立大学)
その講演では、Pex4Fun(http://www.pexforfun.com/)が紹介されています。Pex4Fun は自動テスト生成を利用して、何十万人ものユーザーにスケールできるオンライン プログラミング システムでの自動採点を支えています。教室の外でもプログラミングを重視したゲーム体験を提供し、パラメータ化された単体テストの作成などのテストスキルを含め、さまざまなプログラミングとソフトウェア エンジニアリングのスキルを習得できるようにします。Pex4Fun は、課題の採点という既知の問題に大きく貢献すると同時に、インタラクティブなゲームをベースにして楽しい学習体験をもたらします。Pex4Fun は、地域での人気を高めています。2010 年 6 月に一般公開されて以来、「Ask Pex!」ボタン(ユーザーが Pex4Fun でゲームを解決するために行った試行)のクリック数は、2013 年初頭の時点で 100 万回を超えています。
基調講演の締めくくり - Facebook が Android で Facebook をテストする方法
Simon Stewart(Facebook)
Facebook は、最もよく利用されている Android アプリの一つです。このセッションでは、各リリースでできるだけ良い状態を実現するために Facebook が行っていることを紹介します。コードの管理方法から、テスト方法、dogfood まで、すべてを説明します。