Upload
2gksk
View
118
Download
0
Embed Size (px)
Citation preview
どこで不具合を作っている?
自動車の組み立てを考える車両の設計
→部品の設計→部品の作成→車両の組み立て→組み立てチェック→動作テスト→走行テスト→納品
設計・製造(ものづくりのフェーズ)
その後の確認・テストでは不具合は作りこんでいない
※新入社員向け研修より、抜粋
システム開発でも…
基本設計
概要設計
詳細設計
製造
単体テスト
結合テスト
総合テスト
設計・製造フェーズ テストフェーズ
不具合を作るのは、ものづくりのフェーズ
不具合を摘出し、品質に問題ないことを保証するフェーズ
※新入社員向け研修より、抜粋
弱点の対策(1)フェーズ間の情報欠落
基本設計で検討していた仕様が、詳細設計で担当者が変わったため、それが盛り込まれなかった
調査した結果など、有用な資料があるのであれば、それを次工程のインプットにする!
テキストファイルでも、手書きのメモでも何でもよいので、残す・受け渡すことを意識する!
弱点の対策(2)設計書間の記述差異
一緒に直さないといけない設計書が、片方しか直っていない
お決まりのパターンを洗い出し、チェックリスト化する!
チェックの仕組みを構築する!
ものづくり時に間違えないよう、事前教育する!
弱点の対策(2)設計書間の記述差異
例えば…
帳票に項目追加したら、ファイルにも必ず項目が追加されていること→必ず両方直っていること
DBの項目長より、intで受けるかlongで受けるかを決定する→安易にintとしない、必ずチェックする
チーム開発の弱点(3)機能間の不整合
仕様変更が設計者間で伝わっておらず、不整合が発生
処理1 処理2ファイル
項目(A、B、C) 項目(A、B、C)項目(A、D、C)
処理2
項目(A、B、C)
出力内容を変更 項目を誤って読み込み、処理が不正になる
弱点の対策(3)機能間の不整合
仕様変更が設計者間で伝わっておらず、不整合が発生
だまって仕様変更しない!リーダは変更内容を把握し、必要な担当者に伝える!
こういった問題が起こらないよう、担当者間のコミュニケーションを推進する!
攻めの品質とは?
以上の対策は、ものづくり前:計画段階に実施できる事前教育・コミュニケーション
これらをメンバ全員が理解し、不具合を作りこまないようにする
計画段階で、品質を上げる策を打つことを、【攻めの品質】と呼ぶこととしました
⇔守りの品質
不運にも、出来上がったものの品質が悪かった場合に、どう対応するか
さらにテストを追加する、CDIを実施する、…
→手当たり次第では、キリがないばかりか、効果がない可能性も
→いかに効率よく、バグを除去するかが重要
摘出したバグの分析方法:複数の軸で分析する
原因別:あいまいな記述、初期化漏れ、実装漏れ、…
混入工程別:要件定義フェーズ、基本設計フェーズ、製造フェーズ、…
作成者別:はじめて開発に入る○○さんが多く出している
機能別:規模が大きいもの、他システム連携部分
摘出したバグの分析方法:パレート図にしてみる
0
0.2
0.4
0.6
0.8
1
0
5
10
15
20
25
記述曖昧 仕様誤り 実装誤り 規約違反 IF不整合 初期化漏れ
バグの主な原因:設計書の記載内容が悪いようである
分析結果を元に、対策を打つ
各分析軸における上位の原因は、誤りやすいものと言える→まだ同原因のバグが潜んでいる可能性がある
上位の原因から、順に対策する→設計書に曖昧な部分はないか?仕様(ロジック)誤りはないか?
終わりに…
バグ数による品質判断は、これまでの開発経験からの推測でしかない。目標値通りだから大丈夫、とは必ずしも言えない
こう計画して作ったから、こう確認したから大丈夫、というふうに、品質を説明できるようにしていくべき