JaSST  Tokyo  2015

ODC(直交⽋欠陥分類)
概説
2015/2/21  森 　⿓龍龍⼆二

1

本⽇日お持ち帰りいただくこと•現場改善につながるODCという⼀一つの⽋欠陥分類の考え⽅方  •直交する属性やその値に分解する  •定性分析と定量量分析の組みあわせ⽅方2

⽬目次•ODCとは  •ODC概要  •ODCの使い⽅方  •適⽤用事例例  •適⽤用のコツ  •まとめ3

ODCとは4

ODCとは•Orthogonal  Defect  Classiﬁcation  •直交(交差)⽋欠陥分類  •定量量的分析と定性的分析の両⽅方の性質を併せ持つ技法  例例
定量量的 信頼度度成⻑⾧長曲線
定性的

原因分析⼿手法

⻑⾧長所
実施コスト低い

短所

障害の性質そのものはよくわからない問題の根本的解決を図 実施コストがかかる
る•⽋欠陥の性質とその数から次のアクションを考えるための技法
5ODCのイメージ
⽋欠陥の種類別に分類数えられる＝集中し傾向がわかればている箇所が明確早期に対処可能

6

ODC概要7

ODCの特徴•８つの属性(⼀一部９つ）  •互いに観点の異異なる属性に基づく分類  •属性とその取り得る値同⼠士は重なりがない（直交）  •開発プロセス、技術に⾮非依存  •幅広い検証対象  •要件定義書、標準規約以外のすべての成果物
8

時期
検出  Opener

修正  Closer

８つの属性

属性

⽋欠陥除去活動

Attribute

概要

Defect  Removal  ⽋欠陥を発⾒見見したフェーズ
Activities

トリガー

Trigger

⽋欠陥を発⾒見見する観点

インパクト

Impact

お客様に与える影響

ターゲット

Target

修正対象の成果物

⽋欠陥種類

Defect  Type

修正した⽋欠陥の種類

状態

Qualiﬁer

⽋欠陥種類の状態

履履歴

Age

いつ作りこまれたかソース

Source

成果物の出所9⽋欠陥の分類時期•Opener  Section  •⽋欠陥検出時に確定する情報  •Closer  Section  •⽋欠陥修正時に確定する情報10Opener  Sectionの属性•⽋欠陥除去活動(Defect  Removal  Activity)  •⽋欠陥を検出した開発フェーズ  •活動ごとに対応するトリガーを変える  •トリガー(Trigger)  •⽋欠陥を顕在化させた状況、条件、検証の観点  •影響(Impact)  •お客様に与える影響の種類(⼤大中⼩小ではない)
11

トリガーについて

12

Error    Fault    Failure
Error  Mistake

⼈人間の頭の中  のある状態

Fault  Bug  Failure

DefectErrorを実装したもの   Faultが実⾏行行され、機能が達成さまだ実⾏行行されないれない状態※SQuBOKガイドより
13

トリガーとは
Fault

Trigger

Failure・電源が抜けてた   ・電源の抜けを探す  ・リモコンの電池を替える   テレビが点かない
・電池切切れ  ・基盤が壊れてた ・本体の故障を疑う

何を⾒見見逃してしまったか、を表す
14

2011/12/7  Ram  Chillarege⽒氏講演より

⽋欠陥除去活動とトリガートリガーのセット  設計レビュー⽤用

トリガーのセット  コードレビュー⽤用
トリガーのセット  ⽋欠陥除去活動
設計レビュー  コードレビュー  単体テスト  機能テスト  システムテスト

単体テスト⽤用トリガーのセット  トリガーのセット  機能テスト⽤用

システムテスト⽤用

ある程度度絞ると分類しやすい？
15

レビュートリガー
前⼯工程の現バージョン

前⼯工程の設計書

設計書
3:後⽅方互換性

6:内部ドキュメント
2:ロジックフロー  5:同時実⾏行行性  7:⾔言語依存性  9:特殊な状況

前バージョン

1:設計整合性

レビュー
対象

相互作⽤用するコンポー
ネント

後⼯工程の設計書

レビュー
対象外

レビュー 4:並⾏行行互換性 相互作⽤用するコンポーネント

対象
1:設計整合性

8:副作⽤用レビュー

後⼯工程の対象外

設計書
レビューワー16影響(Impact)•顧客が直接受けるインパクト、リスク  •分析で最初に注⽬目すべきポイント  •いわゆる⼤大・中・⼩小では表さないところがODCらしさ  •ISO  9126,  25010などの品質特性で表してもいいが、⾸首尾⼀一貫させる必要がある
17

Closer  Sectionの属性•修正対象(Target)  •⽋欠陥を修正した成果物  •⽋欠陥種類(Defect  Type)  •⽋欠陥の種類(修正対象に依存)  •状態(Qualiﬁer)  •「⽋欠陥種類」が今どういう状態なのかを⽰示す  •履履歴(Age)  •⽋欠陥のあった成果物がいつ作成されたか  •ソース(Source)  •⽋欠陥のあった成果物の出所(内製、派⽣生開発、アウトソースなど)
18トリガーと⽋欠陥種類
顧客要求要件定義

レビュー・  テストの問題点トリガー：  何を⾒見見逃したか
レビュー

製品

要件定義書

設計

⽋欠陥種類：  どんな⽋欠陥が作り込まれたか

開発⼯工程の問題点

テスト

レビュー

設計書

コード実装
19

レビュー

デバッグ

ODC  Extensions  (GUI)20

GUIの属性⼀一覧※ここでは視覚的な側⾯面だけで、背後の機能性は問題にしない
⽋欠陥検出時(Opener)
⽋欠陥検出
活動

GUI  Review

トリガー

⽋欠陥修正時(Closer)
影響

修正対象

⽋欠陥種類

状態 履履歴 ソース

Design/Codeと同じ

Design/CodeDesign/Codeと同じ

Design  Conformance
Widget/Icon  Appearance
Screen  Text/
Characters  Input  Devices
Navigation
Widget/GUI  Behavior

GUI固有部分

21

GUIのトリガー＃

トリガー

Trigger

内容

設計との整合性

Design  Conformance

GUI設計ドキュメントとの整合性

2

画⾯面部品の外観

Widget/Icon  Appearance

ウィジェットやアイコンの外観(間違った⾊色使い、⼤大きすぎる、など)に関する⽋欠陥

3

⽂文字列列

Screen  Text/
Characters  ⽂文字列列(例例：ボタンラベルの綴り)の誤り

1

4

⼊入⼒力力デバイス

Input  Devices

マウス、キーボード、タッチスクリーンなどの⼊入⼒力力デバイスに関する⽋欠陥

5

ナビゲーション

Navigation

ウィンドウ、メニュー、画⾯面部品間のナビゲート
時に⾒見見つかる⽋欠陥

画⾯面部品の動き

Widget/GUI  Behavior

ウィジェットやアイコンの動きに関する⽋欠陥  【例例】ウィジェットにフォーカスが当たらない、リストボックスの複数選択、ヘルプボタンが効かない

622

ODCの使い⽅方23

⽋欠陥の収束判定「機能」に関する⽋欠陥は収束していない。

信頼度度成⻑⾧長曲線上で  収束傾向に⾒見見えても...

Period2までに把握して対策を打てる24

適⽤用事例例
当⽇日のお楽しみ…
25

適⽤用のコツ26コツ１:数をこなす•分類⾃自体の難しさ  •属性とそのとりうる値が多い  •どれに該当するかの選択の難しさ  •⽋欠陥除去活動とトリガーの間に妙な依存関係がある  •テストケース・テストデータの誤りをどう扱うか不不明  •基本的には数をこなすしかない？  

•数が増えてくると1件あたりのぶれが少なくなる27

コツ2：バグ１件の定義•バグ1件の数え⽅方を定義しよう！  
•現実のバグ票ではばらばら  •同じようなバグを何件にもカウント  •１件に複数のバグを集約  •参考となる考え⽅方  •「成果物に含まれる問題の原因部分について１件と数える」  •原因が成果物にある場合→原因１件につき１件  •原因がプロセスにある場合→修正箇所ごとにカウント「SQiPシンポジウム2010併設チュートリアル」（野中  誠）より
28

コツ3：バグ票とのマッピング
ID

サマリ

⼊入⼒力力

期待結果

出⼒力力

重要度度

1〜～バグ

ボタン押下

Aと表⽰示

Bと表⽰示⾼高

要件漏漏れ

修正対象
(Target)
要件定義書

設計書の記載ミス

設計書

コーディングミス

コード

設計との不不整合
.
.
.

トリガー

原因

状態
(Qualiﬁer)
漏漏れ
誤り
無関係

設計との整合性
ロジックフロー
後⽅方互換性横の⼀一貫性

あらかじめ定義しておく
29

まとめ

30

ODCまとめ•ODCとは「直交（交差）⽋欠陥分類」  •定性的分析と定量量的分析の両⽅方の⻑⾧長所をとった分析⽅方法  •８つの属性と、各属性の取り得る値は重ならない（直交）  •適⽤用のコツ  •数をこなす  •⽋欠陥１件の定義を決めてからカウントする  •バグ票とのマッピングが必要  •うまくいくと⽋欠陥の収束状況やリリース判断、プロジェク
トコストの⾒見見積もりなどできる
31

参考資料料(1/2)• IBM  ResearchのODCサイト  • http://researcher.watson.ibm.com/researcher/view_̲project.php?id=480  • ODC  5.2  • http://researcher.watson.ibm.com/researcher/ﬁles/us-‐‑‒pasanth/ODC-‐‑‒5-‐‑‒2.pdf  • ODC  Extensions  • http://researcher.watson.ibm.com/researcher/ﬁles/us-‐‑‒pasanth/ODC-‐‑‒5-‐‑‒2-‐‑‒
Extensions.pdf  • Ram  Chillarege⽒氏のサイト  • http://www.chillarege.com/  • JaSST  ʼ’11  関⻄西「〜～テスト結果は、まだまだ活かせるのではなイカ!?〜～」  • http://jasst.jp/archives/jasst11w.html#workshop  • 「ODC分析による⽋欠陥除去と品質成熟度度の可視化」⼭山崎  隆(オリンパスソフトウェアテクノロジー)  • http://www.ipa.go.jp/ﬁles/000040829.pdf
32参考資料料(2/2)• SQuBOKユーザ会ODC勉強会発表資料料(2014/1)  • http://www.slideshare.net/mori_̲ryuji/odc-‐‑‒2014123  • ODCテンプレート(Excel)  • https://drive.google.com/ﬁle/d/0B-‐‑‒liQb1TH1GJYVE2eElPVENJMEE/view?usp=sharing  • バグ票ワーストプラクティスに寄稿した論論⽂文  • http://www.slideshare.net/mori_̲ryuji/odc-‐‑‒14036416

33

ご清聴ありがとうございました34