Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Copyright (C) 2012 WACATE All rights reserved
実践!組合せテスト設計〜~組合せテストで学ぶソフトウェアテストの設計プロセス〜~
WACATE2012 夏2012年年6⽉月30⽇日
井芹 洋輝(WACATE実⾏行行委員会)
1
Copyright (C) 2012 WACATE All rights reserved
この講義で扱うこと
• ソフトウェアを対象とした組合せテストの設計プロセスについて解説します– 仕様の分析– 因⼦子・⽔水準のピックアップ– 組合せをどう扱うか– 組合せテスト技法の使いどころ
• これから⾏行行われる2つのワークショップで実践してきます
2
Copyright (C) 2012 WACATE All rights reserved
組合せテストの設計で⼤大事なこと
• 適切切な組合せテストの設計には、適切切なテスト計画、テスト分析、テストの上流流設計が⽋欠かせません– いきなり技法を適⽤用すると冗⻑⾧長なテストや、テストの抜け漏漏れが発⽣生しやすくなります– 逆にテストの上流流⼯工程を適切切に⾏行行っていれば、どのような組合せがありどのような技法を使うべきか明らかになっていきます
3
Copyright (C) 2012 WACATE All rights reserved
良良いテスト設計の基本的な流流れ
4
入力(テストベースやテスト要求)
テストケースやテスト手順へ
発散
整理
テスト設計
Copyright (C) 2012 WACATE All rights reserved
良良いテスト設計の基本的な流流れ
5
入力(テストベースやテスト要求)
テストケースやテスト手順へ
発散
整理
テスト設計
・仕様の抜け漏れや隠れた意図を明らかにする・テストの目的やテストへの要求を明らかにする
・テスト対象やテストの目的を整理する・何にどのようなテストが必要か目安をたてる
・テスト対象に対して実施すべきテストを適切な技法を使って設計する
Copyright (C) 2012 WACATE All rights reserved
駄⽬目なテスト設計の流流れ
6
入力(テストベースやテスト要求)
テストケースやテスト手順へ
Copyright (C) 2012 WACATE All rights reserved
駄⽬目なテスト設計の流流れ
7
入力(テストベースやテスト要求)
テストケースやテスト手順へ
仕様とテスト対象の矛盾程度しかチェックされない
(Copy & Paste & Modify法と呼ばれる)
●要求仕様・停止状態でボタンを押したらストップウォッチを開始する
テスト手順 期待される動作
停止状態でボタンを押す ストップウォッチを開始する
Copyright (C) 2012 WACATE All rights reserved
駄⽬目なテスト設計の流流れ2
8
入力(テストベースやテスト要求)
テストケースやテスト手順へ
テスト技法を使った設計
Copyright (C) 2012 WACATE All rights reserved
駄⽬目なテスト設計の流流れ2
9
入力(テストベースやテスト要求)
テストケースやテスト手順へ
テスト技法を使った設計
●要求仕様・麺の固さはかため、普通、柔らかめ・スープは豚骨、味噌、醤油
ペアワイズ
直交表
麺 …
スープ …
結果 …
隠れた仕様や意図を取りのがす重要でない所に注力し、重要な所を見逃すリスク
テストの全体整合の欠落
Copyright (C) 2012 WACATE All rights reserved
良良いテスト設計の基本的な流流れ
10
入力(テストベースやテスト要求)
テストケースやテスト手順へ
発散
整理
テスト設計
Copyright (C) 2012 WACATE All rights reserved
テスト設計のプロセス
1. テスト計画2. テスト分析3. テスト設計4. テスト実装
11
Copyright (C) 2012 WACATE All rights reserved
テスト設計のプロセス
1. テスト計画2. テスト分析3. テスト設計4. テスト実装
12
●テストのスコープや全体像を明らかにするテスト目的の方針やテストのアプローチテストの構成(テストレベル等)やフェーズ
例
Copyright (C) 2012 WACATE All rights reserved
テスト設計のプロセス
1. テスト計画2. テスト分析3. テスト設計4. テスト実装
13
●文字表示 ちらつき 減光
コントラスト 画素欠陥
解像度 …
●品質特性 機能性 信頼性
使用性 効率性
…
テスト対象の分析
テスト目的の分析
関係性の分析
●ユースケース 時間を計測する 時刻を確認する
…
Copyright (C) 2012 WACATE All rights reserved
テスト設計のプロセス
1. テスト計画2. テスト分析3. テスト設計4. テスト実装
14
機能性テスト
ユーザビリティテスト
堅牢性テスト
機能A ○ ○
機能B ○
機能C ○
…
検証方法 テスト設計技法
機能A デシジョンテーブルAll Pair法
機能B
機能C
… 組合わせテスト技法の適用
テスト目的の分析
どの対象にどのようなテストが必要か明らかにする
Copyright (C) 2012 WACATE All rights reserved
テスト設計のプロセス
• テスト設計全体を扱うアプローチや⽅方法論論が既に複数実践されています。• 今回はテーマに近いものをいくつか紹介します。
15
Copyright (C) 2012 WACATE All rights reserved
テスト設計のプロセス
• HAYST法
16
Copyright (C) 2012 WACATE All rights reserved
テスト設計プロセス
• ゆもつよメソッド
17
ソフトウェアテストPRESS Vol.10特集1「今こそ聞きたい テストの上流設計」
湯本 剛
「テスト目的・分析・設計~テスト設計の進め方」湯本 剛http://www.juse.or.jp/software/87/attachs/hd_4.pdf
Copyright (C) 2012 WACATE All rights reserved
テスト設計プロセス
• TAME/マインドマップを活⽤用したテスト設計
18
Copyright (C) 2012 WACATE All rights reserved
テスト設計プロセス
• VSTeP• 智美塾を中⼼心としたテスト設計⽅方法論論
19
「テストアーキテクチャ解説 ~テストアーキテクチャ設計を実践するには~」 智美塾塾長+塾生一同http://www.jasst.jp/symposium/jasst12tokyo/report.html#plan1「テスト観点に着目したテスト開発プロセス(VSTeP)の概要」西 康晴http://jasst.jp/archives/jasst09e/pdf/A7-6.pdf「テスト設計における モデリングのための記法の提案」西 康晴http://jasst.jp/archives/jasst06e/pdf/E2-3.pdf
Copyright (C) 2012 WACATE All rights reserved
組合せテストでのテスト設計の流流れ
20
Copyright (C) 2012 WACATE All rights reserved
組み合わせテストでのテスト設計の流流れ
1. テスト計画2. テスト分析3. テスト設計4. テスト実装
21
• この講義で扱うところ1. 仕様の整理理
• 因⼦子/⽔水準の抽出
2. 組合せ分析と技法の選定3. テスト技法による設計
Copyright (C) 2012 WACATE All rights reserved
組み合わせテストでのテスト設計の流流れ
• 組合せテスト技法の適⽤用1. 仕様の分析/整理理• 因⼦子/⽔水準の抽出
2. 組合せ分析と技法の選定3. テスト技法による設計
22
発散
整理
設計
Copyright (C) 2012 WACATE All rights reserved
組み合わせテストでのテスト設計の流流れ
• 組合せテスト技法の適⽤用1. 仕様の分析/整理理2. 組合せ分析と技法の選定3. テスト技法による設計
23
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理
• テストベースを分析して、テスト対象やテスト⽬目的を明らかにしていきます– 仕様を分析し、必要な情報をピックアップします隠れた仕様や意図も明らかにします– テスト設計がやりやすいように仕様を整理理します
• 今回紹介する⼿手法– 3⾊色ボールペン法– レビュー観点による分析(間/対称/類推/外側)– 同値分割法– マインドマップ
24
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(3⾊色ボールペン法)
• 3⾊色ボールペン法– ドキュメントの読解⽅方法• テストの⼊入出⼒力力や因⼦子・⽔水準をピックアップします• 単純ですが汎⽤用的に使えるテクニックです
– 仕様書で留留意が必要な部分に⾊色分けしながら書き込みを⾏行行って、仕様を読解していきます• ⼤大事なところに線を引く• 思いついたところをメモとして追記する
25
ソフトウェアテストPRESS総集編 Vol.2「三色ボールペンで読む仕様書」(鈴木三紀夫)たまゆら雑記「三色ボールペンで読む仕様書」 http://d.hatena.ne.jp/mkoszk/20110218/
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(3⾊色ボールペン法)
• ⾊色の付け⽅方– デフォルト• ⾚赤:客観的に⾒見見て、最も重要な箇所• ⻘青:客観的に⾒見見て、重要な箇所• 緑:主観的に⾒見見て、気になるところ
– ⾊色の数や使い分けは適宜変更更可能です。
26
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(3⾊色ボールペン法)
• 麺のゆで時間は細麺:120秒、太麺:300秒
• 麺の固さがかため指定なら-‐‑‒10秒、バリかた指定なら-‐‑‒10秒、やわらかめ指定なら+10秒
27
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(3⾊色ボールペン法)
• 麺のゆで時間は細麺:120秒、太麺:300秒
• 麺の固さがかため指定なら-‐‑‒10秒、バリかた指定なら-‐‑‒10秒、やわらかめ指定なら+10秒
28
麺の種類
他の麺の固さは?そもそもメニューは?
例)赤:因子青:水準緑:気になる所
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(レビュー観点による分析)
• テスト設計やレビューの観点を⽤用いた仕様の抽出– フレームワークに基づいて仕様の整理理や抜け漏漏れのピックアップを⾏行行います– Ex)間/対称/類推/外側• 具体例例から他のデータや抜け漏漏れをピックアップ• 「ソフトウェアテスト技法ドリル」秋⼭山浩⼀一– 間:データとデータの間– 対称:反対側のデータ– 類推:似たデータ– 外側:挙げられていないデータ
29
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(レビュー観点による分析)
• 「ゆで時間を100秒から120秒までカウントダウンで計測できる」
30
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(レビュー観点による分析)
• 「ゆで時間を100秒から120秒までカウントダウンで計測できる」– 間:• 「何秒刻みか?少数は?」「100秒や120秒は範囲に含まれるか?」
– 対称:• 「カウントアップは?」「無効値は?(秒数未指定等)」
– 類推:• 「110」「121」
– 外側:• 「100より⼩小さい値」「120秒より⼤大きい値」
31
Copyright (C) 2012 WACATE All rights reserved
因⼦子/⽔水準の抽出(同値分割法)
• 同値分割による⽔水準の抽出– 同値分割法• 「仕様上、コンポーネントやシステムの動作が同じと⾒見見なせる⼊入⼒力力定義域や出⼒力力定義域の部分」– JSTQB ソフトウェアテスト標準⽤用語集(⽇日本語版) Version 2.0.J01
• 同じように扱えるグループに値をグルーピングする• 有効同値クラスと無効同値クラスを区別する– 無効同値クラスは組み合わせテスト設計で活⽤用
32
Copyright (C) 2012 WACATE All rights reserved
因⼦子/⽔水準の抽出(同値分割法)
• 「6歳未満は無料料。6歳以上12歳以下は半額。13歳以上は定額」
33
0 6 12-∞ +∞
ありえない(無効同値クラス)
年齢
因子:年齢に4つのグループ →水準に展開
Copyright (C) 2012 WACATE All rights reserved
参考図書(セッション予習資料料)
34
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(マインドマップ)
• マインドマップ– 思考ツール。放射状にキーワードを広げる– 分析の思考⽀支援、管理理、明⽰示化等に使⽤用します• 他の⼿手法の結果を管理理する• 分析ツールつとして使⽤用する
35
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(マインドマップ)
36
インターフェースの分析
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(マインドマップ)
37
因子・水準の分析
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(マインドマップ)
• 複雑な場合、階層化や分割で整理理していきます
38
メニュー
液晶モニタ
時間表示領域
電池表示領域
非表示領域
ボタン
スタート/ストップ
リセット
メニュー
液晶モニタ
ボタン
液晶モニタ
時間表示領域
電池表示領域
非表示領域
ボタン
スタート/ストップ
リセット
ズームイン/ズームアウト階層化
分割
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(テスト対象・テスト⽬目的の構造化や関連付け)
• 発散したテスト対象やテスト⽬目的を扱いやすい形式・粒粒度度で整理理します– リスト/ツリー/属性付け等で整理理します
• 関連要素を関連づけて、どの対象にどのようなテストが必要か⽬目安を⽴立立てます
39
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(テスト対象・テスト⽬目的の構造化や関連付け)
• テスト対象/インターフェース表– テスト対象を整理理します
40
ユーザインターフェース 時間/タイミング
スタート/ストップボタン
リセットボタン
電源ボタン
時間表示 RTC
input input input output Input
起動 ○
時間計測 ○ ○ ○Doc.2.3.1
○Doc.2.3.2
電源OFF ○ ○ ○
…
テストの入出力
テスト対象機能リスト
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(テスト対象・テスト⽬目的の構造化や関連付け)
• テスト分析マトリクス– テスト対象とテスト⽬目的の関連性を管理理して、テスト設計の全体像を明⽰示化します
41
機能性テスト ユーザビリティテスト
耐久性テスト
…
単機能 状態遷移
起動 ○
時間計測 ○ ○ ○ ○
電源OFF ○ ○ ○
…
テストタイプ
テスト対象機能リスト
• ソフトウェアテストPRESS Vol.10 特集1「今こそ聞きたい テストの上流流設計」湯本 剛
Copyright (C) 2012 WACATE All rights reserved
• スープカレー表– スープカレー⽅方式– 機能観点+4W1H– 「『スープカレー⽅方式』によるシステムテスト分析と設計」TEF北北海道テスト勉強会http://www.jasst.jp/archives/jasst10e/pdf/A5-‐‑‒1.pdf
• FV表– HAYST法– ⽬目的機能+検証⽅方法、テスト技法– 「ソフトウェアテストHAYST法⼊入⾨門 品質と⽣生産性がアップする直交表の使い⽅方」吉澤 正孝/秋⼭山浩⼀一/仙⽯石太郎郎
42
仕様の分析/整理理 (テスト対象・テスト⽬目的の構造化や関連付け)
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理(テスト対象・テスト⽬目的の構造化や関連付け)
43
• FL表(因⼦子⽔水準表)– 因⼦子と⽔水準を管理理します。
• (参考⽂文献) 「詳説FL表」 秋⼭山 浩⼀一– 「Software Testing ManiaX vol.3」(さーくるWACATE)– www.hayst.com/Documents/FL-‐‑‒table.pdf
因子 水準
スープ 豚骨 醤油 味噌 …
麺 かため ふつう
…
Copyright (C) 2012 WACATE All rights reserved
仕様の分析/整理理で⼤大事な事
• 因⼦子/⽔水準をモレなく抽出– 適切切な組合せテストの設計が可能になります(≠テスト実施⼯工数の増加)– 抽出モレは組合せの⽋欠落落に直結します
• テスト設計が容易易になるように仕様を整理理– 全体像を把握可能にします– 細部も理理解可能なように整理理します。分析結果が爆発したら階層化・分割で扱える粒粒度度に整理理します
44
Copyright (C) 2012 WACATE All rights reserved
組み合わせテストの場合
• 組合せテスト技法の適⽤用1. 仕様の分析/整理理2. 組合せ分析と技法の選定3. テスト技法による設計
45
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定
• テスト対象の複雑さや、テストにかけられるリソース・⼯工数は千差万別です• そのため組合せ設計では、しばしば特定のやり⽅方に縛られない柔軟な対応が要求されます。万能なやり⽅方は存在しません。• 今回は⼀一般的な指針を⽰示します。
46
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定
47
抽出・整理した因子/水準
単機能テストの
設計
組合せテストの
設計
有則のテスト
無則のテスト
禁則のテスト単機能テスト
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定
48
抽出・整理した因子/水準
単機能テストの
設計
組合せテストの
設計
有則のテスト
無則のテスト
禁則のテスト単機能テスト
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定(単機能テスト)
• 因⼦子に対する単機能テスト– 抽出した因⼦子毎に単機能テストを作成します– 単機能テスト• 1つの因⼦子に対するテスト• 他の因⼦子はデフォルトや影響の少ない⽔水準を選択
49
因子 水準1 水準2 水準3 …
麺の種類 太麺 細麺
麺の固さ バリかた かため ふつう やわらかめ
スープ 豚骨 味噌 塩
麺の種類のテスト
麺の固さのテスト
スープのテスト
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定(単機能テスト)
• 因⼦子に対する単機能テスト– 全因⼦子に対し⼀一通り⾏行行うのが理理想です– 組合せテストの事前に実施するのが効率率率的
– これらにより、⼿手戻りコストを削減する、組合せテストで組合せバグに注⼒力力できるようなる、といったメリットが得られます
50
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定
51
抽出・整理した因子/水準
単機能テストの
設計
組合せテストの
設計
有則のテスト
無則のテスト
禁則のテスト単機能テスト
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定(組合せテスト)
• 組合せテストでは次の組合せを区別していきます– 有則の組合せ– 無則の組合せ– 禁則の組合せ
52
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(有則の組合せ)
• 有則の組合せ– 有則の組合せを扱えるテスト設計技法を活⽤用してテスト設計を進めます• デシジョンテーブル• 原因結果グラフ• ドメイン分析、等々
53
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(有則の組合せ)
• 有則の組合せ
54
4で割り切れる N Y Y Y
100で割り切れる N N Y Y
400で割り切れる N N N Y
うるうどし N Y N Y
テストケースに展開
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(有則の組合せ)
• 有則の組合せ– 有則の組合せは全網羅羅が理理想です– 有則の組合せ数が爆発した場合、分割や階層化を⾏行行って範囲を調整します
55
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(無則の組合せ)
• 無則の組合せ– 無則は組合せ数が膨⼤大で絞り込みや最適が要求されますそのためにも事前のテスト分析が重要です• ⼀一般的に無則の全網羅羅は⾮非現実的です– 無則の全網羅羅≒組合せ全網羅羅
• 何をテストすべきか、どのようなテストができるか⾊色々な視点から検討していきます。
56
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(無則の組合せ)
• 無則の組合せ分析– 1. プロダクトリスク
– 2. 有則以外も含む因⼦子間の依存関係• 状態やリソースの共有• インターフェースの共有• 処理理の共有→強い依存関係にある因⼦子は重点的に網羅羅
57
リスク
リスクコントロール
ソフトウェアのリスクレベル
重大度 頻度 検知度 総合レベル
A
B
A
ハイリスクと関係する因子は重点的に網羅
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(無則の組合せ)
• 無則の組合せ分析– 3. 類似プロジェクト・統計・標準等の指標
• 指標値に基づいて網羅羅の強度度を検討– 4. 組合せ可能性
58
サーバサイド内製ソフト A社アプリ開発ソフト
単機能テストで検出されるバグ 70 60
2因子間網羅で検出されるバグ 80 70
3因子間網羅で検出されるバグ 90 80
ユースケース 詳細 私用機能
ゆで時間を計測する ・・・ 時刻表示、ストップウォッチ時間計測、リセット
組合せられる可能性の高い因子は重点的に網羅
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(無則の組合せ)
• 無則の組合せ分析– 5. テスト実施⼯工数
– その他• プロジェクト状況• テストしにくさ• 有則/禁則のテスト設計の状態、等々
59
実施コスト
テストケース数
機能A(手動テスト)
機能B(テスト自動化)
実施コストが少ないなら組合せを強化
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(無則の組合せ)
• 無則の組合せテスト設計では、禁則の組合せ、異異常値の⽔水準を除外します• 禁則の組合せ– 組合せがテストされない
• 異異常値– 例例外処理理が発⽣生し、組合せが実⾏行行されない
60
因子 水準
ドリンク有無 なし
ドリンク種類 ビール
スープ 味噌
麺 細麺
禁則関係で実施不能禁則でない組合せもテストされなくなる
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(無則の組合せ)
• 分析に応じて組合せテストを設計– 網羅羅度度・強度度の設定• 因⼦子間網羅羅:単機能網羅羅、2因⼦子網羅羅、3因⼦子網羅羅..• 組合せ網羅羅率率率• ピンポイントの補強や間引き– 特定因⼦子のみ全網羅羅– 複数の⽔水準を1つに統合、等
– テスト設計技法の活⽤用• 直交表– 2因⼦子間網羅羅、3因⼦子以上の網羅羅率率率もある程度度確保
• ペアワイズ– 複雑な禁則や⽔水準も含め、ツールで柔軟に対応可
61
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(禁則の組合せ)
• 禁則の組合せ– 禁則の組合せもテストが必要です– 禁則のテストで確認すること• 組合せられないこと• 組合せても害がないこと
62
因子 水準
ドリンク有無 なし
ドリンク種類 ビール
組み合わせられない事をテストで確認
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(禁則の組合せ)
• 禁則の組合せ– 以下の場合、しばしばテスト対象の設計に問題• ユーザが禁則を組合わせられてしまう• 禁則の組合せが複雑
– 可能であれば開発にフィードバックし、禁則関係を整理理しましょう
63
設計改善してテストするコスト
無理矢理テストをする
コスト
<
Copyright (C) 2012 WACATE All rights reserved
組合せテスト(その他)
• 組合せが爆発した場合– 分割・階層化で調整を図ります• 有則の組合せテスト– 分割した各要素で全網羅羅。要素間の組合せは無則やピンポイントの組合せテスト技法で対応
• 無則の組合せテスト– 分割した各要素でそれぞれ適切切に網羅羅。要素間の組合せは網羅羅度度を緩めたり、ピンポイントで適切切に網羅羅したりして対応
64
Copyright (C) 2012 WACATE All rights reserved
組合せ分析と技法の選定
65
抽出・整理した因子/水準
単機能テストの
設計
組合せテストの
設計
有則のテスト
無則のテスト
禁則のテスト単機能テスト
Copyright (C) 2012 WACATE All rights reserved
最後に
• 適切切な組合せテストの設計には、適切切なテスト計画、テスト分析、テストの上流流設計が⽋欠かせません– いきなり技法を適⽤用するとテストケースの冗⻑⾧長性や抜け漏漏れが発⽣生しやすくなります– 逆にテストの上流流⼯工程を適切切に⾏行行っていれば、どのような組合せがありどのような技法を使うべきか明らかになっていきます。
66