SlideShare une entreprise Scribd logo
1  sur  33
アプリ開発へのODC分析導入の取組み
柏倉直樹
システム本部 品質統括部 品質管理部 QC第2グループ
株式会社ディー・エヌ・エー
@ DeNA Co.,Ltd.
2
自己紹介
柏倉 直樹
カーナビの第三者検証、企業向けルーターのQAを経験し、2018年2
月DeNAに入社。 担当サービスはtoCエンターテイメントサービス、
ECサービス。 現在はQAリーダーとして各種管理、QA技術向上、
サービス品質向上に向けた取り組みに従事しています。
グループ活動 開発初期からの品質向上・CX推進
社外活動 ソフトウェア品質シンポジウム(SQiP)委員 2020〜
DeNA 品質統括部 品質管理部 QC2G
@Gurarinq
3
目次
なぜODCか(ODC概要)
取り組んできたこと
得られた成果
今後の展望・課題
1
2
3
4
4
1. なぜODCか
ODC概要も本章で説明
5
背景
● サービス規模の拡大にともない市場障害が増加傾向にあった
● チームの弱点傾向を定量的に可視化し、優先度をデータを元に判断してシ
ューティングしていきたい!という開発チーム要請
● これまでのバグ分析では弱点傾向を可視化はできない
○ ex)「仕様書不備が多い」までは分析できても、どの工程で仕様書不備が埋め込まれているかまでは可視化できない
1
「やり方の質」が良くない工程を重点的にシューティングしていく!
開発工程の「やり方の質」を可視化する手法であるODC分析を採用
6
ODC概要(1)
● Orthogonal Defect Classification = 直交欠陥分類
● 独立した4つの属性ラベルを不具合票に付与し傾向分析する手法
○ 直交 = 互いに相容れない・依存しない
(ソフトウェア不具合改善手法 ODC分析 工程の「質」を可視化する 杉崎眞弘・佐々木方規 日科技連出版社 2020/8/29 P.12)
1
統計的分析 原因分析(RCA)
ODC
分析手法
● 履歴データモデルとの比較
● 成長曲線モデル
● 限定、特定不具合の調査
是正処置に直結しない 不具合固有の原因追求
時間とコストがかかる
個々の不具合の意味論を定量的
に捉え、プロセスの進歩と品質
成熟への橋渡し
7
ODC概要(2)
・下表に示す4つの属性ごとにラベルを付与する
・タイプ属性はさらに「誤り」と「欠如」の2パターンに分類する(タイプ属性限定子)
1
属性 属性の概要 例
タイプ属性 不具合の原因 ・条件分岐を見落とした
・処理順序を誤った
トリガー属性 不具合が表面化あるいは発見された行
為または条件
・境界値テストで発見
・機能の実行順によって発生
ソース属性 不具合が発見・修正された箇所のソー
スコードの開発履歴に関わる観点のラ
ベル
・新規に追加したソースコード
・既存ライブラリ
インパクト属性 お客様 (ユーザー) にどのような影響を
与えている
・ユーザビリティ
・性能
属性ごとのラベル一覧を参考までに次ページに掲載
8
タイプ属性 トリガー属性
(静的テスト)
トリガー属性
(単体・結合テスト)
トリガー属性
(システムテスト)
ソース属性 インパクト属性
値の設定 設計の合致 単純パスのカバレージ 負荷テスト/ストレステスト 再利用 使用性
条件分岐 レアケース 組合せパスのカバレージ 正常系テスト 書き直し 性能
アルゴリズム 詳細の理解 テスト項目のカバレージ 復旧テスト / 例外テスト 修正 信頼性
タイミング・順序 前バージョンとの互換性 テスト実行順 起動時 / 再起動時テスト 外部作成 導入容易性
インターフェース 水平互換性 相互間でのテスト ハードウェア組合せテスト 旧機能 as is 移行容易性
機能性 言語依存性 テストの多様性 ソフトウェア組合せテスト 新規 保守性
ビルド・パッケージ・結合 ドキュメント記述 縁バグ Temporally 記述性
開発関連ドキュメント 可用性
保全性・セキュリティ
標準化
機能性
表 属性ごとのラベル一覧
実際には下表のラベルだけでなく現場で運用されてきたラベルと組み合わせて分析されることが多い
今回の取り組みでも、従来運用されてきた分析ラベルと併用した(Appendix1)
参考 “ソフトウェア不具合改善手法 ODC分析 工程の「質」を可視化する 杉崎眞弘・佐々木方規 日科技連出版社 2020/8/29”
9
表 開発プロセスとタイプ属性の関係
基本設計 詳細設計 実装 単体テスト 機能テスト
結合テスト
システム
テスト
値の設定 X X
条件分岐 X X X
アルゴリズム X X X
タイミング・順序 X X
インターフェース X X X X X
機能性 X X
タイプ属性にはそれぞれに検出されて然るべき工程がある
10
図 開発プロセスとタイプ属性限定子の関係
タイプ属性限定子=「誤り」or「欠如」のどちらが原因で不具合を埋め込んだかを示すラベル
要件定義
基本設計
詳細設計
実装
機能、クラスの欠如
I/F、メッセージの欠如
同期、直列化の欠如
関連付けの欠如
機能、クラスの誤り
I/F、メッセージの誤り
同期、直列化の誤り
関連付けの誤り
アルゴリズムの欠如
検証の欠如
アルゴリズムの誤り
代入、初期化の欠如
検証の誤り
代入、初期化の誤り
誤り 欠如 要求の具体化を検討してい
る段階では要求の抽出漏れ
や考慮不足のため「欠如」
が多い傾向
工程が進むにつれ設計の詳
細化やレビューが進むと当
初設計したことの誤りに気
づくことが多くなり「誤
り」が増える
実装段階の「欠如」は単純
に実装漏れ、「誤り」はタ
イポ・仕様誤解などが考え
られる
参考 “ソフトウェア不具合改善手法 ODC分析 工程の「質」を可視化する 杉崎眞弘・佐々木方規 日科技連出版社 2020/8/29”
11
ODC概要(4)
1
現状からの
システムテスト
の予測
プロセス・シグネチャーと現実に差異がある
場合「何かおかしい?」と考える
改善策「何をすべきか」を見つける
12
2. 取り組んできたこと
13
取り組み3ステップ
1. ODC分析の学習と導入準備
2. 機能・システムテストでの検出不具合を対象にラベル付け
3. 分析
次ページ以降でそれぞれを詳しく紹介します
2
14
1. ODC分析の学習と導入準備
1. 市販の書籍(※1)とネットで見つかる研究事例から学習(3名×1ヶ月)
2. 導入対象プロジェクトのQAメンバーを交えて議論(5名×1h×3回)
○ ラベルどうする?(現場で伝わりやすいネーミング、分類基準)
○ 従来の分析用ラベルと競合しないか
○ 用意したラベルで目的(弱点可視化)が果たせるか
■ どのラベルとどのラベルを組み合わせるとどんな示唆が得られそうか
○ 適用範囲(最初からレビューやUTへの適用は難しい)
3. ラベル分類ルール表を作成し開発チームへ周知(1名×15h)
2
※1:ソフトウェア不具合改善手法 ODC分析 工程の「質」を可視化する 杉崎眞弘・佐々木方規 日科技連出版社 2020/8/29
15
2.機能・システムテストでの検出不具合を対象にラベル付け
● ラベル付けを開始する時期を開発チームと合意(PJやスプリントの節目)
● 正しいラベルが付与されているかレビュー(2名×2h×20日)
2
16
3.分析
● 集まった不具合データを実際に分析してみる
○ 準備の際に検討した分析方法の他にもいろいろとラベルを組み合わせ
てグラフ化してみる(1名×15h)
○ グラフをレビューし、こんなグラフがあると良い!をフィードバック
するMTG(5名×1h×3回)
2
どんな示唆が得られたかを次章で紹介
17
3. 得られた成果
18
分析から得られた示唆(1)
3
【sampleグラフ:修正ソース種別の分布】
既存コード・仕様の割合が多いため、
・そもそもの仕様/コード品質が悪い
・過去のテストが不十分
・既存仕様への影響調査が不十分
などの可能性がある
本取り組みでは書籍(※1)に定義してある”ソース属性”を、より現場で理解しやすいように”修正ソース種別”とい
うラベルにアレンジして導入した
【修正ソース種別】
どのソースや仕様を修正した際に不具合を混入してしまったか
新規コード・仕様 今回新たに追加したコードや仕様に混入
改修コード・仕様 元々存在したコードや仕様に手を入れた際に混入
修正コード・仕様 不具合対策する際に混入
既存コード・仕様 元々存在したコードや仕様に不具合が潜在していた
※1“ソフトウェア不具合改善手法 ODC分析 工程の「質」を可視化する 杉崎眞弘・佐々木方規 日科技連出版社 2020/8/29”
19
分析から得られた示唆(2)
3
ODCの重要な概念である「誤り」「欠如」と修正対象に着目して分析した場合に得られた示唆
①ドキュメント不備のうち80%は仕様書レビューで検出できる可能性がある
ドキュメント不備の80%が「誤り」が原因で発生している
ここで「誤り」とは「仕様書の記載を誤解した」「ドキュメントを作成する工程で間違った情報を記載してしまった」を指している
これらの原因は語義曖昧性・理解容易性・追跡可能性などの観点でレビューすることで検出できる可能性がある
解釈
②ソースコード不備のうち80%は仕様書をベースとしたソースコードレビューで検出できる可能性がある
ソースコード不備のうち78%が「欠如」が原因で発生している
ここで「欠如」とは「実装を忘れていた」「仕様書の記載を見落としていた」などを指している
これらの原因は実装者とは別の開発者によって、仕様書と照らし合わせながらソースコードレビューすることで検出できる可能性がある
解釈
20
4. 今後の展望・課題
21
今後の展望・課題
● 展望
○ 継続して分析を続ける中で、どのラベルを組み合わせるとどんな傾向
が見えるのか?のバリエーションがもっと拡充される見込み
● 課題
○ 分析の効率化(分析手順の整備・自動化など)
■ BQにデータを集めてDataStudioでグラフ化しているので、BTS以外のデ
ータも分析に活用できるようになる
○ プロセスシグネチャを定義して不具合分布のズレを見つけること
■ 機能・システムテスト以外の全工程のデータが必要
● 開発内レビュー指摘、テストチームレビュー指摘などが一元管理さ
れていない
4
一緒に取り組む仲間を募集しています!!
22
Appendix
23
Appendix1-1
1
本活動で定義した分析用ラベルを参考までに一部掲載
(これら以外にも一般的に用いられるラベルも併用している)
工程はプロジェクトごとに異なるためアレンジが必要
24
Appendix1-2
1
25
Appendix1-3
1
26
Appendix1-4
1
27
Appendix1-5
1
28
Appendix1-6
1
29
Appendix1-7
1
30
Appendix1-8
1
31
Appendix1-9
1
32
Appendix1-10
1
@ DeNA Co.,Ltd.

