Slide 1

Slide 1 text

機械学習でテスト実行を効 率化するLaunchable 2022/10/29 Launchable Inc. shibui yusuke 1

Slide 2

Slide 2 text

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 物体検知

Slide 3

Slide 3 text

● 2022年11月14日発売予定! https://www.amazon.co.jp/dp/4798173401/ ● 発売中! https://www.amazon.co.jp/dp/4798169447/ 3

Slide 4

Slide 4 text

今日話すこと ▶ 機械学習によるDeveloper Productivityの改善 ▶ Launchableの仕組み ▶ 機械学習の評価と実用上の評価 4

Slide 5

Slide 5 text

機械学習による Developer Productivityの改善 5

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

7 – エンジニアの声 コードを1行変えただけなのに テストをすべて実行しないと マージできない・・・。 “ “

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

一般的なテスト実行 ランダムにテストを実行 9 T1 T2 T3 T4 T5 T6 T7 T8 Low Medium High Tests テスト 失敗確率

Slide 10

Slide 10 text

失敗しそうなテストを先に実行する Fail fast, learn fast and fix fast Low Medium High T8 T4 T3 T6 T2 T5 T7 T1 失敗しそうなテストを 機械学習で推論し、 並べ替える。 10

Slide 11

Slide 11 text

ユーザ事例 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

Slide 12

Slide 12 text

12 Launchableの仕組み

Slide 13

Slide 13 text

Predictive test selection by machine learning 13 学習 推論 教師データ 実行するテスト Tests Test results Tests Test pass/fail probability Feature engineering Model training Evaluation Model serving Deploy judgement

Slide 14

Slide 14 text

Launchableの仕組み 14 Launchable git push CI/CD Collect tests Important and effective tests Analyse and filter tests Test records

Slide 15

Slide 15 text

機械学習の評価と 実用上の評価 15

Slide 16

Slide 16 text

機械学習の評価が難しい理由 16 機械学習の評価: オフラインでテストデータで評価 ▶ Accuracy ▶ F-score ▶ RMSE ▶ nDCG ビジネス上の指標: オンラインでのユーザ行動 ▶ CTR ▶ Impression ▶ Conversion rate ▶ Cost この間を変換するのが難しい Accuracyが 良ければCTRが 上がるの?

Slide 17

Slide 17 text

テスト実行の課題 時間の課題 全テスト実行時間を短縮したい ▶ 並列実行、リソース追加・・・ ▶ 失敗しやすいテストを優先して実行 17 安定性の課題 同一コミットでもランダムに失敗するテスト (Flaky test) ▶ Flakinessを評価し修正可能なテストを 明確化

Slide 18

Slide 18 text

テスト実行の評価指標 18 Launchable Analyse and filter tests Test records 成功/失敗の Classification Loss, Accuracy, Precision, Recall Time To First Failure (TTFF) 学習時の目的関数 リリース時の 評価関数 従来の機械学習の指標で学習しつつ、 リリース判定は本来の目的を数値化する 独自関数で評価。

Slide 19

Slide 19 text

実行する必要のあるテストを並び替え 19 Low Medium High T8 T4 T3 T6 T2 T5 T7 T1 Time to First Failure (TTFF) 失敗する可能性の高い テストを優先して実行する ように並び替えることで テスト実行を効率化

Slide 20

Slide 20 text

まとめ 20

Slide 21

Slide 21 text

まとめ ▶ 機械学習による実行すべきテストのフィルタリング ▶ テストの失敗が判明するまでのテスト実行時間を評価 ▶ 機械学習のリリース判定は機械学習の指標基準ではなく ビジネス指標基準 21

Slide 22

Slide 22 text

Thank you! 22