発表資料

SQiPシンポジウム2009
商品開発プロジェクトの実際
予定では・・・
新製品開発における
ソフトウェア品質改善事例
発売
システム
システム
評価
評価
実用化開発
実用化開発 商品開発
商品開発
遅れ
現実は・・・
実用化開発
実用化開発
量産
量産
遅れ
遅れ
商品開発
商品開発
発売
量産
量産
システム評価
システム評価
評価
評価
積み残し
発売
量産
量産
修正
・・・・
・・・・
テスト
修正
正
修
商品開発
商品開発
テス
スト
ト
テ
実用化開発
実用化開発
シスメックス株式会社 科学計測事業部技術開発課
積み残し
積み残し
実際は!
○小枝 徳晃 瀬下博之 宮本樹美代 井塚宗久
・・・・
・・・・
評価といいながら
不具合対策
2
改善のための分析
対応策の検討
原因は複数考えられる・・・
効果的に対策を打つにはどこから手を付ければよいか
「システム評価」といいながら、
実際は「不具合修正」を行っている。
TOC(制約理論)によれば・・・
システムのスループットを決めているのは、
1つか2つのボトルネックである。
との記載がある。
システム評価の段階で不具合発見による手戻り
TOCの現状問題構造ツリーを用いて、
原因を分析を実行する
プロジェクト全体の開発工数を圧迫
最終段階で発生するため、リカバリーが困難
UDE(Undesired Effect:好ましくない結果)を抽出
次にそれらの関係を導き出す。
~
~
積み残し
積み残し
積み残し
積み残し
~
~
~
~
~
~
遅れ
遅れ
遅れ
遅れ
ことに決定!
3
現状問題点構造ツリーによる分析
分析結果からの考察
システムテスト
システムテスト
でバグを見逃す
でバグを見逃す
ボトルネック
事前テストが
事前テストが
不十分
不十分
仕様の誤解
仕様の誤解
発生
発生
修正漏れの
修正漏れの
発生
発生
先祖帰りの
先祖帰りの
発生
発生
情報共有が
情報共有が
不十分
不十分
変更管理が
変更管理が
不十分
不十分
ソース管理
ソース管理
が不十分
が不十分
システムテストの手戻り
単体テストでの問題もさることながら・・・
テスト技術力が
テスト技術力が
低い
低い
テスト工数が
テスト工数が
不十分
不十分
テスト期間が
テスト期間が
短い
短い
システム設計
システム設計
技術力が低い
技術力が低い
UDE(好ましくない結果)が集中している
開発期間が短い
バグが多い
バグが多い
システムテ
ストでの手戻
りが多い
4
仕様の漏れ
バージョン
バージョン
アップが
アップが
多い
多い
開発期間が
開発期間が
少ない
少ない
システム設計
システム設計
が不十分
が不十分
仕様の誤解
要求管理が
要求管理が
不十分
不十分
ソース管理
コミュニケーションの問題
プロジェクトマネジメントの問題
仕様の追加
仕様の追加
変更が多い
変更が多い
比較的対応しやすく、効果が高い
共通化が
共通化が
進んでない
進んでない
プロジェクト管理が
プロジェクト管理が
不十分
不十分
仕様決定が
仕様決定が
遅い
遅い
「システムテストの手戻り」
市場のニーズ
市場のニーズ
がわからない
がわからない
を今回の改善の対象に決定!
5
6
SQiPシンポジウム2009
どう品質を改善するのか?
①不具合、機能追加管理の徹底
Mantisを活用した修正管理例
優先すべきは、システムテストの手戻り対策
不具合のカテゴリー・重要
度・ステータス(どういう状
態にあるか)など一目でわか
る。
Mantisの活用
変更管理が
不十分
①不具合、機能追加管理の徹底
ソース管理
が不十分
②ソース管理の徹底
情報共有が
不十分
③情報の見える化
開発用WEB構築
Forum,Wiki
テスト工数が
不十分
④自動テストの実施
NUNITの活用
TestCompleteの活用
不具合管理ツールのMantisを機
能追加も含めた作業管理に使用
特にステータスは、色別で直
感的にわかりやすいため、不
具合が放置されっぱなしに
なることはなくなる
VSSの活用
Subversionの活用
VSS:Microsoftのソース管理ツール
Subversion:Linux用ソース管理ツール
各項目修正毎に第3者の検
証を実施。
問題を早期に解決
NUNIT:単体テスト用のツール
TestComplete:自動テスト管理ツール
全ての業務指示は、Mantisに記載することにより、指示を徹底
全てのプログラムの修正項目の対応状況をいつでもだれでも確認可能
アプリケーション操作を記録し、テストを
自動化
7
②ソース管理の徹底(1/2)
8
②ソース管理の徹底(2/2)
開発経過
VSSを用いたソース管理
2006年度
上期
下期
2007年度
上期
下期
要素開発
任意の時点のソースを
常に取得でき、チェック
アウト機能により、同時
のソース変更を禁止で
きる。
2008年度
上期
下期
2009年度
上期
下期
'07/7
市場試験
α00-00開発
α00-01開発
β00-00開発
β00-01開発
'08/2
商品開発開始
'06/7
要素開発開始
'06/9
実用化開発承認
β00-02開発
β00-03開発
開発中の中間バージョ
ンを作成、管理。
作りかけの機能を載せ
ない。
テスト期間の確保
β00-04開発
'08/10
出図
00-00開発
00-01開発
'09/10
設変予定で
開発中
00-02開発
00-03開発

