組込みソフトウェアの品質の小噺
Gou Sawada
2016/2/9
差分開発の構造
潜在バグ
旧ソフト
新規開発時に見つか
らなかったバグ
差分開発の構造
差分開発
潜在バグ 潜在バグ
旧ソフト
開発
既存のまま
新ソフト
差分開発の構造
差分開発
潜在バグ 潜在バグ 潜在バグ
旧ソフト
開発
既存のまま
新ソフト
新ソフト
の試験
試験範囲
回帰試験
(デグレ)
※漏れることがある
潜在バグは残る
既存機能については、バグは無いことを前提として考えている。
性善説
新規開発時に見つからなかったバグは
潜在バグとして残り続ける
何かの拍子にバグが発現する
※工数が限られているため
既存機能まで再試験する
余裕は無い
どうするか?
新規開発・大規模開発時に徹底的に
バグを潰す
(観点漏れを防止する)
性善説の強化
どうするか?
新規開発・大規模開発時に徹底的に
バグを潰す
(観点漏れを防止する)
性善説の強化
小規模変更物件でも強化試験を行う
(強化試験をやったことが無い物件について)
性悪説への転換
どうするか?
新規開発・大規模開発時に徹底的に
バグを潰す
(観点漏れを防止する)
性善説の強化
小規模変更物件でも強化試験を行う
(強化試験をやったことが無い物件について)
性悪説への転換
どうするか?
※本当にやろうとすると
試験工数は膨大になる・・・
人も時間も無限ではない
品質対策①:機能一覧表を作る
利用する人の特性 装置の設定 操作中の処理 処理実行
大人 日付(年末年始など) → 停電 → 通常
子供 時刻(深夜0::00など) 長時間の放置 不正終了
年配者 場所 他装置からの通信 取消
性別 時刻補正
障がい者 運用モード
頻繁に利用する 設定の時限切り替え
時々利用する(操作に不慣れ)
故障によるフェールソフト
会員
非会員
1人だけの利用
団体での利用
品質対策①:機能一覧表を作る
利用する人の特性 装置の設定 操作中の処理 処理実行
大人 日付(年末年始など) → 停電 → 通常
子供 時刻(深夜0::00など) 長時間の放置 不正終了
年配者 場所 他装置からの通信 取消
性別 時刻補正
障がい者 運用モード
頻繁に利用する 設定の時限切り替え
時々利用する(操作に不慣れ)
故障によるフェールソフト
会員
非会員
1人だけの利用
団体での利用
ソフト変更・試験項目の作成にあたり
システムが持つ全ての機能や要素を書き出す
これらを、変更しようとしている機能と掛け合わせて
影響があるか検討する
品質対策①:機能一覧表を作る
利用する人の特性 装置の設定 操作中の処理 処理実行
大人 日付(年末年始など) → 停電 → 通常
子供 時刻(深夜0::00など) 長時間の放置 不正終了
年配者 場所 他装置からの通信 取消
性別 時刻補正
障がい者 運用モード
頻繁に利用する 設定の時限切り替え
時々利用する(操作に不慣れ)
故障によるフェールソフト
会員
非会員
1人だけの利用
団体での利用
ソフト変更・試験項目の作成にあたり
システムが持つ全ての機能や要素を書き出す
これらを、変更しようとしている機能と掛け合わせて
影響があるか検討する
※実際、機能一覧表を
作ってみたことで
機能の変更漏れを
発見できたことがあります。
品質対策②:状態遷移を意識してテストする
【観点】各シーケンスにて異常動作を発生させた際、
開始釦を押す 取消 挙動に問題ないことを確認する。
機能別キーを押す 取消
確定を押す 取消
エラー
取消 通信待ち
解除
数量入力
取消 確定を押す エラー
取消
強制実行
正常完了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A
B
C
D
E
F
停電
動作
無効キーを押す
通信エラー
日付跨ぎ
業務終了時刻跨ぎ
・・・
1
2
3
4
5
6
7
10
8
9
12
16
13
14
15
11
品質対策②:状態遷移を意識してテストする
【観点】各シーケンスにて異常動作を発生させた際、
開始釦を押す 取消 挙動に問題ないことを確認する。
機能別キーを押す 取消
確定を押す 取消
エラー
取消 通信待ち
解除
数量入力
取消 確定を押す エラー
取消
強制実行
正常完了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A
B
C
D
E
F ・・・
動作
停電
無効キーを押す
通信エラー
日付跨ぎ
業務終了時刻跨ぎ
1
2
3
4
5
6
7
10
8
9
12
16
13
14
15
状態×入力の掛け合わせ
で結果が決まる
11
品質対策②:状態遷移を意識してテストする
【観点】各シーケンスにて異常動作を発生させた際、
開始釦を押す 取消 挙動に問題ないことを確認する。
機能別キーを押す 取消
確定を押す 取消
エラー
取消 通信待ち
解除
数量入力
取消 確定を押す エラー
取消
強制実行
正常完了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A
B
C
D
E
F ・・・
動作
停電
無効キーを押す
通信エラー
日付跨ぎ
業務終了時刻跨ぎ
1
2
3
4
5
6
7
10
8
9
12
16
13
14
15
状態遷移を意識する
分岐の漏れ=試験の漏れ
また、各状態における
異常動作が有り得るか検討する
各遷移が成功した場合ばかり試験して、
失敗した場合の試験をしていない事がある
↓
市場で障害発生!
状態×入力の掛け合わせ
で結果が決まる
11
所感:影響度の判断について
単純にソースコードの変更規模が小さければ、影響度も小さいとはいえない!
(変更による潜在バグの発現、処理順序・タイミングが意図せず変わっていた、
 もう1か所変更しなければならない部分に気付かなかった・・・etc)
