Slide 1

Slide 1 text

Streamlitでテスト工数を削減した話 2024/09/17 老木 智章

Slide 2

Slide 2 text

© GO Inc. 2 概要 タクシーアプリ『GO』のタクシー手配の仕様は複雑さが増す一方。 品質管理チームはテストが失敗しても原因がわからず、 開発エンジニアへ調査依頼を出すしかないケースが増加していた。 さらに、配車はマイクロサービスによって実現されており、 どのサービスが失敗原因かの調査は開発エンジニアでも大変だった。 この課題が Streamlit によって大きく改善した話をします。

Slide 3

Slide 3 text

© GO Inc. 3 著者背景 Name : 老木 智章 Role : データアナリスト 日頃はデータを分析し、サービス改善施策を考案している。 さまざまなマイクロサービスのログを分析しているため、 サービス全体を薄らと把握している。 そのせいで、テスト失敗時の原因調査に日々駆り出されており、 頭を悩ませていた・・・ ある日、ダッシュボード構築で使われる Streamlit で問い合わせ地獄 が解決できるのでは?と思い立った。

Slide 4

Slide 4 text

© GO Inc. 4 ログ分析によるテスト失敗原因調査 テストに失敗した際は、各サービスのログを調査する。 ログはBigQuery上のさまざまなテーブルに出力されており、適切な 調査クエリを発行するのは、多くのエンジニアには面倒。 さらに、ログを読み解くには各サービスに詳しい必要があり、調査に は複数のエンジニアが必要になるシーンが多かった。

Slide 5

Slide 5 text

© GO Inc. 5 配車失敗ログの読解に専門知識が必要な例 各車両は「配車能力」というビットフィールドで、対応しているサー ビスを管理している。 一方、リクエストは「要求配車能力」 を持っている。 ログには、「要求配車能力を未達」というメッセージと各ビット フィールドの値が出力される。知識がないと詳細がわからない。 サービス知識を要求される ケースが多い!

Slide 6

Slide 6 text

© GO Inc. 6 01 Streamlit による解決

Slide 7

Slide 7 text

© GO Inc. 7 Streamlit とは? pythonで極めて簡単にウェブアプリを作れる。 st.title(“web page”) st.dataframe(pd.read_gbq(“select * from table”)) でテーブルを閲覧するページができる。 KPI ダッシュボードや機械学習モデルを提供するのによく用 いられる。

Slide 8

Slide 8 text

© GO Inc. 8 Streamlit によるログ閲覧ツール作成 サービスの各ログごとにログ閲覧ツールを作成した。 内部的なエラーコードの解説をつけている。 → 専門知識がなくとも対処可能に! QA環境と開発環境の両方に対応し、幅広いユースケースを考慮

Slide 9

Slide 9 text

© GO Inc. 9 Streamlit を使うメリット 以前はログ閲覧ツールをReactやLookerで作成していたが、 Streamlit は ▪ 学習コストが非常に低い (ReactもLookerもしんどい) ▪ Lookerに比べて表現力が非常に高い ▪ 圧倒的な製作コストの低さ (数時間で 1 ツールできる) ▪ ツール製作は評価されづらいため重要 ▪ ツールごとの環境構築が不要 (詳細は次のプレゼン) ▪ キャッシュのサポートが強力 ▪ 調査したログを共有する際に、素早く閲覧可能

Slide 10

Slide 10 text

© GO Inc. 10 表現力の高さの例 UI操作結果をグラフにリアルタイムに反映させやすい。

Slide 11

Slide 11 text

© GO Inc. 11 ツール細分化のメリット 複数のログを横断的に見るツールを作らず、 ログごとの小さいツールをリンクで繋げている。 これによって、 ▪ ログ読み込み時間の短縮 ▪ 個々のツールの認知負荷減少 ▪ ツールの組み合わせで多様なワークフローに対応 ▪ どういう順序でログを見たいかはテストで異なる といったメリットがある。

Slide 12

Slide 12 text

© GO Inc. 12 02 普及活動

Slide 13

Slide 13 text

© GO Inc. 13 ツールを使ってもらうために 品管チームや各サービスの開発チームを対象に、使い方やどういった 仕組みで配車が成り立っているかのプレゼンを実施。 さらに各ツールで、閲覧したログを共有できる機能を追加。 リンクをコピーするとフォームの入力内容が共有できる。 リンクをしつこく問い合わせ返答の際に貼ることでツールに誘導。

Slide 14

Slide 14 text

© GO Inc. 14 ツールを作ってもらうために Streamlit によるユーザー主導の調査を広めるためには、 より多くのツールが作られて欲しい。 共有リンク生成関数のような便利関数を広めている。 関数一つで共有リンクが生成できる。 また、ツールにAuthorを表示する文化を広め、ツール作成者を讃え る文化を作ろうとしている。(ツール作成者は孤独なので)

Slide 15

Slide 15 text

© GO Inc. 15 結果 調査が品質管理チームでも実施可能になり、問い合わせは激減。 製作コストは十分ペイした  → みんな自分でわかるなら問い合わせはしたくない  → 品管チームの動作チェック手順にも採用されるように! 問い合わせの際も、ツールのリンクとともに問い合わせが来るように なり、対応工数が大幅に減少した。 (調査に必要な情報の欠落が減少) これからも、どんどんツールを作っていきたい。

Slide 16

Slide 16 text

© GO Inc. 文章・画像等の内容の無断転載及び複製等の行為はご遠慮ください