GTAC 2016: プレゼンテーション

開会の辞

Matt Lowrie(Google)

ビジネスとエンジニアリングの生産性の進化

Manasi Joshi(Google)

リンク: 動画スライド

この基調講演では、Google でエンジニアリングの規範がどう進化したか、またどのように変化し、Google のビジネス成長に影響を与え、安定し、開発、リリース、モニタリングのプロセスを通して大きな信頼を築けるようにしているのかを説明します。また、現在直面しているいくつかの課題や、Google が直面している高度に接続された/業種横断型のプロダクト エクスペリエンスにおけるクロス プラットフォームのテストの新たな領域についてもご説明します。

テレプレゼンス ロボット運転の自動化

Tanya Jenkins(Cantilever コンサルティング)

リンク: 動画スライド

電話機の駆動インターフェースのテストは困難である。実世界で動作し、人間やオブジェクトとやり取りしますが、管理された環境でテストする必要があります。現実的なリモート運転環境の構築に取り組むと同時に、デバイスの位置や位置を確認できない場合に、その位置と位置を確認するにはどうすればよいですか?革新的なソリューションをご紹介します。

ウォレットの内容

Hima Mandali(Capital One)

リンク: 動画スライド

Capital One は、7,000 万件以上の口座を持つ米国最大のクレジット カード会社です。Capital One では、お客様に優れたデジタル エクスペリエンスを提供する優れたプロダクトを多数構築しています。モバイル デバイスが当社の顧客にとって好ましいチャネルとなりつつあるため、この講演では、どのようにモバイル ウェブアプリのテスト自動化の問題を解決したか、そしてより迅速なソフトウェア デリバリー パイプラインを実現するために行ったことに焦点を当てます。また、問題解決のために開発したオープンソース ツールと、オープンソース ダッシュボードもご紹介します。

テスト実行自動化の統計情報を使用して、どのテストを実行するかを予測する

Boris Prikhodky(Unity Technologies)

リンク: 動画スライド

テストはアプリケーション開発プロセスに欠かせない要素になっていますが、救助者が日常生活でボトルネックになると、テストはどう行うべきでしょうか。ここでは、テスト構成が実行されるのに 3 ~ 6 時間かかる場合のエクスペリエンスについての経験を示します。シンプルながらも強力なアプローチが紹介されているので、ビルドファームやテストファームでのグリーンテストの実行に貴重な時間を節約できます。プロセスを改善する方法についても説明します。

Windows と Windows Phone 向けの Selenium ベースのテスト自動化

Nikolai Abalov(2gis)

リンク: 動画スライド

ウェブ アプリケーションのテスト自動化には Selenium を使用します。iOS と Android のモバイルアプリには Appium が用意されています。しかし、Windows デスクトップと Windows Phone/Windows Mobile については、Selelenium ベースの独自のソリューションを考えなければなりませんでした。そのため、Winium を作成しました。Winium は、Windows のデスクトップ アプリと Windows Phone/モバイルアプリのテストを自動化するためのオープンソース ソリューションです。Winium はセレンをベースとしているため、自動化のニーズに応じて比較的簡単に使用できます。既存の Selenium インフラストラクチャに統合できます。このセッションでは、Winium を構成し、Winium.Desktop と Winium.Mobile の両方のデモを行うプロジェクトを紹介します。

テストのユニークな側面

Brian Vanpee(Google)

リンク: 動画スライド

すべてのバグが同じように作られているわけではありません。私たちが使うプログラミング言語の間違いは、原因だということがあります。優秀なプログラマーやテスターも、それを突き止めることがよくあります。気になる話題を見てみましょう。Google が日常的に使用している多くの言語の中から、厳選された例をご紹介します。最後に、C、Java、Objective-C、PHP、そしてすべての人々に愛用されている JavaScript のような奇妙な例を見ていきましょう。

モバイルテスト環境の設定用の ML アルゴリズム

Rajkumar Bhojan(Wipro テクノロジー)

リンク: 動画スライド

