More Related Content
More from Hironori Washizaki (20)
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
- 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