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

Flutterテスト戦略の再考 〜品質と効率のバランスを求めて〜

toshiki
November 19, 2024
76

Flutterテスト戦略の再考 〜品質と効率のバランスを求めて〜

FlutterKaigi2024 Day1のLT枠で話した内容になります

toshiki

November 19, 2024
Tweet

Transcript

  1. 株式会社デジタルバリュー • 2024年10月〜 • Flutterエンジニア(Flutter歴1年半程) • 9月中旬に地元石川県にUターン • 音楽を浴びるのが好き 株式会社マネーフォワード

    • 2023年春新卒 • Androidを書かないAndroidエンジニア ※ 本セッションは個人的見解を含みます もはや個人的見解しか含んでいません Ono Toshiki @osadakun9
  2. デジタルバリューについて • 北國銀行を母体とする北國FHDのグループ会社 • 開発組織の内製化を行うために2019年11月設立 • モダンな開発環境 • Flutter •

    Azure DevOps/AWS/GCP • スクラムを中心としたアジャイル開発 • Figma/Miro • 社内向けAI Bot • フルリモートで日本以外を拠点にするメンバーも
  3. Flutterにおけるテスト手法 • 主に以下の3種類がある • Unit Test • Widget Test •

    Integration Test • 単一の関数、メソッド、classに対 するテストを行う • 個々のロジックが正しく動作する かを確認する
  4. Flutterにおけるテスト手法 • 主に以下の3種類がある • Unit Test • Widget Test •

    Integration Test • Widget単位で見た目や振る舞い に対するテストを行う • UIが正しくレンダリングされる か、各Widgetが正しい入力を処 理できるかを確認する
  5. Flutterにおけるテスト手法 • 主に以下の3種類がある • Unit Test • Widget Test •

    Integration Test • アプリ全体の動作を確認するE2E テスト • ユーザがアプリを操作した時に 全ての機能が意図通りに動作す るかのテストを行う • 実際にアプリを起動し、ログイ ン機能や複数の画面遷移やネッ トワーク通信などを含むシナリ オ全体を確認する
  6. 品質を担保するために • 全てのテストを書くことが正解とは限らない? • リソース→誰がメンテナンスに責任を持って育てていくのか • モチベーション→もっと実装したいのにずっとテスト書いてる • 小さく始めてみよう •

    もし辞める時に精神的ダメージが小さくなる • 効果が実感できるまでの時間が短くなる • みんなでテストを育てていく文化を並行して作る • テストは1人で始められるが1人では育てきれない • この文化がないために効果を実感できないテストたちが残っていく • テストコードに対する保守・運用のコスト
  7. 品質を担保するために • 全てのテストを書くことが正解とは限らない? • リソース→誰がメンテナンスに責任を持って育てていくのか • モチベーション→もっと実装したいのにずっとテスト書いてる • 小さく始めてみよう •

    もし辞める時に精神的ダメージが小さくなる • 効果が実感できるまでの時間が短くなる • みんなでテストを育てていく文化を並行して作る • テストは1人で始められるが1人では育てきれない • この文化がないために効果を実感できないテストたちが残っていく • テストコードに対する保守・運用のコスト プロダクトの品質 = 会社への信頼
  8. • UI • ボタンを押してリクエストした後もボタンが 活性状態であるため連続リクエストが行える • UX • ボタンを押してもフィードバックがないため ユーザからすると押せてないと勘違いしてし

    まい再度ボタンを押さないといけない UIが悪いを言語化してみた結果 UI/UXそれぞれで改善できる点 が見つかった アプリを触ってから 気づくことが多い