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
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing ap...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hiroki Iseri
July 07, 2025
Programming
3.6k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
Hiroki Iseri
July 07, 2025
More Decks by Hiroki Iseri
See All by Hiroki Iseri
生成AI活用でQAエンジニアにどのような仕事が生まれるか/Support Required of QA Engineers for Generative AI
goyoki
1
630
開発に寄りそう自動テストの実現
goyoki
3
4k
自動テストを活かすためのテスト分析・テスト設計の進め方/JaSST25 Shikoku
goyoki
3
2.7k
チームのテスト力を総合的に鍛えてシフトレフトを推進する/Shifting Left with Software Testing Improvements
goyoki
6
4.9k
チームのテスト力を鍛える
goyoki
4
3.3k
ソフトウェアテスト徹底指南書の紹介
goyoki
1
2.7k
プロダクト開発を成功させるためのソフトウェア品質保証のアプローチと技術/Software QA Approach for Puduct Success
goyoki
1
2.1k
テスト分析入門/Test Analysis Tutorial
goyoki
12
6.8k
高品質と高スピードを両立させるソフトウェアQA/Software QA that Supports Agility and Quality
goyoki
10
6.3k
Other Decks in Programming
See All in Programming
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
360
Webフレームワークの ベンチマークについて
yusukebe
0
180
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
130
Vite+ Unified Toolchain for the Web
naokihaba
0
360
どこまでゆるくて許されるのか
tk3fftk
0
260
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
220
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
スマートグラスで並列バイブコーディング
hyshu
0
260
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
290
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
750
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
970
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
The Limits of Empathy - UXLibs8
cassininazir
1
370
Done Done
chrislema
186
16k
A designer walks into a library…
pauljervisheath
211
24k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
170
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Transcript
チームのテスト力を総合的に鍛えて 品質、スピード、レジリエンス を共立させる 「チームのテスト力を総合的に鍛えて ソフトウェア開発の高品質と高スピードを両立させる実践技法」 井芹 洋輝 2025/7/8
自己紹介 ⚫経歴 • 開発者、テストエンジニア、コンサルタント、QAエンジニアと様々な立場で 様々なプロダクトのソフトウェアテスト業務に従事 • 現在はトヨタ自動車でQA/テストテックリードを担当 • JSTQB技術委員、テスト設計コンテストU30クラス初代審査委員長 ⚫著作・講演
• 「ソフトウェアテスト徹底指南書」(最近発売) 「テスト自動化の成功を支えるチームと仕組み」 「シフトレフトテストを支える現代的なテスト設計」 「テストの視点を活用したTDDアプローチの検討とその検証」(共著)など
品質、スピード、レジリエンス の共立の必要性
現代的なソフトウェアプロダクトの様相 ⚫プロダクト形態がサービス化 • XaaS(SaaS、PaaS)の形態が増加 • パッケージや組み込みでも、継続的な改善・運用で顧客満足を支える ⚫開発ライフサイクルが長大化 • リリースして終わりではなく、サービスとしての継続運用や、継続的アップ デートを通した改善が続く
⚫プロダクト価値の改善スピード、投入スピードが加速
現代的なソフトウェアプロダクト開発の様相 ⚫同じ開発チームが継続的にプロダクトを運用・改善 ⚫チームの開発力を鍛えてプロダクト価値を支える →妥当な品質の確保に加え、開発のスピードとレジリエンスの総合力 が顧客満足を支える傾向が強まっている レジリエンス:問題・困難に対する適応力・回復力。困難に対するしなやかさ
チームのスピード ⚫開発チームのスピードが速いと、プロダクト価値が高まる • ユーザのニーズを迅速に・効率的に実現できる • 顧客満足のための試行錯誤を高速に回せる • 開発とビジネスのフィードバックループを迅速に回せられる ⚫開発チームのスピードが遅いと、プロダクト価値が劣化する •
有限な開発リソース(時間・コストなど)を使い果たして品質を犠牲にする • 試行錯誤ができずプロダクト価値を開拓できない • 開発とビジネスのフィードバックループがうまく回せない 現在では、チームの開発スピードが顧客満足に直結する
チームのレジリエンス ⚫開発チームのレジリエンスが高いと、プロダクト価値が高まる • プロダクトに障害が発生しても即座に解消される • ユーザの不満点が改善される • リスクの許容度が高まりよりチャレンジができ、プロダクト価値を高められる ⚫開発チームのレジリエンスが低いと、プロダクト価値が劣化する •
障害が発生しても復旧が遅れ、ユーザの不満点が残り続ける • ユーザ目線では、プロダクトの品質がひどく低いという印象につながる • リスクを伴うチャレンジができない 現在では、チームのレジリエンスが顧客満足に直結する
総合的なビジネスパフォーマンスは 開発チームのスピード・レジリエンスと連動 ビジネス パフォーマンス エリート 高い 中間 低い 変更リードタイム 1日未満
1日~1週間 1週間~1か月 1か月~ デプロイ頻度 いつでも (1日複数回) 1日1回~ 1週間に1回 1週間に1回~ 1か月に1回 1か月に1回~ 変更失敗率 5% 20% 10% 40% 障害復旧時間 1時間未満 1日未満 1日未満 1週間から1か月 DORA Accelerate State of DevOps 2024 現代的なソフトウェア開発では プロダクト品質、開発チームのスピード・レジリエンスの共立が必要
チームのテストを考えるときでも 品質、スピード、レジリエンスを 共立できるアプローチが求められる
テストアプローチとしても 品質、開発スピード、開発のレジリエンスの共立が必要 ⚫テストアプローチには、品質、開発スピード、レジリエンスの関係を トレードオフにするもの、トレードオンにするものがある ⚫トレードオフ(何かを上げれば他が下がる)のテストアプローチ • 「品質を作りこめばすべてうまくいく」というアプローチ • 品質ゲート(例:最終テスト工程)を重厚化 •
テスト責務を独立性の高いテスト組織へ集中 ⚫現代的なソフトウェア開発でのテストアプローチは、トレードオフを トレードオン(共立)に転換させるように工夫しなければならない
品質、スピード、レジリエンスを 共立させるテストアプローチ
品質、スピード、レジリエンスを共立させるテストアプローチ ⚫テスト担当に閉じた活動では実現できない。 チーム全体で工夫してチームの開発力を総合的に高める必要がある ⚫例:変更のリードタイム(顧客要求への対応時間)の高速化 • 開発全体のプロセス・アプローチの高速化 • 開発全体の顧客満足に向けた方向づけ・最適化 • 変更を支える高い保守性の確保
• 開発力の高い人員と体制構築 • 変更を支えるインフラの整備 • 開発活動のデプロイメントパイプラインへの統合 開発・テスト協働 チームの方向づけ チーム共通基盤の整備 チームの全体最適化 チーム全体の強化
品質、スピード、レジリエンスを共立させるテストアプローチ ⚫いくつかのテストアプローチがある ⚫今回紹介するアプローチ • 開発者テストの充実 • テスト容易性の充実 • Wモデル・テストファースト
QAのシフトレフトを支えるアプローチやプラクティス ⚫開発者テストの充実 ⚫テスト容易性の充実 ⚫Wモデル・テストファースト 開発・テスト協働 チームの全体最適化 チーム全体の強化
開発者テストの充実 ⚫開発者の自動テスト力を鍛える ⚫自動化されたユニットテスト、統合テストを充実させ、開発者テストで 品質を確保。品質確保のシフトレフトを促進する。 有効な自動テストを広く配備させ、追加・変更をサポートさせる • テストピラミッド志向 • 開発者が責任をもって自分のコードに自動テストを書く習慣を醸成する 開発と並行してCI/CDで自動テストを蓄積・資産化していく
開発者テストの充実によるスピードとレジリエンスの向上 ⚫シフトレフトによる早期の品質確保・問題対策で高スピードを確保 ⚫自動テストの充実で、追加・変更の高スピードを支援 ⚫テスト容易性・デバッグ容易性確保を促して、レジリエンスを確保 ユニットテスト 統合テスト E2Eテスト 速度・ 決定性 コスト・忠実性
「ソフトウェア品質保証の方法論、技法、その変遷」,奈良隆正, JASPIC SPIJapan2009
開発者テストの充実のための 開発者が責任をもって自分のコードに自動テストを書く習慣の醸成 1. 習慣の定着 • ガイドラインやプロセスで納得を確保 • テスト駆動開発/Cover & Modifyの奨励
• モブプログラミング/ペアプログラミングによる習慣の伝播 • CI/CDによる自動テストの資産化 2. 習慣づけへの短期フィードバック • PRレビュー/MRレビューでの有識者によるチェック • CI/CDからのカバレッジのフィードバック • フォールトインジェクション/ミューテーションテストによる評価 3. 習慣づけへの中長期フィードバック • 反復型プロセスを採用し、バグ流出を評価して改善サイクルをまわす
QAのシフトレフトを支えるアプローチやプラクティス ⚫開発者テストの充実 ⚫テスト容易性の充実 ⚫Wモデル・テストファースト 開発・テスト協働 チームの全体最適化
テスト容易性の充実 ⚫チームの保守性実現力を鍛え、プロダクトのテスト容易性を広く確保 する ⚫テスト容易性:テストのやりやすさについてのプロダクトの品質特性 ⚫テスト容易性をはじめとする保守性の確保は、品質、スピード、レジリ エンスのトレードオフ関係を壊す有力手段
テスト容易性 品質特性 内容 具体例 観測容易性 テスト対象の観測のしやすさ エラーログの充実度 制御容易性 テスト対象の操作のしやすさ APIの充実度
セットアップ容易性 テストのセットアップのやりやすさ コンストラクタの単純さ 実行容易性 実行の容易さ テスト実行のブロック要因の少なさ 分解容易性 テスト対象の分割・置換の容易さ 接合部の充実度 網羅容易性 テストでの網羅のしやすさ デッドコードの少なさ 安定性 テスト対象の安定性・バグの少なさ 変更頻度の少なさ 環境構築容易性 テスト環境の構築のしやすさ 環境の冪等性 問題検出性 バグの特定のしやすさ 解析ログの充実度 テスト制約許容性 テストに関わる制約の許容度 未完成状態への許容度 対象によってより具体的な品質特性がある。例)自動化:仮想化容易性、並列化容易性、CI/CD統合容易性
テスト容易性で開発のスピードとレジリエンスを支える ⚫テスト容易性の確保で: • テスト活動のスピードを高める。テストの保守の手間を下げる • テストが絡む開発活動(デバッグ、障害対応、機能開発)のスピード、レジリ エンスを高める
テスト容易性の充実 1. 開発早期からテスト容易性の要件を識別し、アーキテクチャレベル から織り込む • 疎結合・高凝集設計を推進し、品質リスクを分離・局在化する • 難易度の高い課題に対しテスト容易性確保の段取りを組む 2. 早期からテストを実行し、テスト容易性の問題を早期検出・是正
• テストファースト、テスト駆動開発を推進する • シフトレフトテスト(テスト実行のシフトレフト)を推進し、テスト容易性の問題 を早期是正する • 反復開発で早期からテストを実行する • 開発者テストを充実させ、CI/CDで早期から実行する • ウォーキングスケルトンを確保する
QAのシフトレフトを支えるアプローチやプラクティス ⚫開発者テストの充実 ⚫テスト容易性の充実 ⚫Wモデル・テストファースト 開発・テスト協働 チームの全体最適化
Wモデル・テストファースト ⚫チームの仕様・設計レベルのテスト容易性確保力を鍛える ⚫Wモデルでテストの視座に基づいた仕様・設計の改善を促す ⚫テストファーストでテストとテスト容易性を確保する
Wモデルに基づいたアプローチ ⚫例:ユーザーストーリー作成と一緒に、そのテストを考えてフィードバッ クする ユーザーストーリ:検索履歴の呼び出し 「システム利用者として、過去の検索 履歴の一覧を表示し、履歴の検索構 文を選択して再実行できる。それによ り、以前検索した内容をすばやく実行 できるようにする」 境界値テストを考える。表示履歴数の最小
値・最大値を確認し、受け入れ基準に明 記する ユーザストーリをテスト担当交えて共同作成する or 作成直後にテストの視座でレビューする テストの検討を行い、早期に対策を打つ テストに必要な情報を確保する。詳細なUI 仕様を確保・補完する リリース判定の観点でチェックする。「検索 履歴の削除」「検索履歴のセキュリティ」な ど、関連するユーザーストーリや仕様の存 在を確認し、不足があれば是正する
Wモデル・テストファーストでスピードとレジリエンスを支える ⚫品質確保のシフトレフト、テスト容易性確保が実現され、チームのス ピードとレジリエンスが向上する
ソフトウェアテスト徹底指南書
ソフトウェアテスト徹底指南書 ⚫2025/6/17 発売。6月増刷決定 ⚫開発チームに求められるテスト力を総合解説 ⚫対象読者は開発チーム ⚫テストの総合力・基礎力を強化できる一冊
ソフトウェアテスト徹底指南書 アウトライン ⚫ Part I ソフトウェアテストと品質マネジメント • ソフトウェアテスト/品質マネジメント ⚫ Part
II テストの戦略とプロセス • テスト戦略 • シフトレフトテスト/Wモデル • アジャイル開発、継続的デリバリ、 DevOps、SPLEを支えるテスト戦略 • テストプロセスの構築 ⚫ Part III テストの作成と実行 • テスト分析 • テストアーキテクチャ設計/VSTeP • テスト設計/テスト実装 • テスト環境構築 • テスト設計技法の活用 • テストの実行 • ユニットテスト/性能テスト/ 組み合わせテスト • リスクベースドテスト/探索的テスト /ユーザーストーリーテスト/静的テスト ⚫ Part IV 自動テストの活用 • 自動テストの開発 • 自動テストの品質作りこみ/フレーキーテスト/ 脆いテスト • 自動テストの評価/ミューテーションテスト • 自動テストの設計・実装の原則 • 自動テストコードのパターン・イディオム • 開発者テスト • テスト駆動開発 ⚫ Part V テストの計画とマネジメント • テスト計画 • テストのモニタリングとコントロール • リスクマネジメント • テストで求められる能力 • テストを担う組織の構築 ⚫ Part VI テストを支える基礎作り • CI/CDの構築 • バグ管理とバグチケット設計 • テスト容易性の確保 • テスト設計を支えるモデリング • テストを支える契約による設計 • ブランチ管理とテストの連携 • システムエンジニアリングで支えるテスト
ソフトウェアテスト徹底指南書 アウトライン ⚫ Part I ソフトウェアテストと品質マネジメント • ソフトウェアテスト/品質マネジメント ⚫ Part
II テストの戦略とプロセス • テスト戦略 • シフトレフトテスト/Wモデル • アジャイル開発、継続的デリバリ、 DevOps、SPLEを支えるテスト戦略 • テストプロセスの構築 ⚫ Part III テストの作成と実行 • テスト分析 • テストアーキテクチャ設計/VSTeP • テスト設計/テスト実装 • テスト環境構築 • テスト設計技法の活用 • テストの実行 • ユニットテスト/性能テスト/ 組み合わせテスト • リスクベースドテスト/探索的テスト /ユーザーストーリーテスト/静的テスト ⚫ Part IV 自動テストの活用 • 自動テストの開発 • 自動テストの品質作りこみ/フレーキーテスト/ 脆いテスト • 自動テストの評価/ミューテーションテスト • 自動テストの設計・実装の原則 • 自動テストコードのパターン・イディオム • 開発者テスト • テスト駆動開発 ⚫ Part V テストの計画とマネジメント • テスト計画 • テストのモニタリングとコントロール • リスクマネジメント • テストで求められる能力 • テストを担う組織の構築/チーム全体アプロー チ ⚫ Part VI テストを支える基礎作り • CI/CDの構築 • バグ管理とバグチケット設計 • テスト容易性の確保 • テスト設計を支えるモデリング • テストを支える契約による設計 • ブランチ管理とテストの連携 • システムエンジニアリングで支えるテスト 今回解説した内容すべてを包括的に学べます