SlideShare a Scribd company logo
1 of 7
5th World Congress for Software Quality – Shanghai, China – November 2011

問題のリアルタイム検出による品質改善
- プロジェクト失敗を防止する開発予報 -
Quality Improvement by the Real-Time Detection of the Problems
- DevCast (Development Forecast) for the Failure Project Prevention -
Takanori Suzuki(鈴木 貴典)
Acroquest Technology Co. Ltd, (アクロクエストテクノロジー株式会社)
Kanagawa, Japan
takanori@acroquest.co.jp
Abstract
ソフトウェア開発において,定量的管理を実施していても,実際は属人性により不
十分な分析となっている場合がある.例えば,テストで品質を十分に確保できてい
ることを判断するために,バグ検出密度やバグ収束度で評価することが多いが,テ
ストの結果には,テスト項目の精度やテスト担当者のスキルなども影響しており,
単純にバグの結果だけでは評価できない.
そのような状況を打開するためには,後から品質分析を行うのではなく,リアルタ
イムに分析を行い,問題を検出することで,プロジェクトの失敗を未然に防止する
手法が必要である.
本稿では,その取り組みのひとつとして,多角的な静的品質解析の有効性,および,
テスト結果との関連性を評価した.
1. はじめに
ソフトウェア開発プロジェクトにおいて,プロジェクトの成功率は約 30%しかな
い[1].ここで言う「成功」とは,品質/コスト/納期が,当初の計画範囲内で完了
したことを指すが,成功する確率よりも失敗する確率の方が圧倒的に高い,という
状況は本来異常である.しかしながら,この傾向は,日本国内だけでなく海外でも
同様であり,さらに,何年も変わらず低い水準に留まっている[2].
品質分析/改善は常に重要視されてきている分野であるが,それでも大きな変化が
ないということは,それだけ有効な手法が確立できていないと考えられる.
特に,昨今は品質問題の発生により失敗するプロジェクトが多い.品質問題が発生
したプロジェクトは,開発側や依頼元だけの問題ではなく,社会に対する影響も大
きくなってきている.そのため,本稿では品質に着目し,問題をリアルタイムに検
出・改善していく活動について提案する.
2.

“ 見えない ” 品質問題

ソフトウェアテストにおける品質を評価するために利用されるメトリクスとして,
バグ検出密度(=バグ検出数/テスト対象規模)やバグ収束率(=総バグ検出数/
バグ予測件数)などを利用することが多い.しかしながら,これらのメトリクスは,
テスト項目の網羅度や信頼度,テスト実施の精度などとは無関係である.
テスト完了の判断基準としては,上記のメトリクス以外にも,以下のような影響因
子を考慮する必要があるはずである.
・ テスト項目の入力成果物となる仕様書の質
・ テスト項目の質
・ バグの質
5th World Congress for Software Quality – Shanghai, China – November 2011
・ テスト担当者の質
しかしながら,これらの因子を全て適切に考慮することは困難である.そのため,
あるテスト工程で基準値は満たしていたとしても,その後の工程やリリース後で想
定以上のバグが検出され,品質問題で失敗となるプロジェクトが後を絶たない.