モバイル コンピューティング テクノロジーの急速な進歩に伴い、モバイル デバイスでのモバイルアプリのテストに対する需要は大きくなっています。モバイル デバイス管理はモバイルアプリ テストにおいて重要な役割を果たしています。モバイル デバイス管理における課題を理解することは、その解決と同じくらい重要です。 デバイス固有の問題を回避するには、テスト自動化デベロッパーが多数のデバイスでアプリをテストする必要があるため、コストと効率が悪くなります。このトークでは、モバイルテスト環境をセットアップする適切なデバイスセットを機械学習アルゴリズムで特定する方法を示します。

「聞こえますか?」 - 音声品質テストの実施

Alexander BrauckmanDan Hislop(Citrix)

リンク: 動画スライド

IATF: 新しい自動化されたクロス プラットフォームとマルチデバイス API テスト フレームワーク

Yanbin Zhang(Intel)

リンク: 動画スライド

Intel は、WebRTC テクノロジーの採用を容易にし、新しいアプリケーションを広く展開または作成できるようにするため、エンドツーエンドの WebRTC ソリューションである Intel® Collaboration Suite for WebRTC を開発しました。現在の Intel は、世界中で Intel® Collaboration Suite for WebRTC のエコシステムを拡大し続けています。 協力は、教育、医療、業界クラウド、ソーシャル メディアのオンライン放送、ビデオ会議、ウェアラブルなど、さまざまな領域をカバーしています。SDK API でサポートされているプラットフォームの数は急増しており、クロス プラットフォームの互換性と統合テストの作業は急増しています。 さまざまなプラットフォームでさまざまな SDK の相互運用性を自動的にテストする方法が大きな問題になっています。このトークでは、自動クロス プラットフォームとマルチデバイス API テスト フレームワーク - IATF を紹介します。さまざまなプラットフォーム間での通信を必要とする、クロス プラットフォームやマルチデバイスの SDK のテストにも採用できます。

ソフトウェア テストで正式なコンセプト分析を使用する

Fedor Strok(Yandex/NRU HSE)

リンク: 動画スライド

正式な概念分析では、一連の属性(一連の属性で表される)とともに、正式なオントロジーを構築するためのツールボックスが提供されます。この代数理論のブランチは 1984 年に導入され、現在ではさまざまなデータ マイニング タスクに適用されています。このトークでは、ソフトウェア テストで特に役立つ手法(特に、便利なテストレポートや、半自動化されたテストケースの導出のために正式なオントロジーを使用する)に焦点を当てます。

継続的インテグレーションにおける不安定なテスト: Google の現在のプラクティスと今後の方向性

John Micco(Google)

と、および

Atif Memon(メリーランド大学、カレッジパーク)

リンク: 動画スライド

Google の大規模なコーパスは、大規模な継続的インテグレーション システム上で継続的に実行されます。このデータを確認すると、不安定なテストが原因で複数の項目で多くの無駄が生じていることがわかります。Google は、この影響を理解して、システムに見られる不確実性の本質的なレベルを検出し、軽減する能力の向上に取り組んでいます。

FTW、デベロッパー エクスペリエンス

Niranjan Tulpule(Google)

リンク: 動画スライド

Docker ベースの地理的分散テスト ファーム - Intel Android プログラムでインフラストラクチャ プラクティスをテストする

Jerry Yu(Intel)および Guobing Chen(Intel)

リンク: 動画スライド

OpenHTF - オープンソースのハードウェア テスト フレームワーク

Joe Ethier(Google)および John Hawley(Google)

リンク: 動画スライド

ループの非効率を検出するためのテスト生成の指示

Monika Dhok(インド科学研究所)

リンク: 動画スライド

多くの Java ライブラリで、ループの冗長走査がパフォーマンスのバグのソースとして特定されています。その結果、これらのパフォーマンス バグを自動的に検出するための静的および動的分析手法が設計されました。ただし、動的分析の効果は分析対象の入力テストによって異なりますが、これらの問題の存在を自動的に検証し、修正を検証して将来のバージョンで回帰を回避するという点では、静的分析は有効ではありません。Java ライブラリのループ非効率を検出するためのテストを自動的に生成する新しいアプローチを提案します。このセッションでは、この作業の概要を説明します。

スピードへのニーズ - 自動化テストの所要時間を 3 時間から 3 分に短縮

Emanuil Slavov(Komfo Inc)

