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

More Related Content

More from Hironori Washizaki

More from Hironori Washizaki (20)

SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターン
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターン
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターン
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
 
Software Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning ApplicationsSoftware Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning Applications
 
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
 
Rubric-based Assessment of Programming Thinking Skills and Comparative Evalua...
Rubric-based Assessment of Programming Thinking Skills and Comparative Evalua...Rubric-based Assessment of Programming Thinking Skills and Comparative Evalua...
Rubric-based Assessment of Programming Thinking Skills and Comparative Evalua...
 
機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns
 
Smart SE: Recurrent Education Program of IoT and AI for Business
Smart SE: Recurrent Education Program of IoT and AI for BusinessSmart SE: Recurrent Education Program of IoT and AI for Business
Smart SE: Recurrent Education Program of IoT and AI for Business
 
Analysis of IoT Pattern Descriptions (SERP4IoT 2021)
Analysis of IoT Pattern Descriptions (SERP4IoT 2021)Analysis of IoT Pattern Descriptions (SERP4IoT 2021)
Analysis of IoT Pattern Descriptions (SERP4IoT 2021)
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
 
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へパターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
 

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

  • 1. ICST 2017 基調講演 紹介 G7 PROGRAMMING LEARNING SUMMIT 実行委員会 会長 早稲田大学グローバルソフトウェアエンジニアリング研究所 所長 国立情報学研究所 客員教授 / システム情報 取締役 鷲崎 弘宜 http://www.washi.cs.waseda.ac.jp/ わしざき ひろのり ICST2017 まるわかりday 2017年8月26日 早稲田大学
  • 2. Keynote 1: The State of Continuous Integration Testing at Google (John Micco, Google) • 目的: Google社における継続的インテグレーションテストの実態 と今後の工夫の可能性 • 問題 – 各コード変更について個別の回帰テスト実施は現実に不可能 – コードチェックインから、開発者へのテスト結果フィードバックまでの タイムラグをどのように縮められるか? • 解決 – Test Automation Platform (TAP) – 実プロジェクトのテスト実態把握 – 開発者へのフィードバックや、テストスケジューリングの工夫による 効率・効果の向上の見込み – 「不安定な」テストへの対応がカギ: 特定や考慮など • 所感 – フィードバックに向けた今後の研究に期待、特に機械学習 – Googleほどではない規模の場合の調査に期待 – 「不安定な」テストの様々な事前特定と分離修正に向けて 7
  • 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
  • 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. 不安定な(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. 詳細調査: テストターゲット、開発者、テスト対象コ ード、コード変更、テスト実行頻度の関係 • コード変更あたりのテストターゲットの成功と失敗の比は 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. Keynote 2: Testing and Validation Requirements for Automated Driving Technology (Kenji Nishikawa,Toyota) • 目的: トヨタ社における自動運転への取組みとテ ストの課題 • 貢献 – 自動運転は実験段階から実用段階へ – 人工知能による学習プロセス → テストの難しさ – 車車間・路車間通信 → 規格統一など – 様々なセンサの組み合わせ • 所感 – 人工知能による判断の説明性・透明性の確保 – 不確かさの扱いがカギ: 疑似・統計的オラクル – 自動運転特有の課題は? 13
  • 10. Keynote 3: Model-Based Testing and Model Inference: Better Together! (Andreas Zeller, Saarland U.) • 目的: モデルベーステストとモデル推論(抽出)の相乗 効果発揮 • アイディアと貢献 – 組合せ、一方の結果をもう一方に活用 – SECMATE: 実行可能プログラムからの仕様抽出とテスト生 成(実行列からの仕様抽出、テスト自動生成、ミューテー ション解析) – AUTOGRAM: プログラムをいくらか実行した結果から文脈 自由文法を生成 → さらなるテスト自動生成に活用 • 所感 – 筋の良い「正統な」組み合わせの方向 – 実用レベルでのサイクルの回しに期待 15