Figure 1. テストの完了基準と影響因子
プロジェクトの基本的な管理指標として QCD(Q:品質/C:コスト/D:納期)
が利用されるが,コストや納期は,比較的容易に算出することが可能なのに対して,
品質は単一のメトリクスとして評価することが難しい.結果,品質問題は必然的に
見えにくくなり,問題を検出できたとしても,納期などを考えると既に手遅れとな
っている場合が多い.
また,実際の開発現場では,コスト・納期の制約により,品質が犠牲になってしま
う場合が多い.
5th World Congress for Software Quality – Shanghai, China – November 2011
Figure 2. テスト工程における理想と現実のギャップ
このような状況を打開するためには,現状をリアルタイムに把握し,そこから将来
を予測し,改善していく手法が必要だと,筆者は考えている.
3. プロジェクト成功への道を見通す
1950 年代ごろに,ウォルター・シューハート(Walter A. Shewhart)、エドワー
ズ・デミング(W. Edwards Deming)らによって,PDCA サイクルというマネジ
メントのサイクルが提唱され[3]、ソフトウェア開発プロジェクトでも広く利用され
るようになった.しかしながら,現代のソフトウェア開発プロジェクトは,大規模
化・期間短縮化され続けている上に,必要となる技術要素も日々変化し,開発の体
制もオフショア/ニアショアなどの分散拠点となっている.そのため,複雑性・不
確実性は増すばかりであり,改善どころか最初の計画自体を立てることでさえでき
ず,失敗してしまうプロジェクトも多い.
そのような状況に対して,筆者は,過去から現在までの状況を測定・評価すること
から改善に繋げる
「開発予報」
というアプローチを提案している.これは,計画あり
きのプロジェクト管理ではない.ツールなどを活用し,事実(成果物)に基づくデ
ータを自動で収集・分析することで,プロジェクトの失敗に繋がるリスクをリアル
タイムにフィードバックしていくアプローチである.

Figure 3. 失敗防止のためのアプローチ
今回,本アプローチをソースコードの静的解析に適用して考え,そこで得られた結
果と,その後の工程で行われたテストとの関連性を考察した.
4. ソースコードの多角的分析に関する考察
静的解析を行うことは品質向上に有効である,といった旨の研究は多く成されてい
るが,テストとの関連性を評価した研究は余りない.
本稿では,Java 言語を用いたあるソフトウェア開発プロジェクトについて,ツー
ルを利用したソースコードの静的な品質解析を実施し,テストにおけるバグ件数に
基づいた品質評価との関連性を評価した.
5th World Congress for Software Quality – Shanghai, China – November 2011

4.1 分析内容
本稿では,
「Table 1. 静的品質評価」
に示すメトリクスでソースコードの品質を評価
した.ここでは,それら複数の観点での評価全体をまとめて
「静的品質評価」
と呼ぶ
こととする.
No

メトリクス

Table 1. 静的品質評価
利用ツール

説明

1)

コーディング規約違反

Checkstyle

プロジェクトで定められたルールで検出された致命的
なエラー件数をカウント。

2)

静的解析エラー

FindBugs

ツールで検出されたエラー件数をカウント。

3)

複雑度

JavaNCSS

McCabe の循環的複雑度(CCN)が 30 以上の関数の
件数をカウント。

4)

コードクローン

CPD

重複されるコードのライン数をカウント。

上記で利用したツールは,オープンソースのツール[4]であり,開発の現場で一般
的に利用されているものである.
これらの解析結果を機能間で比較できるようにするために,1)~3)のエラー件数の
合計値,および,4)のコードクローンのライン数を,機能毎の規模(ライン数)で
割ることにより,それぞれ,密度,および,割合を算出するようにした.
さらに,上記の静的品質評価の結果と,同じプロジェクトに実施されたテスト・出
荷判定で検出されたバグとの関連性を分析することで,静的品質評価の有効性を評
価した.
4.2 静的品質評価とテスト結果との関 係
評価対象のプロジェクトでは A~E の 5 つの機能が存在したが,静的品質評価を実
施したところ「Figure 4. アプローチ静的品質評価結果」に示すような結果となった

エラー検出密度

Figure 4. アプローチ静的品質評価結果

コード
クローン率
5th World Congress for Software Quality – Shanghai, China – November 2011
次に,同機能に対して,結合テストと出荷判定で検出されたバグをまとめると,
「Figure 5. 結合テストと出荷判定のバグ検出結果」に示すような結果となった.

試験でも
バグが多いが、
まだバグを検出し
切れて
いなかっ
た
バグ密度(
結合テスト
)

試験ではバグ密度が目標値に
達し
ていたが、
実は、
バグの
検出漏れが多かっ
た
バグ密度(
出荷判定)

目標値

試験、
出荷判定共に、
バグが少ない
=高品質