所感:影響度の判断について
単純にソースコードの変更規模が小さければ、影響度も小さいとはいえない!
(変更による潜在バグの発現、処理順序・タイミングが意図せず変わっていた、
 もう1か所変更しなければならない部分に気付かなかった・・・etc)
また、小規模の変更であっても、
・担当者が変わった
・前回開発から長期間経過している
などの場合は要注意案件と考える。
ありがとうございました

More Related Content

PPTX
Bindingからframework elementを見つける
PPTX
Friendlyを使ったwindowsアプリテスト自動化
PPTX
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
PDF
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
PDF
自動テストの誤解とアンチパターン in 楽天 Tech Talk
PDF
DevOpsのはじめの一歩 〜監視の変遷〜
PPTX
コードレビューをより良くする Danger x Android
PPT
RICOH最終選考プレゼン資料
Bindingからframework elementを見つける
Friendlyを使ったwindowsアプリテスト自動化
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
自動テストの誤解とアンチパターン in 楽天 Tech Talk
DevOpsのはじめの一歩 〜監視の変遷〜
コードレビューをより良くする Danger x Android
RICOH最終選考プレゼン資料

What's hot (20)

PDF
Jenkinsではじめる継続的インテグレーション
PDF
Jenkins+Play!で気軽にCI
PDF
詳解!自動結合テスト #jasst
PDF
Startup jenkins!
PPTX
テストを書こう!!
PPT
ビジネス的に高価値なアジャイルテスト
PPTX
Jenkinsを使った初めての継続的インテグレーション
PPTX
自動テストで開発効率を上げるには
PPTX
10分でわかるDevOps
PPTX
Jenkins使ってみた~Windows編~
PPTX
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
PDF
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
PPTX
fastlane snapshotの並列実行についてまとめてみた
PPTX
PPTX
Vagrantでwindows仮想環境を構築しよう
PPTX
入門!Jenkins
PDF
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
PDF
ドリコムJenkins勉強会資料
PDF
脆弱性もバグ、だからテストしよう DevSummiFukuoka
PDF
java-ja TDD 2nd
Jenkinsではじめる継続的インテグレーション
Jenkins+Play!で気軽にCI
詳解!自動結合テスト #jasst
Startup jenkins!
テストを書こう!!
ビジネス的に高価値なアジャイルテスト
Jenkinsを使った初めての継続的インテグレーション
自動テストで開発効率を上げるには
10分でわかるDevOps
Jenkins使ってみた~Windows編~
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
fastlane snapshotの並列実行についてまとめてみた
Vagrantでwindows仮想環境を構築しよう
入門!Jenkins
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
ドリコムJenkins勉強会資料
脆弱性もバグ、だからテストしよう DevSummiFukuoka
java-ja TDD 2nd
Ad

Similar to 組込みソフトウェアの品質の小噺 (13)

PPS
Small eigen collider ruby kaigi 2011
PDF
はじめてAnsibleのバグ修正に協力してみた
PPTX
バージョン管理の断捨離
ODP
Small eigen collider ruby kaigi 2011
PDF
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
PDF
GCSアジャイル開発を使ったゲームの作り方
PPTX
テストしなイカ? Seleniumで自動ブラウザテスト
PDF
DevOps、その前に
PDF
Swiftビギナーズ倶楽部 vol.2
PDF
【JaSST'11 Kansai】 開発者とテスト担当者に最適なコラボレーションと効率化を!
PPTX
Finc microservice meetup_shigemura_lt
PDF
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
PDF
タイムボックス制約付きインクリメンタル開発
Small eigen collider ruby kaigi 2011
はじめてAnsibleのバグ修正に協力してみた
バージョン管理の断捨離
Small eigen collider ruby kaigi 2011
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
GCSアジャイル開発を使ったゲームの作り方
テストしなイカ? Seleniumで自動ブラウザテスト
DevOps、その前に
Swiftビギナーズ倶楽部 vol.2
【JaSST'11 Kansai】 開発者とテスト担当者に最適なコラボレーションと効率化を!
Finc microservice meetup_shigemura_lt
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
タイムボックス制約付きインクリメンタル開発
Ad

組込みソフトウェアの品質の小噺