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
190
Flutterテスト戦略の再考 〜品質と効率のバランスを求めて〜
FlutterKaigi2024 Day1のLT枠で話した内容になります
toshiki
November 19, 2024
Tweet
Share
More Decks by toshiki
See All by toshiki
fl_cahrtで積上面グラフを実装する
toshiki9
0
77
Flutterの既存プロダクトに GoldenTestを導入する
toshiki9
0
130
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
140
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
550
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.4k
Color Theory Basics | Prateek | Gurzu
gurzu
0
250
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
120
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
260
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
240
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も参加するのでぜひ議論しましょう! カジュアル面談もお待ちしております!