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
76
Flutterテスト戦略の再考 〜品質と効率のバランスを求めて〜
FlutterKaigi2024 Day1のLT枠で話した内容になります
toshiki
November 19, 2024
Tweet
Share
More Decks by toshiki
See All by toshiki
fl_cahrtで積上面グラフを実装する
toshiki9
0
68
Flutterの既存プロダクトに GoldenTestを導入する
toshiki9
0
120
Featured
See All Featured
Designing Experiences People Love
moore
139
23k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Navigating Team Friction
lara
183
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
260
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Building Applications with DynamoDB
mza
93
6.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
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も参加するのでぜひ議論しましょう! カジュアル面談もお待ちしております!