Contenu connexe

Tendances

メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
Hironori Washizaki
 

Tendances (20)

テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
 
【SQiP2016】楽天のアジャイル開発とメトリクス事例
【SQiP2016】楽天のアジャイル開発とメトリクス事例【SQiP2016】楽天のアジャイル開発とメトリクス事例
【SQiP2016】楽天のアジャイル開発とメトリクス事例
 
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へパターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
 
アジャイル開発とメトリクス
アジャイル開発とメトリクスアジャイル開発とメトリクス
アジャイル開発とメトリクス
 
メトリクスによるソフトウェア品質評価・改善および製品品質実態
メトリクスによるソフトウェア品質評価・改善および製品品質実態メトリクスによるソフトウェア品質評価・改善および製品品質実態
メトリクスによるソフトウェア品質評価・改善および製品品質実態
 
アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)
 
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
 
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
 
Agile開発でのテストのやり方~私の場合~
Agile開発でのテストのやり方~私の場合~Agile開発でのテストのやり方~私の場合~
Agile開発でのテストのやり方~私の場合~
 
テスト分析についての説明資料公開用
テスト分析についての説明資料公開用テスト分析についての説明資料公開用
テスト分析についての説明資料公開用
 
テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
 
QA組織立ち上げ奮闘記 〜はじめに行ったこと、それは、理念を広めること〜
QA組織立ち上げ奮闘記 〜はじめに行ったこと、それは、理念を広めること〜QA組織立ち上げ奮闘記 〜はじめに行ったこと、それは、理念を広めること〜
QA組織立ち上げ奮闘記 〜はじめに行ったこと、それは、理念を広めること〜
 
ソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれから
 
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
 
テスト観点に基づくテスト開発方法論 VSTePの概要
テスト観点に基づくテスト開発方法論VSTePの概要テスト観点に基づくテスト開発方法論VSTePの概要
テスト観点に基づくテスト開発方法論 VSTePの概要
 
品質とは何か.pdf
品質とは何か.pdf品質とは何か.pdf
品質とは何か.pdf
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
 

Similaire à アプリ開発へのOdc分析導入の取り組み

QAファンネル振り返り術
QAファンネル振り返り術QAファンネル振り返り術
QAファンネル振り返り術
JumpeiIto2
 
【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法
【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法
【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法
Atsushi Murakami
 
RTTJapan 会社概要 140120
RTTJapan 会社概要 140120RTTJapan 会社概要 140120
RTTJapan 会社概要 140120
RTT Japan K.K
 

Similaire à アプリ開発へのOdc分析導入の取り組み (20)

Ci&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory PatternCi&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory Pattern
 
Q te cc2
Q te cc2Q te cc2
Q te cc2
 
Marketplace QA Introduction
Marketplace QA IntroductionMarketplace QA Introduction
Marketplace QA Introduction
 
QAファンネル振り返り術
QAファンネル振り返り術QAファンネル振り返り術
QAファンネル振り返り術
 