リンク: 動画スライド

急速に進化し、最初にマークされる環境においては、すべての自動テストが低速になります。これは、皆さんが無視する室内のゾウです。もっともな理由があります。高速で信頼性の高い有用な自動テストを実現するのは困難です。ただし、選択肢はありません。低速の自動テストでは、より迅速に顧客に機能をリリースすることになります。Komfo では、毎晩 3 時間以上テストを実行しています。実行時間に制限はなく、テストは、フィードバック ループとして不安定になり、使用できなくなりました。ある時点で、テストが 20 日間連続して失敗していました。本番環境に回帰バグが発生し始めました。この困難を乗り越え、多くの労力と労力を費やした結果、同じテストを 3 分未満で実施できるようになりました。 これは、60 倍高速のテストを達成したという継続的な改善のストーリーです。

コード カバレッジは、実際のテストスイートの有効性を高い精度で予測するものです

Rahul Gopinath(オレゴン州立大学)

リンク: 動画スライド

ClusterRunner: 水平方向のスケーリングで迅速なテスト フィードバックを容易に

Taejun Lee(Box Inc)、Joseph Harrington(Box Inc)

リンク: 動画スライド

Box は、commit ごとに約 30 時間の単体テストと統合テストを実行します。Google は、オープンソースのテスト配信プラットフォームである ClusterRunner を使用して、これらを 17 分以内に実行するように並列化しています。Box に多くのテストがあるのはなぜですか?ClusterRunner の仕組み独自のテスト用に ClusterRunner を設定するのは簡単ですか?(ネタバレ注意: はい)。 ClusterRunner は、単一のホストでテストを並列化し、多くのホストに分散することで、非常に迅速なテスト フィードバックを提供します。Box の生産性向上エンジニアリング チームが開発し、内部で ClusterRunner を使用して、17 分間で 30 時間を超える一連のテストを実行しています。これは、毎日何百回も行われています。ClusterRunner はオープンソースで言語に依存しないため、独自のプロジェクトで簡単に使用できます。Google では、長いテスト フィードバック遅延や十分にテストされていないコードに悩まされているエンジニアリング チーム向けに ClusterRunner を作成しました。使いやすいように、既存の CI システムと統合できるように、一から設計しています。テストの実行に要する時間を学習し、それに応じて今後の実行をスケジュールして、できるだけ早くフィードバックを提供します。そのコンポーネントは、使いやすい REST API を介して通信するため、アクセスしやすく、拡張性にも優れています。

複数のモバイル デバイスやサービスとの統合テスト

Alexander Dorokhine (Google)、Ang Li(Google)

リンク: 動画スライド

Mobly は、Google で開発されたオープンソースのフレームワークです。ソーシャル アプリなどの複数のデバイス間でのインタラクションが必要なプロダクトをテストしたり、Wi-Fi 接続などのテスト環境を制御する必要があるテストをテストしたりできます。マルチデバイス テストとシングル デバイス テストの違いや、デバイス間の同期やコードフローといった固有の問題と、それらを Mobly で解決する方法について説明します。

スケールと価値: BBC でのテストの自動化

Jitesh Gosai (BBC)および David Buckhurst(BBC)

リンク: 動画スライド

Google は、モバイル アプリケーションや TV アプリケーションのテストをスケールするために、自社のオープンソース デバイス クラウドを構築しましたが、すぐにモンスターに成長し、自動化に対するアプローチを再考し、スケールと価値の適切なバランスを見出す必要に迫られました。焦点を絞った自動化と共有により、オンデバイスのテストの課題を解決する方法をご覧ください。また、独自の内部デバイス クラウドを構築し、オープンソース ツールを活用する方法についても学びます。

LibFuzzer を使用して C++ ライブラリでバグを検出する

Kostya Serebryany(Google)

リンク: 動画スライド

サーバーのクラッシュ テストについて

Jonathan Abrahams(MongoDB)

リンク: 動画スライド

さまざまなシステム クラッシュ シナリオを耐え抜くために、MongoDB サーバーの堅牢性をテストしました。あらゆる種類の OS とホスト構成(物理または仮想)のサーバーをクラッシュさせる方法を自動化しました。