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
テスト苦労開発 あるいはTDDの夢
Search
yattom
November 12, 2018
Programming
8
4.5k
テスト苦労開発 あるいはTDDの夢
Tech-on Meetup #03の講演資料です
yattom
November 12, 2018
Tweet
Share
More Decks by yattom
See All by yattom
テストのスライド(内容なし)
yattom
0
120
チームで壁をひとつ越えるためにインテグラル理論を使ってみよう
yattom
1
480
ペアプログラミング復習スライド
yattom
0
660
TDD Boot Camp 2020 Online #1 基調講演/ライブコーディング 復習
yattom
0
470
モブプログラミング 復習スライド
yattom
0
400
アジャイルとスクラムとは ~価値、原則、プラクティス~
yattom
0
15k
テストの自動化とテスト駆動開発
yattom
37
17k
アジャイルの風味をお持ち帰り
yattom
1
340
Happy! Lucky! XP!
yattom
4
1.7k
Other Decks in Programming
See All in Programming
Vibe codingでおすすめの言語と開発手法
uyuki234
0
160
愛される翻訳の秘訣
kishikawakatsumi
3
370
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
130
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
160
TestingOsaka6_Ozono
o3
0
260
Cap'n Webについて
yusukebe
0
160
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
200
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
140
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
920
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
4
1.3k
ThorVG Viewer In VS Code
nors
0
530
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
440
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Practical Orchestrator
shlominoach
190
11k
Making Projects Easy
brettharned
120
6.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
230
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.5k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Test your architecture with Archunit
thirion
1
2.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
120
So, you think you're a good person
axbom
PRO
0
1.9k
Transcript
テスト苦労開発 Test Dreaming Development あるいはTDDの夢
None
https://minna-de-ochakai.connpass.com/event/105897/
None
None
とあるITサービス企業
今期目標: 自動テストカバレッジ100% • サービスが多数 • 小規模なチーム(2~5名)が多数 • 歴史、言語、FWなどさまざま • テストの自動化はほとんど進んでいない
• 上司「今期の部署目標は、 自動テストカバレッジ100%とします」 http://villains.wikia.com/wiki/Pointy-Haired_Boss ※この話はフィクションです
オレンジジュース100% と 自動テストカバレッジ100% の違いは? A. 本質的には同じ B. オレンジジュースは甘いがテストカバレッジは苦い C. その他
オレンジジュース100% • ユーザーの価値に つながる • 外部品質である • 基準(コンプライアンス)が ある •
測定方法と実現方法(プロ セス)がある 自動テストカバレッジ100% • 開発チームの価値/勝ちに つながる • 内部品質である • 基準は自分たちで定める • 測定方法と実現方法(プロ セス)がある
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 自動テストゼロに 比べれば どんな 自動テストでも ないよりマシ Yattom says:
カバレッジの戦略 モダン (Ruby on Rails, Java) • ユニットテスト • JUnit,
RSpec • テストカバレッジ=コードカバレッジ どレガシー (素PHP) • エンドツーエンドテスト • ブラウザ(Selenium IDE) • テストカバレッジ=画面・機能カバレッジ
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 最初のテスト自動化は やりやすいところから • 開発者がテストするという 習慣、プロセス、文化を作る • 自動テストを動かせる環境が生 まれる •
あくまでとっかかり 100%は目指さない (近くない将来の夢くらいで) Yattom says:
上司の言うことは 都合よく聞く • 上司の意向と目的を理解 • そのうえで 自分たちに価値があることを する 上司は現場が勝手に 判断したらいい感じに
なるよう指示を出す https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html Yattom says:
私が プログラマーだった頃
※この話はフィクションです 金融系開発 各社からの混成部隊 テスト期間のバグ修正祭り 締め切り前夜 終電間際 「安井さんこれ直してください!」
※この話はフィクションです 各社からの混成部隊 テスト期間のバグ修正祭り 締め切り前夜 終電間際 「安井さんこれ直してください!」 「直しました!」
※この話はフィクションです 締め切り前夜 終電間際 「安井さんこれ直してください!」 「直しました!」 「テストチームが確認するまで 待っててください!!!」
None
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 開発者は自分のために テストをする • 責任と自信を持って 「できました」と言う 唯一の方法 自分が死なないために テストを自動化する •
責任取って死ぬのは嫌だ • いつでも安全な状況を 自分で作る Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 開発チームは チームが楽しく働く ためにテストを書く • 全員がお互いに責任を持つ • 人の尻拭いはしたくないし 人に尻を拭かれたくない •
チームの外に対して 「できました」と自信を持つ • イコール、お客様へ価値を 届けられる Yattom says:
無事ローンチを迎えた 新規サービス
リリース前 リリース絶対間に合わせたい! 機能もできるだけ盛り込みたい! 些細な問題はリリース後に修正しましょう! がんばってください! がんばって開発しましょう! 機能もできるだけ作り込みますね! テストもちゃんとやるけど、 自動化する余裕はないですね…… https://www.braintrustgroup.com/2014/roles-scrum-attitudes-traits/
リリース やったー! おつかれさまでした!
リリース後 ユーザー獲得できてますね! 利便性あげる機能追加バンバンやりたい! 目立つ障害も対応しましょう! がんばってください! バンバン機能開発しましょう! 障害対応もしっかりしないとね! テストもちゃんとやるけど、 自動化する余裕はないですね……
自動化する余裕は ないですね…… ※この話はフィクションです
それでもテストを自動化したかった • 高速にレガシー化するコード • 人の入れ替わりも多い (多くなる) • 機能追加で仕様がごちゃごちゃしてきた • リリース頻繁だと手動テストたいへん
• テスト駆動開発したい ←ちょっと夢が入ってる
なのでテストを自動化してみた 立ち上がる有志 プログラマの数名が自動化 に着手 メリットとコストをPOに説明 最初の自動テストは やりやすいところから 苦難 CIはあってもテストを 実行する環境がない
データベースが絡む テストの方法がない ログインパズルを 越えられない (他システムとの連携) 脱落する同志 「俺はここまでだ」 壁を越えて 少しずつテストが増える CIで自動実行、レポート 有志の限定的活動から、 チームの取り組みに 完成の定義(DoD)にも 盛り込む
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 最初からテスト書くのは つらい あとからテスト書くのは もっとずっとつらい Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 開発者は自分のために テストをする • テストのROIを判断する • テストを自動化すべき? • どのテストを? •
テスト駆動開発は使うべき? 「何を作ればいいのか手探り」 という状況では、 資産価値の高いテストを書くのは 困難 Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html テスト自動化は 自動テストを書く プラス 環境を整備する • テスティングフレームワーク ライブラリ • 開発環境、ローカル実行環境
• CI環境 • 分析とレポート Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 1. どこでもいいから 書けるところから 2. 薄く細くレイヤーを つらぬくテスト (「曳光弾開発」) 3. 正常パターンを1つ
エンドツーエンドで (ハッピーパス) Yattom says:
RDB Model (Java) ブラウザ (HTML/CSS) ブラウザ (JS) 箱のラベルはあくまで一例 基本的な考え方
RDB Model (Java) ブラウザ (HTML/CSS) ブラウザ (JS) 箱のラベルはあくまで一例 基本的な考え方 ①
② ③ ① ④ これが エンドツーエンド
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html プロダクトリスクが 大きいところに テストを書く • お金まわり • 獲得まわり(応答時間) • 複雑なロジックの
確からしさ(確率的) • などなど Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 別サービスのテスト戦略 • しない • テスト用サービスを 提供してもらう • 自前でスタブを作る •
テスト用データを 提供してもらう Yattom says:
テスト用 スタブサーバ
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html いつテストを 自動化するか • できるなら最初から • 後からであれば、テスト可能性 (テスタビリティ)を設計で考慮す る •
考慮できないなら、やっぱり最初 から小さくてもいいから早期に書 いて維持する Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html チームの成長に テスト技術も含める Yattom says: 実装 テスト 実装 テスト
四方山話
ユーザー獲得に苦しんでいるサービス もうちょっと速くならないですか… われわれは責任あるプログラマーとして 品質を最重視します! きっちりテスト書くしCIも回すし コードレビューもするしDoDも完璧!
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 求められる内部品質は 自分たちで定める • いま求められるのは どんなレベル? • 保守的になりすぎ? 前衛的になりすぎ? •
基本的には SLAから導かれる Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 開発者は自分のために テストをする QAチーム任せ バグの傾向と対策を 怠る プロダクトの品質 (外部品質)を把握しない Yattom says:
https://all-free-download.com/free-vector/download/creative-scroll-paper-background-vector-set_544278.html 開発者は自分のために テストをする テストエンジニアは 開発者に協力する • 自動化の手法、ツール • テスト技法、設計手法 •
ペアプロで双方学びながら Yattom says:
None
上司は大きな目標 や方向を与えて、具 体的なアプローチ や手法は現場に任 せる 戦略 ←上司 戦術 作戦←現場
複雑な領域では 仮説検証を高速 に回したい。テス トの自動化はス ピードが落ちる要 因となり得る。ど んどん変わる前 提なので、テスト の資産価値が低く なりがち。