Upgrade to Pro — share decks privately, control downloads, hide ads and more …

機械学習でテスト実行を効率化するLaunchable

 機械学習でテスト実行を効率化するLaunchable

shibuiwilliam

October 29, 2022
Tweet

More Decks by shibuiwilliam

Other Decks in Technology

Transcript

  1. shibui yusuke • いろいろ → Launchable(いまここ) • MLOpsとかいろいろエンジニア • もともとクラウド基盤の開発、運用

    • ここ6年くらいMLOpsとバックエンドと インフラとたまにデータ分析と Androidで仕事 • Github: @shibuiwilliam • FB: yusuke.shibui • Meety: https://meety.net/matches/OPJgijxiEMHE cat : 0.55 dog: 0.45 human : 0.70 gorilla : 0.30 物体検知 2 物体検知
  2. 6

  3. 8

  4. 失敗しそうなテストを先に実行する Fail fast, learn fast and fix fast Low Medium

    High T8 T4 T3 T6 T2 T5 T7 T1 失敗しそうなテストを 機械学習で推論し、 並べ替える。 10
  5. ユーザ事例 Delivering faster 11 Reduced by 28 minutes ~40 minutes

    x multiple times a day Our lead time to release reduced by one third as a result of bringing in Launchable. “ R. M Director, Engineering Effectiveness Test runtime Days saved 1 dev per year Reduced by 50 minutes ~62 minutes x multiple times a day 8 devs per year Launchable is critical in our ongoing efforts to cut wait times for developers, enabling them to deliver more features faster! M K Senior Test Engineer, European Car Manufacturer Dollars saved $170k/year $1M/year
  6. Predictive test selection by machine learning 13 学習 推論 教師データ

    実行するテスト Tests Test results Tests Test pass/fail probability Feature engineering Model training Evaluation Model serving Deploy judgement
  7. Launchableの仕組み 14 Launchable git push CI/CD Collect tests Important and

    effective tests Analyse and filter tests Test records
  8. 機械学習の評価が難しい理由 16 機械学習の評価: オフラインでテストデータで評価 ▶ Accuracy ▶ F-score ▶ RMSE

    ▶ nDCG ビジネス上の指標: オンラインでのユーザ行動 ▶ CTR ▶ Impression ▶ Conversion rate ▶ Cost この間を変換するのが難しい Accuracyが 良ければCTRが 上がるの?
  9. テスト実行の評価指標 18 Launchable Analyse and filter tests Test records 成功/失敗の

    Classification Loss, Accuracy, Precision, Recall Time To First Failure (TTFF) 学習時の目的関数 リリース時の 評価関数 従来の機械学習の指標で学習しつつ、 リリース判定は本来の目的を数値化する 独自関数で評価。
  10. 実行する必要のあるテストを並び替え 19 Low Medium High T8 T4 T3 T6 T2

    T5 T7 T1 Time to First Failure (TTFF) 失敗する可能性の高い テストを優先して実行する ように並び替えることで テスト実行を効率化