Download 2011年2月25日 成果発表会プレゼン資料

Transcript
ソフトウェアテスト演習コースⅡ
2011.2.25
Member
主査: 堀田 文明
副主査: 小池 利和
(有)デバッグ工学研究所
ヤマハ(株)
構成員: 秋山 友秀
阿部 祐輔
小野寺 秀利
佐藤 光紀
清水 剛史
高塚 大作
富山 潤一
キヤノンソフトウェア(株)
株式会社インテック、
ソニー(株) ◆発表者
(株)日本オープンシステムズ
株式会社 ユニケソフトウェアリサーチ、
株式会社NTTデータ三洋システム
矢崎総業株式会社
Agenda
1.
2.
3.
4.
5.
本コースで学習したこと
挑戦
テスト対象アプリケーションソフト
テスト分析-マインドマップ
テスト実施内容
1.
2.
同値分割・境界地分析
All-Pair法
3.
4.
状態遷移
CFD法
5.
シナリオテスト
6. まとめ
2
1. 本コースで学習したこと
Specification
(documents)
1
2
3
A .
..
…
… ..
..
B
第6回
FV表・FL表など
第1回
同値分割
第3回
マインドマップ
第2回
マトリックス
第5回
第6回
CFD
第7回
第8回
シナリオテスト(ユースケーステスト)
デシジョンテーブル
直交表・All-Pair
HAYST法
状態遷移図/表
3
2. 挑戦
ねぇ、
結局これらの技法って
業務にどやって使う
の?
秋
4
3. テスト対象アプリケーションソフト
• 単純な演習課題だけでは、技法を習得したとは言えない
• 実務に応用するための実践的な知識がほしい
秋
体重・
体重・体脂肪率管理
体脂肪率管理ツール
管理ツール
体重・体脂肪率の管理
外部出力
ログイン
CSV、
、印刷
ログイン
グラフ設定
ラフ設定
グラフ設定
メイン画面
初回
OK
キャンセル
※ツールの詳細は非公開とします
目標設定
更新
目標設定
クリック
報告
5
1. (再掲)まずはテスト分析から
Specification
(documents)
1
2
3
A .
..
…
… ..
..
B
第6回
FV表・FL表など
第1回
同値分割
第3回
マインドマップ
第2回
マトリックス
第6回
第5回
CFD
第7回
第8回
シナリオテスト(ユースケーステスト)
デシジョンテーブル
直交表・All-Pair
HAYST法
状態遷移表/図
6
4. テスト分析-マインドマップ
• 取扱説明書やReadmeより仕様分析のマインドマップを作成
• 仕様分析を基に、テスト分析のマインドマップまで作成
2010
夏
偉大なる講師陣より直伝
7
1. (再掲)テスト実装~テストまで
Specification
(documents)
1
2
3
A .
..
…
… ..
..
B
第6回
FV表・FL表など
第1回
同値分割
第3回
マインドマップ
第2回
マトリックス
第6回
第5回
CFD
第7回
第8回
シナリオテスト(ユースケーステスト)
デシジョンテーブル
直交表・All-Pair
HAYST法
状態遷移表/図
8
5. テスト実施内容
• 学習したテスト設計技法の応用を目的に、評価を実施
• 各技法の説明と、応用にあたっての気づき(■)を載せた
テスト技法
テスト技法
テスト対象
テスト対象
テストケース数
テストケース数
バグ数
バグ数
担当者
メイン画面主機能
&判定グラフ表示
79
12
ちょい悪おやじ
5-2. All-Pair法
グラフ設定機能
272
0
のっぽさん
5-3. 状態遷移
メイン画面
24
5
海老蔵
目標設定から報告
22
6
秋山さん
全般
24
6
ちょい悪小池
5-1. 同値分割・
境界値分析
5-4. CFD法
5-5. シナリオテスト
9
5. テスト実施内容
5-1. 同値分割・境界値分析
処理が同一となる原因データ(同値)を「同一グループ」 に分類。
テストではこのグループ間の境界値部分を選択する
データフローを捉えたうえで、同値分割データ・境界値でのテストを実施
BMI
境界値
分析
同値分割
無効同値
有効同値
無効同値
代表値
代表値
代表値
マイナス値
身長:0.0~300.0
最大値超
記号
体重:0.0~200.0
文字列
結果系の同値分割が落とし穴
だった!
データフローを考えることで、無効
なテスト組み合わせを回避できる
Test case
Bug
79
12
10
5. テスト実施内容
5-2. All-Pair法
テストする機能を因子・水準の表(FL表)にし、PICTを用いてAllPair表を生成、因子間の組合せの網羅度を高める方法
グラフ設定機能をFL(Factor Level)表へ割り付け
因子
グラフ設定画面
※ツールの詳細は
非公開とします
因子名
表示項目
体重に体脂肪率を
背景色1
背景色2
体
線の種類
重
線の太さ
と
線の色
体
脂 マーカーの種類
肪 マーカーの太さ
量 マーカーの色
線の種類
体
線の太さ
脂
線の色
肪 マーカーの種類
率 マーカーの太さ
マーカーの色
マーカーの種類
判
マーカーの太さ
定
マーカーの色
水準1
体重
追加する
赤
赤
実線
1
赤
+
1
赤
実線
1
赤
+
1
赤
+
1
赤
水準
水準2
水準3
水準4
水準5
体脂肪率 体脂肪量 体重&体脂肪率 体脂肪量&体脂肪率
追加しない
緑
青
緑
青
破線
一点破線
二点破線
点線
2
3
4
5
緑
青
□
○
×
■
2
3
4
5
緑
青
破線
一点破線
二点破線
点線
2
3
4
5
緑
青
□
○
×
■
2
3
4
5
緑
青
□
○
×
■
2
3
4
5
緑
青
-
水準6
判定
水準7
水準8
なし
-
●
-
なし
-
●
-
なし
-
●
-
PictMasterを利用してFL表からAll Pair表を作成
No.
事前状態
表示項目
各列の組み合わせが
1つのテストケースとなる
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重
体重に体脂肪率を
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加しない
追加する
追加する
追加する
追加する
追加する
追加する
追加する
追加する
追加する
追加する
背景色1 背景色2
青
青
青
青
青
青
青
赤
赤
赤
赤
赤
赤
緑
緑
緑
緑
緑
青
青
青
青
青
青
青
青
赤
赤
青
赤
緑
緑
緑
青
緑
緑
青
緑
赤
赤
青
赤
青
青
赤
赤
緑
赤
赤
赤
赤
緑
青
緑
赤
青
線の種類
破線
点線
実線
破線
二点破線
点線
破線
一点破線
実線
実線
点線
二点破線
実線
二点破線
点線
二点破線
二点破線
点線
破線
実線
二点破線
一点破線
点線
破線
点線
二点破線
二点破線
点線
線の太さ
5
1
3
2
4
5
5
4
4
5
1
1
3
5
5
4
2
3
3
4
3
4
2
4
4
4
2
2
線の色
青
青
青
緑
青
緑
緑
緑
青
青
緑
赤
青
赤
緑
青
赤
赤
赤
赤
緑
緑
緑
青
青
赤
赤
青
体重と体脂肪量
マーカーの種類
なし
■
なし
■
○
■
○
なし
●
×
○
なし
○
なし
+
■
□
□
+
□
●
×
なし
●
×
+
×
+
マーカーの太さ
1
1
2
4
1
5
2
5
4
4
4
4
5
3
2
2
4
2
3
5
5
3
1
3
3
2
2
5
マーカーの色
緑
青
赤
赤
緑
赤
赤
青
青
緑
赤
赤
赤
赤
赤
緑
緑
青
青
赤
緑
青
緑
緑
緑
青
青
緑
線の種類
-
線の太さ
-
線の色
-
背景色や線の色
など、水準の数が
多数になるものは、
ある程度判断で限
定させる
禁則を有効に使う
ことによってテスト
ケースを減らすこと
ができる
Test case
Bug
272
0
11
5. テスト実施内容
5-3. 状態遷移
[ プログラムの状態 → イベント → 遷移 ] をモデル化し、状態と
イベントの組合せを網羅してチェックする
全ての<状態>と<遷移>を図で描き、全体像を把握する
体重
メイン画面
身長のみ入力済
身長
身長と体重
身長 体重が入力済
体重
1
※ツールの詳細は
非公開とします
体重のみ入力済
体重
身長と体重
身長 体重が入力済
体重
2
身長
ここの状態に
気づくか?
状態とイベントのマトリクスで遷移に漏れがないか確認
イベント
状態
1
2
3
4
5
遷移
6
入力
判定
イベント
状態
No.
判定
表示(有効なもの)
標準体重
身長
身長&体重 標準体重&BMI
身長&体重 標準体重&BMI&肥満度
身長&体脂 標準体重
肪
身長&体重& 標準体重&BMI&体脂肪
量
体脂肪
身長&体重& 標準体重&BMI&体脂肪
量&肥満度&判定
体脂肪
[身長]入力 [体重]入力 [体脂肪]入力
判定
ボタン
1
2
2
2
2
2
4
5
2
3
3
4
5
4
-
5
5
5
6
5
5
5
6
同じイベントであっても挙動
が変わってしまう初期状態は
全て別状態である
Test case
Bug
24
5
12
5. テスト実施内容
5-4. CFD (Case Flow Diagram)
仕様の因果関係を流れ図にし、その図を基にデシジョンテーブ
ルを作る
CFDを作成
原因
結果
CFDを基にデシジョンテーブルを作成
原因と結果の流れは、結果
から考えるとわかりやすい
Test case
Bug
22
6
13
5. テスト実施内容
5-5. シナリオテスト
テスト対象を使用するアクターを想定し、その環境や目的、期
待結果などを組み合わせたシナリオに沿ってテストする。
アクターからユースケース表を作成
秋
アクター
体重管理ツール
目標を設定する
体重を記録する
達成状況を確認する
テスト技法を駆使
するだけでは発見
できない、評価観
点に気づく
Test case
Bug
24
6
14
6. まとめ
• 一年間の演習を通して最前線のソフトウェアテスト設計技法
を学ぶことができた
• また、頭では理解している技法を実際のアプリケーションソフ
トに応用した場合の壁というものを体験した
• テスト設計を知ることは、ソフトウェア開発側の人間にとって
も非常に有意義であることがわかった
秋
最終品質を高めるのは、テスト行為です
原点に帰り
テストを見直しましょう
15