経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織
 
DXとプロセスマイニング Part01
DXとプロセスマイニング Part01DXとプロセスマイニング Part01
DXとプロセスマイニング Part01
 
To be sn agile enterprise
To be sn agile enterpriseTo be sn agile enterprise
To be sn agile enterprise
 
楽天エンジニアライフ
楽天エンジニアライフ楽天エンジニアライフ
楽天エンジニアライフ
 
JPC2017 [E1-2] DevOps Assist で始める、DevOps on Microsoft Azure!
JPC2017 [E1-2] DevOps Assist で始める、DevOps on Microsoft Azure!JPC2017 [E1-2] DevOps Assist で始める、DevOps on Microsoft Azure!
JPC2017 [E1-2] DevOps Assist で始める、DevOps on Microsoft Azure!
 
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
 
WACATEにより爆発的に加速した QA歴3ヶ月の新卒のお話
WACATEにより爆発的に加速した QA歴3ヶ月の新卒のお話WACATEにより爆発的に加速した QA歴3ヶ月の新卒のお話
WACATEにより爆発的に加速した QA歴3ヶ月の新卒のお話
 
【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法
【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法
【forkwell × TARGET】非エンジニアでもできる『エンジニア採用のPDCA』を回す方法
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
 
RTTJapan 会社概要 140120
RTTJapan 会社概要 140120RTTJapan 会社概要 140120
RTTJapan 会社概要 140120
 
スタートアップの Kpiと分析用ログ について
スタートアップの Kpiと分析用ログ についてスタートアップの Kpiと分析用ログ について
スタートアップの Kpiと分析用ログ について
 
Rakuten_QA_Night_#1 Rakuten_QA_Group
Rakuten_QA_Night_#1 Rakuten_QA_GroupRakuten_QA_Night_#1 Rakuten_QA_Group
Rakuten_QA_Night_#1 Rakuten_QA_Group
 
2-事例紹介! 個別技術相談会における成功体験-ユニオンシンク様
2-事例紹介! 個別技術相談会における成功体験-ユニオンシンク様2-事例紹介! 個別技術相談会における成功体験-ユニオンシンク様
2-事例紹介! 個別技術相談会における成功体験-ユニオンシンク様
 
企画開発運用部門の協調とは
企画開発運用部門の協調とは企画開発運用部門の協調とは
企画開発運用部門の協調とは
 
CMS学会 第三回 研究報告
CMS学会 第三回 研究報告CMS学会 第三回 研究報告
CMS学会 第三回 研究報告
 
LFK_MagicPod_Meetup_Share
LFK_MagicPod_Meetup_ShareLFK_MagicPod_Meetup_Share
LFK_MagicPod_Meetup_Share
 

アプリ開発へのOdc分析導入の取り組み