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
高品質と高スピードを両立させるソフトウェアQA/Software QA that Suppor...
Search
Hiroki Iseri
December 04, 2024
Technology
6.3k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
高品質と高スピードを両立させるソフトウェアQA/Software QA that Supports Agility and Quality
Hiroki Iseri
December 04, 2024
More Decks by Hiroki Iseri
See All by Hiroki Iseri
生成AI活用でQAエンジニアにどのような仕事が生まれるか/Support Required of QA Engineers for Generative AI
goyoki
1
620
開発に寄りそう自動テストの実現
goyoki
3
3.9k
自動テストを活かすためのテスト分析・テスト設計の進め方/JaSST25 Shikoku
goyoki
3
2.7k
チームのテスト力を総合的に鍛えてシフトレフトを推進する/Shifting Left with Software Testing Improvements
goyoki
6
4.8k
チームのテスト力を鍛える
goyoki
4
3.3k
ソフトウェアテスト徹底指南書の紹介
goyoki
1
2.7k
プロダクト開発を成功させるためのソフトウェア品質保証のアプローチと技術/Software QA Approach for Puduct Success
goyoki
1
2.1k
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
3.6k
テスト分析入門/Test Analysis Tutorial
goyoki
12
6.7k
Other Decks in Technology
See All in Technology
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
180
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
200
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
170
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
160
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
140
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
120
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
150
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
0
130
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
110
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
220
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
280
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
1.3k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
The Curious Case for Waylosing
cassininazir
1
390
The World Runs on Bad Software
bkeepers
PRO
72
12k
Building Adaptive Systems
keathley
44
3.1k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Navigating Team Friction
lara
192
16k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
390
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
260
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
GitHub's CSS Performance
jonrohan
1033
470k
Transcript
高品質と高スピードを両立させる ソフトウェアQAアプローチ 井芹 洋輝 井芹さんが語る!高品質×高スピードを両立させるためのQAアプローチ 2024/12/5
自己紹介 ⚫経歴 • 開発者、テストエンジニア、コンサルタント、QAエンジニアと様々な立場で 様々なプロダクトの品質エンジニアリングに従事 • 2021年からトヨタ自動車でQA/テストテックリードを担当 • JSTQB技術委員、テスト設計コンテストU30クラス初代審査委員長 ⚫著作・講演
• 「テスト自動化の成功を支えるチームと仕組み」 「シフトレフトテストを支える現代的なテスト設計」 「Androidアプリテスト技法」「システムテスト自動化標準ガイド」 「テストの視点を活用したTDDアプローチの検討とその検証」など
この講演について ⚫現場改善の視点で、ソフトウェア開発で高品質と高スピードを両立す るソフトウェアQAアプローチを解説します ⚫本講演は、QA活動は特定のQAエンジニアに閉じずチーム全体で推 進すべきという前提に基づいています。 改善の実行者はQAエンジニアに限定せず、チームとなります
現代的なソフトウェアQAに 求めらる高スピード
高スピードを支えるQAがなぜ重要か ⚫有限な開発リソース下では、QAのためのリソースがトレードオフ • 「QAでの開発スピード悪化」や「QAでの開発リソースの浪費」が発生すれば、 品質確保・向上に投入できる開発リソースが不足し、品質が低下 • 不幸なパターン: リリース間際の品質ゲート重厚化でプロセスが鈍重化 →QAへのリソース投資を増やしているのに、品質が下がる ⚫QAのスピードがプロダクト品質に直結するビジネス形態が増加
• ユーザのフィードバックサイクル対応を迅速化: →よりすばやく顧客満足を確保する 厳しい競争で競合に先んじて顧客価値を提供できる • プロダクトの障害対応の迅速化: →ユーザの不満が即時解消される。ユーザ視点で高品質の評価を得る
現代的なソフトウェアQAに求められるもの ⚫ソフトウェアQAには「高品質を確保する力」と「高スピードに品質を確 保する迅速性」の両立が不可欠 • 開発スピードを犠牲にするようなQA、ただ品質を追求すればすべて良くなる 考え方のQAはしばしば品質を悪化させ、プロダクト価値を棄損する • 有限なリソースで開発の高スピードと高品質の両立を実現できる力がQAに 求められる
高品質と高スピードの両立を 支えるチームの総合力
高品質と高スピードの両立を支えるソフトウェアQA ⚫高品質のみを追求するQAアプローチでは、品質ゲートの重厚化など QAに閉じた選択肢も取りえる ⚫一方で、高スピードと高品質の両立においては、チームの開発力を 総合的に強化するQAアプローチが不可欠になる • 妥当な品質をチームでより迅速に確保する • 同じチームリソースでより高度な品質を実現する •
品質とスピードのトレードオフをチームで緩和する・壊す
高品質と高スピードの両立を支えるソフトウェアQA 例:サービス開発の場合 変更のリードタイム 顧客要求への迅速な対応 サービス復元時間 顧客が直面する障害への 迅速な対応
高品質と高スピードの両立を支えるソフトウェアQA 例:サービス開発の場合 変更のリードタイム 顧客要求への迅速な対応 サービス復元時間 顧客が直面する障害への 迅速な対応 迅速な変更・修正 を実現する チームの技術力
変更・修正を支える 高い保守性 高い保守性を実現する チームの開発力 • 設計・実装・テストの総合力確保(能力確保・育成・発揮) • 設計品質を支えるプロセスや開発インフラの整備 • テストやリリース・デプロイの自動化 • デプロイメントパイプラインの洗練、など 変更・修正を支える 基盤 基盤を整備する チームの総合力
ソフトウェアQAで チームの総合力を高めて 高品質と高スピードを 両立させるアプローチ
QAでチームの高品質と高スピードを支えるアプローチ QAアプローチ アプローチを支える技術 顧客価値への注力 チーム全体アプローチ/継続的QA 問題の予防・早期解決 シフトレフト 改善サイクルによる方向づけ フィードバックプロセスの構築 保守性・QA容易性の作りこみ
疎結合アーキテクチャとプロダクトリスクの分離 開発プロセスの迅速化 デプロイメントパイプラインの高度化
QAでチームの高品質と高スピードを支えるアプローチ QAアプローチ アプローチを支える技術 顧客価値への注力 チーム全体アプローチ/継続的QA 問題の予防・早期解決 シフトレフト 改善サイクルによる方向づけ フィードバックプロセスの構築 保守性・QA容易性の作りこみ
疎結合アーキテクチャとプロダクトリスクの分離 開発プロセスの迅速化 デプロイメントパイプラインの高度化
チーム全体(Whole Team)アプローチ ⚫チーム全体で顧客価値につながる品質実現を推進する。 チームメンバー全員が顧客にとっての品質について責任を持つ • チームの各立場が顧客価値の理解を深め、顧客価値に貢献していく • POは顧客のニーズを引き出し、実現の橋渡しする & 開発者は開発判断の中で顧客価値に貢献する
& テストエンジニアは顧客価値を観点にテストする • 顧客価値の向上のためチームのシナジーを発揮する • 例)開発者がテスト容易性を確保し、テストエンジニアの妥当性確認を 迅速化する →チームの力を正しい方向に結集させ、高スピードと高品質を向上する アンチパターン:「顧客価値を考えるのはPO。開発者の責務担当外」
チーム全体アプローチ ⚫精鋭志向/内製化志向 ⚫顧客満足に向けた明確なビジョン、目的、目標を共有し、チームの方 向性を合わせる ⚫密なコミュニケーションをとる ⚫オープンなコミュニケーションを推進する • 心理的安全性を確保する • 謙虚(Humility)、尊敬(Respect)、信頼(Trust)のHRTの三本柱の確立
⚫チーム内の情報や意思決定の透明性を確保する
継続的QA ⚫DevOpsの継続的テストを拡張した考え方 ⚫プロセスの各工程でQA活動を推進する。 プロダクトライフサイクルの全工程でQA活動を継続する ⚫リリース前のテスト工程や品質ゲートに頼るのではなく、各工程の当 事者が自工程完結で品質を積み上げる ⚫チームのQAの総体的なスピードを高める
継続的QA Plan Code Build Release Deploy Operate Monitor Test ここでもQA
ここでもQA ここでもQA ここでもQA ここでもQA ここでもQA ここでもQA ここでもQA
QAでチームの高品質と高スピードを支えるアプローチ QAアプローチ アプローチを支える技術 顧客価値への注力 チーム全体アプローチ/継続的QA 問題の予防・早期解決 シフトレフト 改善サイクルによる方向づけ フィードバックプロセスの構築 保守性・QA容易性の作りこみ
疎結合アーキテクチャとプロダクトリスクの分離 開発プロセスの迅速化 デプロイメントパイプラインの高度化
QAのシフトレフト ⚫セキュリティ確保とQAの二つの用語定義がある。今回は後者 ⚫品質エンジニアリング活動を早期から実施し、品質の確保・保証を 早期から行う。品質問題を予防・早期対策する ⚫チームのQAの効率とスピードを確保する QAへの注力 シフトレフト プロジェクトの進展 シフトレフトでない開発
QAのシフトレフト ⚫要求仕様誤りの不具合修正のコスト 不具合修正 コスト 要求仕様 設計段階 コーディング テスト 納入時点 x
5x 10x 20x 200x 「ソフトウェア品質保証の方法論、技法、その変遷」,奈良隆正, JASPIC SPIJapan2009
シフトレフトの手段 ⚫中短期の反復開発プロセスの採用 ⚫開発者テストの充実とCI/CDへの統合 • テスト駆動開発/自分のコードに責任をもってテストを書く習慣 • 自動テストの拡充とCIへの統合 ⚫静的テスト/レビューの充実 ⚫リスクマネジメントのシフトレフト •
リアクティブでなくプロアクティブにリスクをコントロールする ⚫シフトレフトを支えるQA容易性・テスト容易性の作りこみ • 例)仕様の静的テスト容易性の確保、ウォーキングスケルトンの確保
継続的QA/シフトレフトを支えるQAの戦略立て ⚫継続的QA、シフトレフトをQA戦略として明示的に推進する • 分散したQA活動の全体構造を工夫する:QAアーキテクチャ • チームの様々なQA活動を漏れ・冗長さのないように整理する • シナジーや強みを発揮しやすいように責務分担を調整する • 自動テストの効果を最大化するように手動テストの責務を調整する
• 大きな品質のリスク・課題に戦略立てて対応する • 難易度の高いリスク・課題への対策を推進する • 様々な関係者を巻き込むQAアプローチを推進する • 中長期で一貫性の求められるQAアプローチを戦略として推進する
継続的QA/シフトレフトを支えるQAの戦略立ての例 リスク・課題 対応方針 QA戦略 サービスの頻繁な 改善・変更に対応 する テスト自動化(実行および生成の自 動化)の促進により、変更対応を効 率化する
テスト対象のテスト自動化容易性の向上。テスト 自動化可能な領域を拡大し、それを活用する自 動テストの責務を広げる テスト容易性向上により、テスト対象 の安定性を向上させる プロダクトの変動部分を局所化し、安定性の高い 領域を拡大する。 高い網羅性が求められるテスト範囲を分離し、統 合テストレベルで品質確保する 手動テストについて、探索的アプ ローチの拡大により、変更対応を効 率化する 変動部分に対する手動テストをテストチャータベー スの探索的テストとして実装する プロダクト・フレームワーク固有のレ ビュー観点を蓄積し、変更レビューの 精度を高め、要件・設計バグを早期 検出する DRBFMで変更レビューを実施し、レビューで抑える べきレビュー観点を故障モードとして蓄積する。 DRBFMのレビューアにはテックリードを必ず参加さ せ、レビュー効果を底上げする
QAでチームの高品質と高スピードを支えるアプローチ QAアプローチ アプローチを支える技術 顧客価値への注力 チーム全体アプローチ/継続的QA 問題の予防・早期解決 シフトレフト 改善サイクルによる方向づけ フィードバックプロセスの構築 保守性・QA容易性の作りこみ
疎結合アーキテクチャとプロダクトリスクの分離 開発プロセスの迅速化 デプロイメントパイプラインの高度化
顧客価値のフィードバックプロセスの構築 ⚫フィードバックプロセスは、高難易度で不透明な開発で、品質とス ピードを両立するために必然的に求められる ⚫フィードバックサイクルをまわし、チームの方向性を適正化して、ス ピードと品質を高める • 探索状態の中で方向を見出す • 正しい方向に先導する •
サイクルの中で改善を継続して改善効果を蓄積する
顧客価値のフィードバックプロセスの構築 開発活動内 のQA活動 ユーザ・ビジネス 視座の工程 実運用 【既存の活動に顧客価値視点を導入】 スリーアミーゴス、受け入れテスト駆動開発 【専用の顧客視点の工程の追加によるフィードバックサイクル】 モックアップ、プロトタイピング、ユーザテスト
【実運用を巻き込んだフィードバックサイクル】 DevOps、継続的デリバリ、シフトライトテスト 開発プロジェクト
QAでチームの高品質と高スピードを支えるアプローチ QAアプローチ アプローチを支える技術 顧客価値への注力 チーム全体アプローチ/継続的QA 問題の予防・早期解決 シフトレフト 改善サイクルによる方向づけ フィードバックプロセスの構築 保守性・QA容易性の作りこみ
疎結合アーキテクチャとプロダクトリスクの分離 開発プロセスの迅速化 デプロイメントパイプラインの高度化
保守性・QA容易性の作りこみ ⚫保守性・QA容易性の確保は、高スピードと高品質の両立の基礎 • 品質とスピードのトレードオフ関係を壊す有力手段 • 大きな効果を実現するものに、疎結合アーキテクチャによるプロダクトリスク の分離アプローチがある
疎結合アーキテクチャによるプロダクトリスクの分離 低リスク 高リスク 低リスク ・・・ 疎結合・高凝集度設計で モジュール化を推進。 プロダクトリスクを分離する (例:接合部配備、信頼できるインター フェース手段採用、カプセル化/状態
や副作用の局所化、インターフェース のシンプル化/契約による設計)
効果を増幅する施策: プロダクトリスクの分離に基づいたQA容易性の作りこみ 低リスク 高リスク 低リスク ・・・ 疎結合・高凝集度設計で モジュール化を推進。 プロダクトリスクを分離する (例:接合部配備、信頼できるインター
フェース手段採用、カプセル化/状態 や副作用の局所化、インターフェース のシンプル化/契約による設計) リスクレベルに応じた アーキテクチャレベルの QA容易性確保 (例:自動化対応、CI/CD統合可能、 QAの障害排除、シフトレフト対応)
疎結合アーキテクチャによるプロダクトリスクの分離に 基づいたテスト戦略 低リスク 高リスク 低リスク ・・・ 疎結合・高凝集度設計で モジュール化を推進。 プロダクトリスクを分離する (例:接合部配備、信頼できるインター
フェース手段採用、カプセル化/状態 や副作用の局所化、インターフェース のシンプル化/契約による設計) リスクレベルに応じた アーキテクチャレベルの QA容易性確保 (例:自動化対応、CI/CD統合可能、 QAの障害排除、シフトレフト対応) •統合テストレベルで 高リスクに対応 •高リスクで詳細なQA が必要なコンポーネント は、優れたQA容易性の 活用でQAを効率化
疎結合アーキテクチャによるプロダクトリスクの分離に 基づいたリリース戦略 疎結合アーキテクチャで、プロダクトリスクの分離を推進 高リスク コンポー ネント 低リスク コンポー ネント 高リスク
リリースの QA 低リスク リリースの QA リリースに応じてQAアプローチを使い分け 高リスクリリースは詳細なQAで、低リスクリリースはスピード重視のQAで。 総体としてQAで高品質・高スピードの両立を実現
高品質と高スピードを両立するための リスク分離を活用したテスト・リリース戦略の原則 ⚫構造的にプロダクトリスクを分離する。高リスクを構造的に隔離する ⚫プロダクトリスクが高いコンポーネントのテスト容易性を高く確保する ⚫分離したプロダクトリスクに応じてテスト・リリースの戦略を調整する
QA容易性の確保 ⚫QA容易性:保守性の一種。QAのやりやすさの品質特性 ⚫QA活動が容易になるように、マネジメント、プロセス、設計・実装を 工夫する • 設計・実装で必要なテスト容易性を作りこむ • 観測容易性/制御容易性/分離・置換容易性/安定性/・・・ • QAのシフトレフトを実現する
• 静的テスト容易な仕様/ウォーキングスケルトンの早期確保/仮想化対応 • 品質のオブザビリティを作りこむ • 品質問題の可視化・検出・対策の仕組みをマネジメントシステムとして実装 する
QAでチームの高品質と高スピードを支えるアプローチ QAアプローチ アプローチを支える技術 顧客価値への注力 チーム全体アプローチ/継続的QA 問題の予防・早期解決 シフトレフト 改善サイクルによる方向づけ フィードバックプロセスの構築 保守性・QA容易性の作りこみ
疎結合アーキテクチャとプロダクトリスクの分離 開発プロセスの迅速化 デプロイメントパイプラインの高度化
デプロイメントパイプラインの拡充・高度化 ⚫CI/CDデプロイメントパイプラインは開発リードタイム短縮・高信頼化の要。 洗練させれば品質とスピード両方を高められる ⚫デプロイメントパイプラインの拡充 • 多くの開発活動をCI/CDデプロイメントパイプラインに組み込む • 自動化する/実行環境を仮想化する • 人の活動もデプロイメントパイプラインを補強するようにプロセス設計する
• 例:PR/MRレビュー ⚫デプロイメントパイプラインの高度化 • より高度なパイプライン処理を実装する • 例:予測的テスト選択、テストの偽陽性/偽陰性の検出 • 高速化・最適化を進める • 例:並列化、コンテナオーケストレーション
まとめ ⚫ソフトウェアQAには「高品質を確保・作りこむ力」と「高スピードに品 質を確保する迅速性」の両立が不可欠 ⚫そのQAアプローチとして以下がある QAアプローチ アプローチを支える技術 顧客価値への注力 チーム全体アプローチ/継続的QA 問題の予防・早期解決 シフトレフト
改善サイクルによる方向づけ フィードバックプロセスの構築 保守性・QA容易性の作りこみ 疎結合アーキテクチャとプロダクトリスクの分離 開発プロセスの迅速化 デプロイメントパイプラインの高度化