Figure 5. 結合テストと出荷判定のバグ検出結果
「Figure 5. 結合テストと出荷判定のバグ検出結果」を見ると,以下のような傾向が
見て取れる.
・ 結合テストでバグが多い機能が出荷判定でもバグが多く検出されるもの
(機能 A)もあれば,結合テストで目標値を超過していない機能であって
も出荷判定では多く検出されるもの(機能 D)もある.
・ 上記の逆で,結合テストで目標値に達しておらず出荷判定でも検出が少な
い,つまり高品質であったと考えられるもの(機能 C)もある.
この結果を考えると,テストだけで品質を評価することが如何に難しいかが分かる
(※ただし,テストによる品質評価が無意味,ということではない).
一方,
「Figure 4. アプローチ静的品質評価結果」 「Figure 5. 結合テストと出荷判定
と
のバグ検出結果」とを比較すると,静的品質評価で問題が多かった機能(機能 A/
機能 C/機能 D)は,出荷判定で問題が多かった機能と一致していることが分かる.
検出された問題の件数に線形的な関係が見られるわけではないが,問題となる機能
が一致するという傾向が見られるのは,静的品質評価は,テストを実施する前に,
リスクのある機能を特定するには有効な手段のひとつであると考えられる.
つまり,コーディング工程の段階で,成果物であるソースコードに対して静的品質
評価を行い,問題のある機能を特定することで,その後のテスト工程における漏れ
などのリスクを避け,品質改善をすることが期待できる.
5. おわりに
5th World Congress for Software Quality – Shanghai, China – November 2011
本稿では,プロジェクトの失敗を未然に防ぐ手法のひとつとして,プロジェクトの
失敗に繋がるリスクをリアルタイムにフィードバックしていくアプローチ,および,
その具体的な手法として,多角的な静的品質解析の有効性を評価した.その結果,
テストを実施する前に品質的なリスクのある機能を特定でき,その後の改善に繋げ
られることが分かった.
これは,成果物自体をツールで解析しているため,属人性の排除とリアルタイム性
を期待できる品質分析手法である.進行中のプロジェクトに対して,失敗を防止す
るためにはこのような手法が有効であると,筆者は考える.
今後の課題としては,以下のようなことが考えられる.
1. 多数のプロジェクトを対象にした統計分析
2. メトリクス種別による影響の傾向分析
3. 設計工程における同様の分析手法の検討と検証
References
[1] 日経コンピュータ(2008 年 12 月 1 日号)特集 1  “第 2 回プロジェクト実態調
査 800 社”, 日経 BP 社, 2008.
[2] Jorge Dominguez, The Curious Case of the CHAOS Report 2009, Project
Smart, 2009
[3] Wikipedia [Online], http://en.wikipedia.org/wiki/PDCA (accessed on 2008/12)
[4] Checkstyle(http://checkstyle.sourceforge.net/),
FindBugs(http://findbugs.sourceforge.net/),
JavaNCSS(http://javancss.codehaus.org/),
CPD(http://pmd.sourceforge.net/cpd.html)
5th World Congress for Software Quality – Shanghai, China – November 2011
本稿では,プロジェクトの失敗を未然に防ぐ手法のひとつとして,プロジェクトの
失敗に繋がるリスクをリアルタイムにフィードバックしていくアプローチ,および,
その具体的な手法として,多角的な静的品質解析の有効性を評価した.その結果,
テストを実施する前に品質的なリスクのある機能を特定でき,その後の改善に繋げ
られることが分かった.
これは,成果物自体をツールで解析しているため,属人性の排除とリアルタイム性
を期待できる品質分析手法である.進行中のプロジェクトに対して,失敗を防止す
るためにはこのような手法が有効であると,筆者は考える.
今後の課題としては,以下のようなことが考えられる.
1. 多数のプロジェクトを対象にした統計分析
2. メトリクス種別による影響の傾向分析
3. 設計工程における同様の分析手法の検討と検証
References
[1] 日経コンピュータ(2008 年 12 月 1 日号)特集 1  “第 2 回プロジェクト実態調
査 800 社”, 日経 BP 社, 2008.
[2] Jorge Dominguez, The Curious Case of the CHAOS Report 2009, Project
Smart, 2009
[3] Wikipedia [Online], http://en.wikipedia.org/wiki/PDCA (accessed on 2008/12)
[4] Checkstyle(http://checkstyle.sourceforge.net/),
FindBugs(http://findbugs.sourceforge.net/),
JavaNCSS(http://javancss.codehaus.org/),
CPD(http://pmd.sourceforge.net/cpd.html)

More Related Content

What's hot

Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Hironori Washizaki
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法kazkiti
 
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~Developers Summit
 
配布用_仕様整理のためのテスト設計入門afterJaSST
配布用_仕様整理のためのテスト設計入門afterJaSST配布用_仕様整理のためのテスト設計入門afterJaSST
配布用_仕様整理のためのテスト設計入門afterJaSSTTetsuya Kouno
 
テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証Akira Ikeda
 
プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~
プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~
プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~Naoki Nakano
 
テスト技法の背景を考察する - WACATE2021夏
テスト技法の背景を考察する - WACATE2021夏テスト技法の背景を考察する - WACATE2021夏
テスト技法の背景を考察する - WACATE2021夏kauji0522
 
2012年度中鉢PBLシラバス
2012年度中鉢PBLシラバス2012年度中鉢PBLシラバス
2012年度中鉢PBLシラバスYoshihide Chubachi
 
失敗しないパッケージ導入1
失敗しないパッケージ導入1失敗しないパッケージ導入1
失敗しないパッケージ導入1小島 規彰
 
TPI NEXT ざっくり概要
TPI NEXT ざっくり概要TPI NEXT ざっくり概要
TPI NEXT ざっくり概要Akira Ikeda
 
CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!kazkiti
 
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)kazkiti
 
テストプロセス改善技術の概要
テストプロセス改善技術の概要テストプロセス改善技術の概要
テストプロセス改善技術の概要Akira Ikeda
 
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜Tetsuya Kouno
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略Masaki Nakagawa
 
RICOH最終選考プレゼン資料
RICOH最終選考プレゼン資料RICOH最終選考プレゼン資料
RICOH最終選考プレゼン資料pyar6329
 

What's hot (18)

Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
 
配布用_仕様整理のためのテスト設計入門afterJaSST
配布用_仕様整理のためのテスト設計入門afterJaSST配布用_仕様整理のためのテスト設計入門afterJaSST
配布用_仕様整理のためのテスト設計入門afterJaSST
 
テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証
 
プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~
プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~
プロダクトに貢献する~テスト計画コンシェルジュとリリース高速化で品質向上を牽引する~
 
テスト技法の背景を考察する - WACATE2021夏
テスト技法の背景を考察する - WACATE2021夏テスト技法の背景を考察する - WACATE2021夏
テスト技法の背景を考察する - WACATE2021夏
 
2012年度中鉢PBLシラバス
2012年度中鉢PBLシラバス2012年度中鉢PBLシラバス
2012年度中鉢PBLシラバス
 
ITS fidel
ITS fidelITS fidel
ITS fidel
 
失敗しないパッケージ導入1
失敗しないパッケージ導入1失敗しないパッケージ導入1
失敗しないパッケージ導入1
 
TPI NEXT ざっくり概要
TPI NEXT ざっくり概要TPI NEXT ざっくり概要
TPI NEXT ざっくり概要
 
CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!
 
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
 
テストプロセス改善技術の概要
テストプロセス改善技術の概要テストプロセス改善技術の概要
テストプロセス改善技術の概要
 
はじめての品質
はじめての品質はじめての品質
はじめての品質
 
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
 
RICOH最終選考プレゼン資料
RICOH最終選考プレゼン資料RICOH最終選考プレゼン資料
RICOH最終選考プレゼン資料
 

Similar to 5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems

アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考えるyasuohosotani
 
19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューション19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューションDevelopers Summit
 
「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみた
「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみた「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみた
「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみたKLab Inc. / Tech
 
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~mafujiwara
 
「Bug advocacy」読んでみた 公開版
「Bug advocacy」読んでみた 公開版「Bug advocacy」読んでみた 公開版
「Bug advocacy」読んでみた 公開版しょうご すずき
 
ゲームテストへの新しいアプローチ
 ゲームテストへの新しいアプローチ ゲームテストへの新しいアプローチ
ゲームテストへの新しいアプローチTakashi Imagire
 
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 智治 長沢
 
【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用智治 長沢
 
アジャイル品質のパターンとメトリクス 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) 20240225Hironori Washizaki
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-Satoshi Masuda
 
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには自動テストで開発効率を上げるには
自動テストで開発効率を上げるにはWataru Terada
 
Agile pm10 quality_2a
Agile pm10 quality_2aAgile pm10 quality_2a
Agile pm10 quality_2aBunnojo
 
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineerKazuaki Matsuo
 
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめJenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめatsushi_tmx
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかSen Ueno
 
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理慎一 古賀
 
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレース
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレースデブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレース
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレースDevelopers Summit
 

Similar to 5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems (20)

アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
 
19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューション19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューション
 
「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみた
「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみた「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみた
「人為ミス防止」フレームワークと「プロセス可視化」ツールを使って プロセス改善を実践してみた
 
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
 
「Bug advocacy」読んでみた 公開版
「Bug advocacy」読んでみた 公開版「Bug advocacy」読んでみた 公開版
「Bug advocacy」読んでみた 公開版
 
ゲームテストへの新しいアプローチ
 ゲームテストへの新しいアプローチ ゲームテストへの新しいアプローチ
ゲームテストへの新しいアプローチ
 
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
 
【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用
 
静的解析のROI
静的解析のROI静的解析のROI
静的解析のROI
 
アジャイル品質のパターンとメトリクス 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
 
Shift v2
Shift v2Shift v2
Shift v2
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
 
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
 
Agile pm10 quality_2a
Agile pm10 quality_2aAgile pm10 quality_2a
Agile pm10 quality_2a
 
To be sn agile enterprise
To be sn agile enterpriseTo be sn agile enterprise
To be sn agile enterprise
 
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer
 
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめJenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
 
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
 
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレース
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレースデブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレース
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレース
 

More from Takanori Suzuki

SORACOM S+Cameraを利用して在庫チェックをやってみた
SORACOM S+Cameraを利用して在庫チェックをやってみたSORACOM S+Cameraを利用して在庫チェックをやってみた
SORACOM S+Cameraを利用して在庫チェックをやってみたTakanori Suzuki
 
Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命Takanori Suzuki
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with KarateTakanori Suzuki
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with KarateTakanori Suzuki
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視Takanori Suzuki
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkTakanori Suzuki
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~Takanori Suzuki
 
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the ProblemsTakanori Suzuki
 
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the ProblemsTakanori Suzuki
 

More from Takanori Suzuki (9)

SORACOM S+Cameraを利用して在庫チェックをやってみた
SORACOM S+Cameraを利用して在庫チェックをやってみたSORACOM S+Cameraを利用して在庫チェックをやってみた
SORACOM S+Cameraを利用して在庫チェックをやってみた
 
Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karate
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
 
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
 
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (9)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems

  • 1. 5th World Congress for Software Quality – Shanghai, China – November 2011 問題のリアルタイム検出による品質改善 - プロジェクト失敗を防止する開発予報 - Quality Improvement by the Real-Time Detection of the Problems - DevCast (Development Forecast) for the Failure Project Prevention - Takanori Suzuki(鈴木 貴典) Acroquest Technology Co. Ltd, (アクロクエストテクノロジー株式会社) Kanagawa, Japan takanori@acroquest.co.jp Abstract ソフトウェア開発において,定量的管理を実施していても,実際は属人性により不 十分な分析となっている場合がある.例えば,テストで品質を十分に確保できてい ることを判断するために,バグ検出密度やバグ収束度で評価することが多いが,テ ストの結果には,テスト項目の精度やテスト担当者のスキルなども影響しており, 単純にバグの結果だけでは評価できない. そのような状況を打開するためには,後から品質分析を行うのではなく,リアルタ イムに分析を行い,問題を検出することで,プロジェクトの失敗を未然に防止する 手法が必要である. 本稿では,その取り組みのひとつとして,多角的な静的品質解析の有効性,および, テスト結果との関連性を評価した. 1. はじめに ソフトウェア開発プロジェクトにおいて,プロジェクトの成功率は約 30%しかな い[1].ここで言う「成功」とは,品質/コスト/納期が,当初の計画範囲内で完了 したことを指すが,成功する確率よりも失敗する確率の方が圧倒的に高い,という 状況は本来異常である.しかしながら,この傾向は,日本国内だけでなく海外でも 同様であり,さらに,何年も変わらず低い水準に留まっている[2]. 品質分析/改善は常に重要視されてきている分野であるが,それでも大きな変化が ないということは,それだけ有効な手法が確立できていないと考えられる. 特に,昨今は品質問題の発生により失敗するプロジェクトが多い.品質問題が発生 したプロジェクトは,開発側や依頼元だけの問題ではなく,社会に対する影響も大 きくなってきている.そのため,本稿では品質に着目し,問題をリアルタイムに検 出・改善していく活動について提案する. 2. “ 見えない ” 品質問題 ソフトウェアテストにおける品質を評価するために利用されるメトリクスとして, バグ検出密度(=バグ検出数/テスト対象規模)やバグ収束率(=総バグ検出数/ バグ予測件数)などを利用することが多い.しかしながら,これらのメトリクスは, テスト項目の網羅度や信頼度,テスト実施の精度などとは無関係である. テスト完了の判断基準としては,上記のメトリクス以外にも,以下のような影響因 子を考慮する必要があるはずである. ・ テスト項目の入力成果物となる仕様書の質 ・ テスト項目の質 ・ バグの質
  • 2. 5th World Congress for Software Quality – Shanghai, China – November 2011 ・ テスト担当者の質 しかしながら,これらの因子を全て適切に考慮することは困難である.そのため, あるテスト工程で基準値は満たしていたとしても,その後の工程やリリース後で想 定以上のバグが検出され,品質問題で失敗となるプロジェクトが後を絶たない. Figure 1. テストの完了基準と影響因子 プロジェクトの基本的な管理指標として QCD(Q:品質/C:コスト/D:納期) が利用されるが,コストや納期は,比較的容易に算出することが可能なのに対して, 品質は単一のメトリクスとして評価することが難しい.結果,品質問題は必然的に 見えにくくなり,問題を検出できたとしても,納期などを考えると既に手遅れとな っている場合が多い. また,実際の開発現場では,コスト・納期の制約により,品質が犠牲になってしま う場合が多い.
  • 3. 5th World Congress for Software Quality – Shanghai, China – November 2011 Figure 2. テスト工程における理想と現実のギャップ このような状況を打開するためには,現状をリアルタイムに把握し,そこから将来 を予測し,改善していく手法が必要だと,筆者は考えている. 3. プロジェクト成功への道を見通す 1950 年代ごろに,ウォルター・シューハート(Walter A. Shewhart)、エドワー ズ・デミング(W. Edwards Deming)らによって,PDCA サイクルというマネジ メントのサイクルが提唱され[3]、ソフトウェア開発プロジェクトでも広く利用され るようになった.しかしながら,現代のソフトウェア開発プロジェクトは,大規模 化・期間短縮化され続けている上に,必要となる技術要素も日々変化し,開発の体 制もオフショア/ニアショアなどの分散拠点となっている.そのため,複雑性・不 確実性は増すばかりであり,改善どころか最初の計画自体を立てることでさえでき ず,失敗してしまうプロジェクトも多い. そのような状況に対して,筆者は,過去から現在までの状況を測定・評価すること から改善に繋げる 「開発予報」 というアプローチを提案している.これは,計画あり きのプロジェクト管理ではない.ツールなどを活用し,事実(成果物)に基づくデ ータを自動で収集・分析することで,プロジェクトの失敗に繋がるリスクをリアル タイムにフィードバックしていくアプローチである. Figure 3. 失敗防止のためのアプローチ 今回,本アプローチをソースコードの静的解析に適用して考え,そこで得られた結 果と,その後の工程で行われたテストとの関連性を考察した. 4. ソースコードの多角的分析に関する考察 静的解析を行うことは品質向上に有効である,といった旨の研究は多く成されてい るが,テストとの関連性を評価した研究は余りない. 本稿では,Java 言語を用いたあるソフトウェア開発プロジェクトについて,ツー ルを利用したソースコードの静的な品質解析を実施し,テストにおけるバグ件数に 基づいた品質評価との関連性を評価した.
  • 4. 5th World Congress for Software Quality – Shanghai, China – November 2011 4.1 分析内容 本稿では, 「Table 1. 静的品質評価」 に示すメトリクスでソースコードの品質を評価 した.ここでは,それら複数の観点での評価全体をまとめて 「静的品質評価」 と呼ぶ こととする. No メトリクス Table 1. 静的品質評価 利用ツール 説明 1) コーディング規約違反 Checkstyle プロジェクトで定められたルールで検出された致命的 なエラー件数をカウント。 2) 静的解析エラー FindBugs ツールで検出されたエラー件数をカウント。 3) 複雑度 JavaNCSS McCabe の循環的複雑度(CCN)が 30 以上の関数の 件数をカウント。 4) コードクローン CPD 重複されるコードのライン数をカウント。 上記で利用したツールは,オープンソースのツール[4]であり,開発の現場で一般 的に利用されているものである. これらの解析結果を機能間で比較できるようにするために,1)~3)のエラー件数の 合計値,および,4)のコードクローンのライン数を,機能毎の規模(ライン数)で 割ることにより,それぞれ,密度,および,割合を算出するようにした. さらに,上記の静的品質評価の結果と,同じプロジェクトに実施されたテスト・出 荷判定で検出されたバグとの関連性を分析することで,静的品質評価の有効性を評 価した. 4.2 静的品質評価とテスト結果との関 係 評価対象のプロジェクトでは A~E の 5 つの機能が存在したが,静的品質評価を実 施したところ「Figure 4. アプローチ静的品質評価結果」に示すような結果となった エラー検出密度 Figure 4. アプローチ静的品質評価結果 コード クローン率
  • 5. 5th World Congress for Software Quality – Shanghai, China – November 2011 次に,同機能に対して,結合テストと出荷判定で検出されたバグをまとめると, 「Figure 5. 結合テストと出荷判定のバグ検出結果」に示すような結果となった. 試験でも バグが多いが、 まだバグを検出し 切れて いなかっ た バグ密度( 結合テスト ) 試験ではバグ密度が目標値に 達し ていたが、 実は、 バグの 検出漏れが多かっ た バグ密度( 出荷判定) 目標値 試験、 出荷判定共に、 バグが少ない =高品質 Figure 5. 結合テストと出荷判定のバグ検出結果 「Figure 5. 結合テストと出荷判定のバグ検出結果」を見ると,以下のような傾向が 見て取れる. ・ 結合テストでバグが多い機能が出荷判定でもバグが多く検出されるもの (機能 A)もあれば,結合テストで目標値を超過していない機能であって も出荷判定では多く検出されるもの(機能 D)もある. ・ 上記の逆で,結合テストで目標値に達しておらず出荷判定でも検出が少な い,つまり高品質であったと考えられるもの(機能 C)もある. この結果を考えると,テストだけで品質を評価することが如何に難しいかが分かる (※ただし,テストによる品質評価が無意味,ということではない). 一方, 「Figure 4. アプローチ静的品質評価結果」 「Figure 5. 結合テストと出荷判定 と のバグ検出結果」とを比較すると,静的品質評価で問題が多かった機能(機能 A/ 機能 C/機能 D)は,出荷判定で問題が多かった機能と一致していることが分かる. 検出された問題の件数に線形的な関係が見られるわけではないが,問題となる機能 が一致するという傾向が見られるのは,静的品質評価は,テストを実施する前に, リスクのある機能を特定するには有効な手段のひとつであると考えられる. つまり,コーディング工程の段階で,成果物であるソースコードに対して静的品質 評価を行い,問題のある機能を特定することで,その後のテスト工程における漏れ などのリスクを避け,品質改善をすることが期待できる. 5. おわりに
  • 6. 5th World Congress for Software Quality – Shanghai, China – November 2011 本稿では,プロジェクトの失敗を未然に防ぐ手法のひとつとして,プロジェクトの 失敗に繋がるリスクをリアルタイムにフィードバックしていくアプローチ,および, その具体的な手法として,多角的な静的品質解析の有効性を評価した.その結果, テストを実施する前に品質的なリスクのある機能を特定でき,その後の改善に繋げ られることが分かった. これは,成果物自体をツールで解析しているため,属人性の排除とリアルタイム性 を期待できる品質分析手法である.進行中のプロジェクトに対して,失敗を防止す るためにはこのような手法が有効であると,筆者は考える. 今後の課題としては,以下のようなことが考えられる. 1. 多数のプロジェクトを対象にした統計分析 2. メトリクス種別による影響の傾向分析 3. 設計工程における同様の分析手法の検討と検証 References [1] 日経コンピュータ(2008 年 12 月 1 日号)特集 1  “第 2 回プロジェクト実態調 査 800 社”, 日経 BP 社, 2008. [2] Jorge Dominguez, The Curious Case of the CHAOS Report 2009, Project Smart, 2009 [3] Wikipedia [Online], http://en.wikipedia.org/wiki/PDCA (accessed on 2008/12) [4] Checkstyle(http://checkstyle.sourceforge.net/), FindBugs(http://findbugs.sourceforge.net/), JavaNCSS(http://javancss.codehaus.org/), CPD(http://pmd.sourceforge.net/cpd.html)
  • 7. 5th World Congress for Software Quality – Shanghai, China – November 2011 本稿では,プロジェクトの失敗を未然に防ぐ手法のひとつとして,プロジェクトの 失敗に繋がるリスクをリアルタイムにフィードバックしていくアプローチ,および, その具体的な手法として,多角的な静的品質解析の有効性を評価した.その結果, テストを実施する前に品質的なリスクのある機能を特定でき,その後の改善に繋げ られることが分かった. これは,成果物自体をツールで解析しているため,属人性の排除とリアルタイム性 を期待できる品質分析手法である.進行中のプロジェクトに対して,失敗を防止す るためにはこのような手法が有効であると,筆者は考える. 今後の課題としては,以下のようなことが考えられる. 1. 多数のプロジェクトを対象にした統計分析 2. メトリクス種別による影響の傾向分析 3. 設計工程における同様の分析手法の検討と検証 References [1] 日経コンピュータ(2008 年 12 月 1 日号)特集 1  “第 2 回プロジェクト実態調 査 800 社”, 日経 BP 社, 2008. [2] Jorge Dominguez, The Curious Case of the CHAOS Report 2009, Project Smart, 2009 [3] Wikipedia [Online], http://en.wikipedia.org/wiki/PDCA (accessed on 2008/12) [4] Checkstyle(http://checkstyle.sourceforge.net/), FindBugs(http://findbugs.sourceforge.net/), JavaNCSS(http://javancss.codehaus.org/), CPD(http://pmd.sourceforge.net/cpd.html)