Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
組織の自律改善に寄与する欠陥特性
日本科学技術連盟ソフトウェア品質管理研究会(SQiP研究会)
2014年度優秀賞受賞
© 2015 EXA CORPORATION 1
EXA Value Forum 2015セッション:D-1
株式会社エクサ
プロジェクト品質技術部
森 龍二
自己紹介
• 職歴– 1998年入社– 3D CADシステム開発– Webフレームワーク開発– 第三者レビュー(QI)組織リーダー– 現在:品質評価、プロセス改善
• 得技– レビュー– ODC(直交欠陥分類)– 欠陥エンジニアリング
• 社外活動– 日科技連SQiP研究会– テスト自動化研究会→翻訳本出版(2014/12)– 探索的テスト研究会– ソフトウェア病理学NEO
JaSST 2015 Tokyo
2014 SQiP研究会成果発表会
2
システムテスト自動化標準ガイド
本日お伝えしたいメッセージ
3
「ソフトウェア欠陥」そのものを
見つめなおそう
© 2015 EXA CORPORATION
目次
• 問題提起
• 課題整理
• 提案
• 実験と考察
• 将来期待される応用分野
© 2015 EXA CORPORATION 4
問題提起
© 2015 EXA CORPORATION 5
品質改善うまくいっていますか?
6
開発者と品質保証の対立
メール百烈拳
バグピンポン
手戻り地獄 泥沼
今日も帰れない
By Thomas Leuthard
これらはすべて「欠陥」のしわざなのです!
© 2015 EXA CORPORATION
品質管理の現状
7
By Linus Bohman
ベストプラクティスばかり
追い求めていませんか?© 2015 EXA CORPORATION
課題整理
© 2015 EXA CORPORATION 8
発想の転換
9
そもそも欠陥とは何か?
© 2015 EXA CORPORATION
品質特性
機能性 信頼性 使用性
効率性 保守性 移植性
先人に学ぶ
10
品質
性質に分解して理解した
© 2015 EXA CORPORATION
欠陥
表の世界(ベストプラクティス)
裏の世界同じ手が使えるのでは?
?
提案
11© 2015 EXA CORPORATION
提案内容
12
「欠陥」とは何か
「欠陥」混入のメカニズム
とは
具現性
有害性
因果性
連鎖性
好複雑性
好欠乏性
増殖性
基本特性
混入特性
欠陥特性
© 2015 EXA CORPORATION
基本特性
13© 2015 EXA CORPORATION
基本特性とは
• すべての欠陥が保有する性質
14
頭・胸・腹の3つの部位からなる
胸には6本の肢
胸には4枚の翅
欠陥議論の前提条件
具現性
有害性
因果性
基本特性
「昆虫」の定義で例えると
© 2015 EXA CORPORATION
対象成果物
具現性
• 具体的な成果物に埋め込まれる性質
• 対象成果物と故障モードの組みあわせ
15
×
具現性
有害性
因果性
基本特性
要件仕様
設計 コード
故障モード
漏れ
誤り
無関係
© 2015 EXA CORPORATION
具現性の例
• 要件定義書の要件が仕様書に反映されておらず、テストでそれが発覚した
• ソースコードに処理内容と無関係のコメントが書かれており、欠陥の特定に時間を要した
© 2015 EXA CORPORATION 16
有害性
• 欠陥とはなんらかの害を及ぼすものである
• 基本的には品質特性の裏返し
17
具現性
因果性
基本特性
有害性
品質特性
機能性
信頼性
使用性
保守性
効率性
移植性
有害性
機能阻害性
不信性
難使用性
難保守性
非効率性
移植阻害性© 2015 EXA CORPORATION
有害性の例
• 機能阻害性– 予定していた新機能を使おうとしたが実装さ
れていない
• 不信性– このスマホアプリ、新機能はとても便利だが、
3分に1回以上落ちる
• 難保守性– ソースコードの複雑度が高く、かつコメント
がほとんど書かれていない
© 2015 EXA CORPORATION 18
因果性
• 欠陥は混入・表出に因果関係を伴うものである
19
実害
欠陥
過失因子増幅因子誘発因子
混入原因(因子)
※JaSST Tokyo 2013「過失に着目した欠陥のモデリング
〜バグ分析はなぜうまく行かないのか」発表資料より引用
環境に誤らされる
具現性基本特性
有害性
因果性
開発の制約 間接原因 思考の誤り
© 2015 EXA CORPORATION
因果性の例
• テストDBで全件DELETEかけてしまい、以降のテストができなくなった
全件DELETE全件削除
SQL文の組み立てミス
改変案件
テスト中断
スキル依存の体制
例文を書き間違えた
SQLは自前で組み立てる
© 2015 EXA CORPORATION 20
※EXA NVF 2014「欠陥モデリングライブ」より
混入特性
21© 2015 EXA CORPORATION
混入特性とは
• すべての欠陥に存在するわけではないが、混入から検出されるまでに獲得した性質
• 環境に依存する
22
By Bryan Wright
連鎖性
好複雑性
好欠乏性
増殖性
混入特性
© 2015 EXA CORPORATION
連鎖性
• 時間的連なりの中で成長する性質
23
欠陥の残存 欠陥の除去
連鎖性
好複雑性
好欠乏性
増殖性
混入特性
2〜5%混入×
© 2015 EXA CORPORATION
連鎖性の例
• スペスミスが一箇所あったが影響は少ないだろうと放置した
• 業務上重要なスペルミスであることが後に発覚
– 例:「理論」と「論理」「数字」と「字数」
• すでにオフショアに展開後だったので修復に時間がかかってしまった
© 2015 EXA CORPORATION 24
増殖性
• 複製・再利用により再生産される性質
• 空間的な増殖
25
連鎖性
好複雑性
好欠乏性
増殖性
混入特性
© 2015 EXA CORPORATION
好複雑性、好欠乏性
26
複数ベンダー
複雑な成果物
巨大な開発標準
人材・スキル不足
記述・実装漏れ
短納期
複雑 欠乏
混入確率上昇
偏在性
連鎖性
好複雑性
好欠乏性
増殖性
混入特性
成果物人的資源 環境
© 2015 EXA CORPORATION
好複雑性、好欠乏性の例
• 好複雑性
– 複数ベンダーでベンダー間の協力体制がない
– 過去の巨大プロジェクト標準をそのまま流用
– 見向きもしない成果物がある
• 好欠乏性
– スキルのある人材ほど不足
– 1から教育するほどの時間がない
– 標準工期と比較して極端に短い工期である
© 2015 EXA CORPORATION 27
実験と考察
28© 2015 EXA CORPORATION
実験1• 欠陥の認識が統一されたか?
– 従来表現:「例外処理が抜けている」
– 基本特性:「コード内のエラーチェックが存在しない」
© 2015 EXA CORPORATION 29
従来表現欠陥である
60%欠陥ではない
40%
基本特性
欠陥である
94%
欠陥ではない 6%
母数=30
認識の共有が進んだ
実験2• 混入特性は品質改善提案につながるか?
– 組織A:組み込み系– 組織B:パッケージアドオン開発– 組織C:業務アプリ開発
© 2015 EXA CORPORATION 30
0%
5%
10%
15%
20%
25%
30%
35%
40%
連鎖性
好複雑性(
組織)
好複雑性(
対象)
好複雑性(環境)
好欠乏性(
組織)
好欠乏性(
対象)
好欠乏性(
環境)
増殖性
組織A
組織B
組織C
組織 導出された改善案
A テスト知識強化
B システム連結部分の改善
C コミュニケーション改善
母数=100欠陥
ピンポイントの改善活動を導出
将来期待される応用分野
© 2015 EXA CORPORATION 31
新しい欠陥分類法への応用
© 2015 EXA CORPORATION 32
ODC(直交欠陥分類)※
品質の作り込み
欠陥の検出
本提案による分類
欠陥由来の問題+
ピンポイントな予測と改善案※ODC入門:http://www.slideshare.net/mori_ryuji/odc-2014123
欠陥情報に基づく予測と予防
• リアルタイム欠陥指摘
© 2015 EXA CORPORATION 33
欠陥DB詳細設計書
【処理機能記述】......AかつBでない場合
A処理
すばやいフィードバック
この書き方は〜という欠陥を引き起こす可能性があります。
!
まとめ
© 2015 EXA CORPORATION 34
まとめ
• 欠陥の共通言語としての「欠陥特性」
• 基本特性– すべての欠陥に共通する性質
• 混入特性– 混入の過程で事後的に備わる
性質
• 実験と考察– 欠陥特性の有効性が示された
• 今後の欠陥議論の基礎となることが期待できる
35
具現性
有害性
因果性
連鎖性
好複雑性
好欠乏性
増殖性
基本特性
混入特性
© 2015 EXA CORPORATION
欠陥特性
37
ご清聴ありがとうございました
© 2015 EXA CORPORATION