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
プロダクト開発を成功させるためのソフトウェア品質保証のアプローチと技術/Software QA...
Search
Hiroki Iseri
August 22, 2025
Programming
1
14
プロダクト開発を成功させるためのソフトウェア品質保証のアプローチと技術/Software QA Approach for Puduct Success
Hiroki Iseri
August 22, 2025
Tweet
Share
More Decks by Hiroki Iseri
See All by Hiroki Iseri
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
6
1.4k
テスト分析入門/Test Analysis Tutorial
goyoki
13
3.4k
高品質と高スピードを両立させるソフトウェアQA/Software QA that Supports Agility and Quality
goyoki
11
5.2k
高スピードと高品質を支えるソフトウェアQA(開発変革セミナー)
goyoki
1
100
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
13
4.6k
高品質と高スピードを両立させるテストアプローチ/Test Approach that Improves Quality and Agility Together
goyoki
17
20k
プレイヤーとしてのチームのテスト力UP/Improving team skills for testing
goyoki
3
1.8k
テスト設計チュートリアル/Test Design Tutorial
goyoki
12
6.6k
自動テストを活躍させるための基礎作りとテスト設計の工夫
goyoki
8
4.4k
Other Decks in Programming
See All in Programming
CEDEC 2025 『ゲームにおけるリアルタイム通信への QUIC導入事例の紹介』
segadevtech
3
890
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
1
200
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
530
実践 Dev Containers × Claude Code
touyu
1
200
Understanding Ruby Grammar Through Conflicts
yui_knk
1
110
DataformでPythonする / dataform-de-python
snhryt
0
170
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
1.8k
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
490
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
エンジニアのための”最低限いい感じ”デザイン入門
shunshobon
0
110
QA x AIエコシステム段階構築作戦
osu
0
270
Infer入門
riru
4
1.5k
Featured
See All Featured
Side Projects
sachag
455
43k
The World Runs on Bad Software
bkeepers
PRO
70
11k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Invisible Side of Design
smashingmag
301
51k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Statistics for Hackers
jakevdp
799
220k
A Modern Web Designer's Workflow
chriscoyier
695
190k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Site-Speed That Sticks
csswizardry
10
770
Transcript
プロダクト開発を成功させるための ソフトウェア品質保証の アプローチと技術 2025/8/22 DXPO東京25夏 井芹 洋輝
自己紹介 ⚫経歴 • 開発者、テストエンジニア、コンサルタント、QAエンジニアと様々な立場で 様々なプロダクトのソフトウェア品質保証業務に従事 • テスト・QAについて執筆・講演・研究・技術指導多数 • 現在は車メーカーでQA/テストテックリードを担当 •
JSTQB技術委員、テスト設計コンテストU30クラス初代審査委員長 ⚫主な著作 • 「ソフトウェアテスト徹底指南書」 「高品質と高スピードを両立させるソフトウェアQAアプローチ」 「シフトレフトテストを支える現代的なテスト設計」 「システムテスト自動化標準ガイド」(共著) 「テストの視点を活用した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 現代的なソフトウェア開発の成功のためには プロダクト品質、開発チームのスピード・レジリエンスの共立が必要
チームの品質保証アプローチにも 品質、スピード、レジリエンスの共立が 求められる
品質保証アプローチにも 品質、開発スピード、開発のレジリエンスの共立が必要 ⚫品質保証アプローチには、品質、スピード、レジリエンスの関係を トレードオフにするもの、トレードオンにするものがある ⚫トレードオフ(何かを上げれば他が下がる)の品質保証アプローチ • 「品質を作りこめばすべてうまくいく」というアプローチ • 品質ゲート(例:最終テスト工程)を重厚化 •
品質確認の責務を独立性の高いテスト組織へ集中 ⚫現代的なソフトウェア開発での品質保証アプローチは、トレードオフを トレードオン(共立)に転換させるものでなければならない
品質、スピード、レジリエンスを 共立させる品質保証アプローチ
品質、スピード、レジリエンスを共立させる品質保証アプローチ ⚫チーム全体で工夫してチームの開発力を総合的に高める必要がある QA部門に閉じたアプローチでは実現できない ⚫例:設計変更のQAで品質・スピード・レジリエンスを共立させる • 開発全体のプロセス・アプローチの高速化 • 開発全体の顧客満足に向けた方向づけ・最適化 • 変更を支える高い保守性の確保
• 開発力の高い人員と体制構築 • 変更を支えるチームのインフラの整備 • 開発活動のデプロイメントパイプラインの拡充 開発・品質保証協働 チームの方向づけ チーム共通基盤の整備 チームの全体最適化 チーム全体の強化
品質、スピード、レジリエンスを共立させる品質保証アプローチ 今回紹介するアプローチ: ⚫品質のシフトレフト • スパイラル型プロセスによる品質作りこみ • 開発者テストの充実 • Wモデル •
テスト容易性の充実 ⚫関心の分離・品質リスクの分離 ⚫チーム全体アプローチによる顧客満足への方向づけ
品質、スピード、レジリエンスを共立させる品質保証アプローチ ⚫品質のシフトレフト • スパイラル型プロセスによる品質作りこみ • 開発者テストの充実 • Wモデル • テスト容易性の充実
⚫関心の分離・品質リスクの分離 ⚫チーム全体アプローチによる顧客満足への方向づけ
品質のシフトレフト ⚫品質エンジニアリング活動を早期から実施し、品質の確保・保証を 早期から行う。品質問題を予防・早期対策する QAへの注力 シフトレフト プロジェクトの進展 旧来の開発
品質のシフトレフト ⚫早期の品質確保・問題対策で高スピードを確保 ⚫継続的な仕組み整備で、追加・変更の高スピードを支援 ⚫テスト容易性・デバッグ容易性確保を促して、レジリエンスを確保 「ソフトウェア品質保証の方法論、 技法、その変遷」,奈良隆正, JASPIC SPIJapan2009
シフトレフトを支える施策 ⚫スパイラル型プロセスによる品質作りこみ ⚫開発者テストの充実 ⚫Wモデル ⚫テスト容易性の充実
スパイラル型プロセスによる品質作りこみ ⚫スクラムといった反復型開発プロセスを推進 • 有効なリリースを反復的に行い品質を作りこむ シーケンシャル型 スパイラル型
開発者テストの充実 ⚫開発者のテスト力を鍛える ⚫ユニットテスト、統合テストを充実させ、開発者テストで品質を確保。 品質のシフトレフトを促進する。有効な自動テストを広く配備させ、追 加・変更をサポートさせる ユニットテスト 統合テスト UIテスト 速い・早い 『Succeeding
with Agile: Software Development Using Scrum』
開発者テストを充実させるための 開発者が責任をもって自動テストを書く習慣の醸成 1. 習慣の定着 • ガイドラインやプロセスで納得を確保 • テスト駆動開発/Cover & Modifyの奨励
• モブプログラミング/ペアプログラミングによる習慣の伝播 • CI/CDによる自動テストの資産化 2. 習慣づけへの短期フィードバック • PRレビュー/MRレビューでの有識者によるチェック • CI/CDからのカバレッジのフィードバック • フォールトインジェクション/ミューテーションテストによる評価 3. 習慣づけへの中長期フィードバック • 反復型プロセスを採用し、バグ流出を評価して改善サイクルをまわす
Wモデル ⚫テストの観点で仕様・設計の改善を促す。テスト容易性を確保する
スクラムでのWモデルの推進例 ⚫ユーザーストーリ作成にテストの視座を注入する ユーザーストーリ:検索履歴の呼び出し 「システム利用者として、過去の検索 履歴の一覧を表示し、履歴の検索構 文を選択して再実行できる。それによ り、以前検索した内容をすばやく実行 できるようにする」 境界値テストを考える。表示履歴数の最小 値・最大値を確認し、受け入れ基準に明
記する ユーザストーリをテスト担当交えて共同作成する or 作成直後にテストの視座でレビューする テストの検討を行い、早期に対策を打つ テストに必要な情報を確保する。詳細なUI 仕様を確保・補完する リリース判定の観点でチェックする。「検索 履歴の削除」「検索履歴のセキュリティ」な ど、関連するユーザーストーリや仕様の存 在を確認し、不足があれば是正する
テスト容易性の充実 ⚫テスト容易性を仕様や設計に組み込む 品質特性 内容 具体例 観測容易性 テスト対象の観測のしやすさ エラーログの充実度 制御容易性 テスト対象の操作のしやすさ
APIの充実度 セットアップ容易性 テストのセットアップのやりやすさ コンストラクタの単純さ 実行容易性 実行の容易さ テスト実行のブロック要因の少なさ 分解容易性 テスト対象の分割・置換の容易さ 接合部の充実度 網羅容易性 テストでの網羅のしやすさ デッドコードの少なさ 安定性 テスト対象の安定性・バグの少なさ 変更頻度の少なさ 環境構築容易性 テスト環境の構築のしやすさ 環境の冪等性 問題検出性 バグの特定のしやすさ 解析ログの充実度 対象によってより具体的な品質特性がある。例)自動化:仮想化容易性、並列化容易性、CI/CD統合容易性
テスト容易性強化によるスピードとレジリエンスの強化 ⚫テスト容易性が高まると、テストを活用する活動(追加・変更開発、 品質保証)のスピードとレジリエンスが高まる • 例)テスト自動化容易性を確保して、自動化率をあげることで、リグレッショ ンテストのスピードを高める テストカバレッジ確保容易性を確保して、Defect Localization効果を高める ことで、障害の特定・修正を容易にする
テスト容易性の充実の要点 1. 開発早期からテスト容易性の要件を識別し、アーキテクチャレベル から織り込む • 疎結合・高凝集設計を推進し、品質リスクを分離・局在化する • 難易度の高い課題に対しテスト容易性確保の段取りを組む 2. 早期からテストを実行し、テスト容易性を継続的に作りこむ
• テストファースト、テスト駆動開発を推進する • シフトレフトテスト(テスト実行のシフトレフト)を推進し、テスト容易性の問題 を早期是正する • 反復開発で早期からテストを実行する • 開発者テストを充実させ、CI/CDで早期から実行する • ウォーキングスケルトンを確保する
品質、スピード、レジリエンスを共立させる品質保証アプローチ ⚫品質のシフトレフト ⚫関心の分離・品質リスクの分離 ⚫チーム全体アプローチによる顧客満足への方向づけ
関心の分離・品質リスクの分離 ⚫関心の分離(Separation of Concerns)、疎結合設計を推進し、 アーキテクチャレベルで高い品質リスクを局在化する ⚫高リスクのプロダクトと、開発のスピード・レジリエンスを両立させる
品質リスクの分離 低リスク 高 リスク 低 リスク ・・・ 疎結合・高凝集度設計で モジュール化を推進。 品質リスクを分離する
(例:接合部配備、信頼できるインター フェース手段採用、カプセル化/状態 や副作用の局所化、インターフェース のシンプル化/契約による設計) 品質レベルに応じた アーキテクチャレベルの QA容易性確保 (例:自動化対応、CI/CD統合可能、 QAの障害排除、シフトレフト対応、 Humble Objectパターン) •高リスクで詳細なテ ストが必要なコンポー ネントは、優れたQA容 易性の活用でQAを効 率化 •高リスクコンポーネ ントは結合テストレベル で品質を担保可能に
関心の分離/品質リスクの分離とリリース戦略 アーキテクチャ設計で、品質リスクのモジュール化を推進 高リスク コンポー ネント 低リスク コンポー ネント 高リスク リリースの
QA 低リスク リリースの QA QAの戦略立てでQAのモジュール化を推進 高リスクリリースは詳細なQAで、低リスクリリースはスピード重視のQAで 総体として高品質・高スピードの両立を実現
品質、スピード、レジリエンスを共立させる品質保証アプローチ ⚫品質のシフトレフト ⚫関心・品質リスクの分離 ⚫チーム全体アプローチによる顧客満足への方向づけ
チーム全体アプローチによる顧客満足への方向づけ ⚫チーム全体アプローチで顧客満足に貢献する 開発ライフサイクル上の全工程を顧客満足に向けて方向づけする • チームのリソース効率の向上、現場主体の改善の促しでスピードとレジリエ ンスを向上させる ⚫適切な品質保証のためにリソースを集中し、価値のない作業を減ら し、品質・スピードを両立させる
顧客満足への方向づけ:全工程QA(DevOpsでの継続的テスト) build test release devloy operate monitor plan code ここでもQA
ここでもQA ここでもQA ここでもQA ここでもQA ここでもQA ここでもQA ここでもQA
顧客満足の改善サイクルを開発活動に組み込むアプローチ 開発活動内 のQA活動 ユーザ・ビジネス 視座の工程 実運用 【既存の活動に顧客視点を導入】 例:スリーアミーゴ、受け入れテスト駆動開発 【専用の顧客視点のQA工程の追加によるフィードバックサイクル】 モックアップ、プロトタイピング、ユーザテスト
【運用を巻き込んだフィードバックサイクル】 例:DevOps、継続的デリバリ、シフトライトテスト 開発プロジェクト
まとめ
品質、スピード、レジリエンスを共立させる品質保証アプローチ ⚫品質保証アプローチは、チームの品質・スピード・レジリエンスを共立 させるものでなければならない ⚫その実現アプローチとして次がある • 品質のシフトレフト • 関心・品質リスクの分離 • チーム全体アプローチによる顧客満足への方向づけ