Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Flutterテスト戦略の再考〜品質と効率のバランスを求めて〜
Search
toshiki
November 19, 2024
0
180
Flutterテスト戦略の再考 〜品質と効率のバランスを求めて〜
FlutterKaigi2024 Day1のLT枠で話した内容になります
toshiki
November 19, 2024
Tweet
Share
More Decks by toshiki
See All by toshiki
fl_cahrtで積上面グラフを実装する
toshiki9
0
74
Flutterの既存プロダクトに GoldenTestを導入する
toshiki9
0
130
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
79
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
130
Producing Creativity
orderedlist
PRO
348
40k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Google's AI Overviews - The New Search
badams
0
890
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
110
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
37
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
410
Rails Girls Zürich Keynote
gr2m
95
14k
KATA
mclloyd
PRO
33
15k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
280
Transcript
Flutterテスト戦略の再考 お 〜品質と効率のバランスを求めて〜 株式会社デジタルバリュー 小野 紀輝
株式会社デジタルバリュー • 2024年10月〜 • Flutterエンジニア(Flutter歴1年半程) • 9月中旬に地元石川県にUターン • 音楽を浴びるのが好き 株式会社マネーフォワード
• 2023年春新卒 • Androidを書かないAndroidエンジニア ※ 本セッションは個人的見解を含みます もはや個人的見解しか含んでいません Ono Toshiki @osadakun9
デジタルバリューについて • 北國銀行を母体とする北國FHDのグループ会社 • 開発組織の内製化を行うために2019年11月設立 • モダンな開発環境 • Flutter •
Azure DevOps/AWS/GCP • スクラムを中心としたアジャイル開発 • Figma/Miro • 社内向けAI Bot • フルリモートで日本以外を拠点にするメンバーも
AGENDA 1. Flutterにおけるテスト手法 2. 品質を担保するために 3. UI/UXを分けてテストするために 4. お気持ち
Flutterにおけるテスト手法 • 主に以下の3種類がある • Unit Test • Widget Test •
Integration Test
Flutterにおけるテスト手法 • 主に以下の3種類がある • Unit Test • Widget Test •
Integration Test • 単一の関数、メソッド、classに対 するテストを行う • 個々のロジックが正しく動作する かを確認する
Flutterにおけるテスト手法 • 主に以下の3種類がある • Unit Test • Widget Test •
Integration Test • Widget単位で見た目や振る舞い に対するテストを行う • UIが正しくレンダリングされる か、各Widgetが正しい入力を処 理できるかを確認する
Flutterにおけるテスト手法 • 主に以下の3種類がある • Unit Test • Widget Test •
Integration Test • アプリ全体の動作を確認するE2E テスト • ユーザがアプリを操作した時に 全ての機能が意図通りに動作す るかのテストを行う • 実際にアプリを起動し、ログイ ン機能や複数の画面遷移やネッ トワーク通信などを含むシナリ オ全体を確認する
品質を担保するために • 全てのテストを書くことが正解とは限らない? • リソース→誰がメンテナンスに責任を持って育てていくのか • モチベーション→もっと実装したいのにずっとテスト書いてる • 小さく始めてみよう •
もし辞める時に精神的ダメージが小さくなる • 効果が実感できるまでの時間が短くなる • みんなでテストを育てていく文化を並行して作る • テストは1人で始められるが1人では育てきれない • この文化がないために効果を実感できないテストたちが残っていく • テストコードに対する保守・運用のコスト
品質を担保するために • 全てのテストを書くことが正解とは限らない? • リソース→誰がメンテナンスに責任を持って育てていくのか • モチベーション→もっと実装したいのにずっとテスト書いてる • 小さく始めてみよう •
もし辞める時に精神的ダメージが小さくなる • 効果が実感できるまでの時間が短くなる • みんなでテストを育てていく文化を並行して作る • テストは1人で始められるが1人では育てきれない • この文化がないために効果を実感できないテストたちが残っていく • テストコードに対する保守・運用のコスト プロダクトの品質 = 会社への信頼
UI/UXを分けてテストするために このアプリはUIが悪い!
UI/UXを分けてテストするために このアプリはUIが悪い! 🤔
UI/UXを分けてテストするために このアプリはUIが悪い! UIが悪いを言語化してみる
• 「リクエストを送る」ボタンを押してリク エストが成功したら「リクエスト成功!」 と表示される • 改善できる部分がいくつかあります ※デザインが手抜きなのは良くない部分で はありません
• UI • ボタンを押してリクエストした後もボタンが 活性状態であるため連続リクエストが行える • UX • ボタンを押してもフィードバックがないため ユーザからすると押せてないと勘違いしてし
まい再度ボタンを押さないといけない
• UI • ボタンを押してリクエストした後もボタンが 活性状態であるため連続リクエストが行える • UX • ボタンを押してもフィードバックがないため ユーザからすると押せてないと勘違いしてし
まい再度ボタンを押さないといけない
• UI • ボタンを押してリクエストした後もボタンが 活性状態であるため連続リクエストが行える • UX • ボタンを押してもフィードバックがないため ユーザからすると押せてないと勘違いしてし
まい再度ボタンを押さないといけない UIが悪いを言語化してみた結果 UI/UXそれぞれで改善できる点 が見つかった アプリを触ってから 気づくことが多い
お気持ち • テストについて今一度考えてみようと少しでも思えましたか? • テストについて考えてみたいと少しでも思えましたか? • チームに持ち帰って向き合い方を見直すきっかけになっていたら嬉しい です • 自分自身まだまだ分からないことだらけで出来ていないことも沢山
• イベント駆動でテスト戦略についてプロポーザル書きましたがとても貴 重な経験ができました!
ご清聴ありがとうございました! 懇親会とDay2も参加するのでぜひ議論しましょう! カジュアル面談もお待ちしております!