Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ICST2017勉強会(まるわかりday)基調講演 紹介

1,310 views

Published on

鷲崎弘宜, ICST 2017 基調講演 紹介, ICST2017勉強会(まるわかりday), 早稲田大学, 2017年8月26日

Published in: Software
  • Be the first to comment

ICST2017勉強会(まるわかりday)基調講演 紹介

  1. 1. ICST 2017 基調講演 紹介 G7 PROGRAMMING LEARNING SUMMIT 実行委員会 会長 早稲田大学グローバルソフトウェアエンジニアリング研究所 所長 国立情報学研究所 客員教授 / システム情報 取締役 鷲崎 弘宜 http://www.washi.cs.waseda.ac.jp/ わしざき ひろのり ICST2017 まるわかりday 2017年8月26日 早稲田大学
  2. 2. Keynote 1: The State of Continuous Integration Testing at Google (John Micco, Google) • 目的: Google社における継続的インテグレーションテストの実態 と今後の工夫の可能性 • 問題 – 各コード変更について個別の回帰テスト実施は現実に不可能 – コードチェックインから、開発者へのテスト結果フィードバックまでの タイムラグをどのように縮められるか? • 解決 – Test Automation Platform (TAP) – 実プロジェクトのテスト実態把握 – 開発者へのフィードバックや、テストスケジューリングの工夫による 効率・効果の向上の見込み – 「不安定な」テストへの対応がカギ: 特定や考慮など • 所感 – フィードバックに向けた今後の研究に期待、特に機械学習 – Googleほどではない規模の場合の調査に期待 – 「不安定な」テストの様々な事前特定と分離修正に向けて 7
  3. 3. 依存関係とテストターゲット • ビルドツールOSS化(Bazel) • ビルドファイル内で「ビルド/ 実行可能」と指定されたテス ト単位 • テストケースの集合、単一テ ストスクリプトなど様々 8 A. Memon, et al.: Taming Google-Scale Continuous Testing, ICSE2017 / J. Micco, http://aster.or.jp/conference/icst2017/program/jmicco-keynote.pdf
  4. 4. 変更リストと関連テストターゲット • 全変更リストについてテスト実施は非現実的 • 経験則に基づきマイルストーンを設定し、その間で最 新変更結果によるテスト 9 A. Memon, et al.: Taming Google-Scale Continuous Testing, ICSE2017 / J. Micco, http://aster.or.jp/conference/icst2017/program/jmicco-keynote.pdf
  5. 5. 実プロジェクトの初期調査 • 対象 – 変更リスト 50万、テストターゲット 556万、テスト結果 40億 • 基礎調査結果 – テストターゲットが、変更リストから影響を受ける頻度はまちまち → 共通 のマイルストーン設定は不適当 – テストターゲットの「テスト失敗」が占める割合はごくわずか → マイルスト ーンに基づく方法は有効 – タイミングなどのせいで不安定な(flaky)テストを除けば、開発者のせいで 「壊れてしまった」テストターゲットはわずか1%程度 → 壊れそうにないテス トターゲットを特定して実行頻度を抑えれば効率的・効果的 10 A. Memon, et al.: Taming Google-Scale Continuous Testing, ICSE2017 / J. Micco, http://aster.or.jp/conference/icst2017/program/jmicco-keynote.pdf
  6. 6. 不安定な(flaky)テスト • 420万テスト中の16%は何らかの不安定さを 有す • 悪影響: 開発者の調査時間、リリース遅れ、 再実行に伴う計算リソース • 原因: テスト対象コード(特にマルチスレッド) 、テストケース(UIテスト、sleep()、Webdriver など)、実行環境 • 特定のために: テスト失敗に10回実行して 成功すれば「不安定」と記録 11 A. Memon, et al.: Taming Google-Scale Continuous Testing, ICSE2017 / J. Micco, http://aster.or.jp/conference/icst2017/program/jmicco-keynote.pdf
  7. 7. 詳細調査: テストターゲット、開発者、テスト対象コ ード、コード変更、テスト実行頻度の関係 • コード変更あたりのテストターゲットの成功と失敗の比は 99:1 → まず失敗しないであろうテストターゲットのテスト実 行頻度を抑えれば効率化 • 依存グラフ上で変更コードから11以上離れたテストターゲ ットはほとんど「壊れない」 • ほとんどのファイルは月1-2回程度の変更頻度であり、より 頻繁に変更されるファイルが破壊をもたらす • 特定のファイル種別が破壊につながりやすい(例えば .java よりも .cc) • 特定のユーザやツールがより破壊をもたらしやすい • 3名以上の開発者が同時変更したファイルは、2名の場合 よりもより破壊をもたらしやすい • テストターゲットごとに実行頻度は大きく異なる → テストス ケジューリングにあたりそれぞれ別に扱うことが望ましい 12 A. Memon, et al.: Taming Google-Scale Continuous Testing, ICSE2017 / J. Micco, http://aster.or.jp/conference/icst2017/program/jmicco-keynote.pdf
  8. 8. Keynote 2: Testing and Validation Requirements for Automated Driving Technology (Kenji Nishikawa,Toyota) • 目的: トヨタ社における自動運転への取組みとテ ストの課題 • 貢献 – 自動運転は実験段階から実用段階へ – 人工知能による学習プロセス → テストの難しさ – 車車間・路車間通信 → 規格統一など – 様々なセンサの組み合わせ • 所感 – 人工知能による判断の説明性・透明性の確保 – 不確かさの扱いがカギ: 疑似・統計的オラクル – 自動運転特有の課題は? 13
  9. 9. 自動運転デモ • トヨタ自動車、2020年頃の実用化をめざした自動運転 実験車を公開 -自動車専用道路での合流、車線維持 、レーンチェンジ、分流を自動運転- http://newsroom.toyota.co.jp/en/detail/9751814 14
  10. 10. Keynote 3: Model-Based Testing and Model Inference: Better Together! (Andreas Zeller, Saarland U.) • 目的: モデルベーステストとモデル推論(抽出)の相乗 効果発揮 • アイディアと貢献 – 組合せ、一方の結果をもう一方に活用 – SECMATE: 実行可能プログラムからの仕様抽出とテスト生 成(実行列からの仕様抽出、テスト自動生成、ミューテー ション解析) – AUTOGRAM: プログラムをいくらか実行した結果から文脈 自由文法を生成 → さらなるテスト自動生成に活用 • 所感 – 筋の良い「正統な」組み合わせの方向 – 実用レベルでのサイクルの回しに期待 15
  11. 11. AUTOGRAM 16 https://www.st.cs.uni-saarland.de/models/autogram/

×