修正者、修正理由が記録され、いつの時点のソースにも復元可能
プログラムソースだけではなく、ドキュメント、ツール等も一元管理
スパイラル開発の考え方を導入
 中間バージョンを計画に基づくリリース
 ソフトウェアの「未実装や作りかけの機能に伴うトラブル」といった問題の排除
 リリースの計画化により、労働時間短縮
休日出勤日数はゼロ
残業時間メンバー平均18.56時間/月 (前商品開発時:平均35.6時間/月)
9
③情報の見える化
スケジュール管理例
10
④自動テストの実施
WEBを用いた情報の共有化
不具合の早期発見
FORUM,WIKI
グループウェアのように情報
を一元化・共通化がはかれる。
スケジュール管理、議事録、各種必要な情報をいつでも確認可能
関連サイトや連絡事項も掲載
現在開発中の2種類のプロジェクトを対象として、自動テストを試行した。
11
12
SQiPシンポジウム2009
④自動テストの成果
プログラム作成量と不具合件数
自動テストのスクリプト作成工数はか
かったが手動では確認できないような
マイナーな不具合が瞬時に発見でき
た例もある。
プロジェクト1自動化テスト工数の比較
1400
種類
1200
有効行
コメント行
空白行
総行数
PC部
134,097
74,540
21,886
227,601
本体部
35,327
5,266
5,082
45,675
テストスクリプト
32232
1000
800
スクリプト作成時間
テスト実施時間
時間
600
400
200
0
スクリプト作成時間
テスト実施時間
手動実施時
自動化後
0
1278
371
95
プロジェクト2:71件の不具合発見
プロジェクト2バージョンテスト
自動化 640 + 40×回数
手動での実施 480×回数
5000
プロジェクト1:19件の不具合発見
PC部におけるプログラム開発中の修正・変更 原因
件数
①開発中に発生した仕様追加、仕様漏れ等の対応
723件
②開発中に発見された不具合(リリース前、後の合計)
972件
計
1695件
4500
一度スクリプトを作成すると、バージョ
ンアップ時には少ないメンテナンス工
数で、繰り返し正確にテストを実施で
きる。
テ ス ト工 数 ( 累 積 ) [ H]
4000
 仕様の追加、漏れが4割(723件/1695件)
3500
3000
・市場の要望が後で判明
・要望していた仕様と異なる
2500
2000
1500
1000
500
0
1
2
3
4
5
6
7
8
9
バージョンアップ回数
バージョンアップ回数・ソースのボリュームなどのバランスはあるものの基本的に
再現性良く、繰り返し何度でも実行できるのは、自動テスト最大のメリットである。
その分省力化できたところを他のテストに時間を有効活用できる。
市場の情報がうまく入ってくる仕組みが必要
13
まとめ及び今後の課題
まとめ
•システムテスト不具合件数が7件(手戻り1回)となり、前回プロジェクトの
数十件(手戻り5回程度)から改善が見られた。
•先祖がえり、修正漏れの不具合は発生していない。
ソース管理、不具合管理ツールの効果が大きい。
•仕様の誤解は、大幅に改善した。
•変更1件毎に修正後の確認を行うことが改善につながった。
•自動テストにより、不具合の早期発見につながった。
今後の課題
・ソフトの共通化の推進
コンポーネント化、ライブラリ化
・テスト技術を向上
各種テスト技法の導入
・要求管理技術の向上
要求管理技術・要求工学の導入
・プロジェクト管理技術の向上
PMBOK、SWEBOKの導入
15
14