More Related Content
Similar to みんなに役立つ「テスト」を学んでみよう!(20140105版)
Similar to みんなに役立つ「テスト」を学んでみよう!(20140105版) (17)
More from Noriyuki Mizuno
More from Noriyuki Mizuno (20)
みんなに役立つ「テスト」を学んでみよう!(20140105版)
- 7. 良く言われるテストの必要性
JSTQB Foundation Level シラバスより…
1.1.1. ソフトウェアシステムの状況(K1)
ソフトウェアシステムは、ビジネス分野(銀行など)から、一般消費財(自動車など)に至るまで、
社会を構成する要素として必須となっている。ソフトウェアが期待通りに動かなかった経験は
誰もが持っている。ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、
信用の失墜など、いろいろな問題が発生し、時には傷害や死亡事故になることもある。
…
1.1.3. ソフトウェアの開発、保守、運用におけるテストの役割(K2)
システムやドキュメントを厳しく
テストし、システムが稼動する前に欠陥を
摘出して修正するならば、実行環境で問題が
発生するリスクを低減でき、
ソフトウェアシステムの品質向上に効果がある。
また、契約や法律上の適格要件や各業界の
標準に合致していることを証明するため、
ソフトウェアのテストが必要になるケースもある。
http://www.jstqb.jp/syllabus.html
2014/01公開用
みんなに役立つ「テスト」を学んでみよう!
7
- 8. 良く言われるテストの必要性
JSTQB Foundation Level シラバスより…
1.1.1. ソフトウェアシステムの状況(K1)
ソフトウェアシステムは、ビジネス分野(銀行など)から、一般消費財(自動車など)に至るまで、
社会を構成する要素として必須となっている。ソフトウェアが期待通りに動かなかった経験は
誰もが持っている。ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、
信用の失墜など、いろいろな問題が発生し、時には傷害や死亡事故になることもある。
…
1.1.3. ソフトウェアの開発、保守、運用におけるテストの役割(K2)
システムやドキュメントを厳しく
テストし、システムが稼動する前に欠陥を
摘出して修正するならば、実行環境で問題が
発生するリスクを低減でき、
ソフトウェアシステムの品質向上に効果がある。
JSTQBに興味を持った人は
ゆっくり読んでみて下さい。
ひとまず、
「開発に関わる人」を
http://www.jstqb.jp/syllabus.html
中心に考えてみましょう
また、契約や法律上の適格要件や各業界の
標準に合致していることを証明するため、
ソフトウェアのテストが必要になるケースもある。
2014/01公開用
みんなに役立つ「テスト」を学んでみよう!
8
- 68. テストレベル
テストタイプ:例を見てみましょう
テストタイプ
テスト技法
とりあえず、例を見てみましょう。
・Myersのシステムテストカテゴリ ※注:説明は個人的解釈です。
Security Testing
機能テストを意味する(テストレベルのFunction Testと分けている)
ボリュームテスト
非常に大きなデータを扱うためのテスト。
非常に大きな負荷、ストレス(瞬間的なデータ量)をかけるテスト。 ボリュームテストと
ストレステスト
は混同すべきではない。
人間的な要素を取り扱う。 学習や人間的要素は計算機の システム上はまだ確立され
ユーザビリティテスト
ていない。
セキュリティテスト
プライバシーの課題に対しての対処を実施する。
Performance Testing
性能/パフォーマンステスト
答時間、スループット、とある条件における 一定の負荷率などを確認する。
Storage Testing
ストレージテスト
時折、記録媒体における課題が発生することがある。
Configuration Testing
設定
コンフィグレーションテスト
様々な設定による問題の発生が存在する。 それぞれのHWデバイスに対して、 最小、
最大設定は確認すべきである。
Compatibility
conversion Testing
互換性
コンパチビリティテスト
殆どのプログラムは新規ではなく派生で開発される。 既存のシステムから移行するた
めに特別な確認が必要となる。
Installability Testing
インストーラビリティテスト
いくつかのシステムでは、煩雑なインストール手順が存在する…
Reliability Testing
信頼性テスト
プログラムは信頼性について 特別な課題をもつ場合もあるので、 特殊な確認が必要
となる。
Recovery Testing
リカバリーテスト
OSやDB管理システム、遠隔で扱うシステムは、復帰の機能を持つ。 プログラム異常
やHW故障、データのエラーなどに対処する確認が必要となる。
Serviceability Testing
サービスアビリティテスト
保守もしくは有用性の特徴を持つ。これらの側面もテストされるべきである。
Documentation Testing
ドキュメンテーションテスト
システムテストはユーザ向けドキュメントの正しさを確認する。
Procedure Testing
手続きテスト
システムは、人々によって実施される手順を含めるものである。 関係者による手続き、
手順を合わせてテストする必要がある。
Facility Testing
Volume Testing
Stress Testing
Usability Testing
本内容、結構
役立ちますよ♪
※ただ、勝手な解釈
で訳してます…
原典も見てね
原典はこちら: http://www.testdesigners.com/systemtesting.html
2014/01公開用
みんなに役立つ「テスト」を学んでみよう!
68
- 69. テストレベル
テストタイプ:例を見てみましょう
テストタイプ
テスト技法
個人的なライブラリ:
実施したテストや不具合項目を階層的に整理しておくと便利!
機能テストを意味する(テストレベルのFunction Testと分けている)
わざと、意地悪
Facility Testing
人による要因
安全性テスト
無意識
検討方法(メモ)
HW故障
機能テスト
HWの異常、故障による要因
ノイズ、環境
構造テスト/ユーザ提供の状態確認
ボリュームテスト
Volume Testing
安全性テスト(機器及びユーザ)
温度が上がらないエラー
ユーザビリティテスト
ストレステスト
温度上がりすぎのケース
機器性能評価/スペック評価
水が無い、少ない場合の沸騰ボタン押下
取説・シナリオテスト
適切さ
Stress Testing
参考:テストタイプ一覧
沸騰中に蓋を開けた場合の加熱停止
連続テスト
状態×ボタンを押しっぱなしにした場合の振る舞い確認(All Pair)
蓋状態が獲得できない時の起動時処理確認
機能、状態、環境組合せ(無側の確認)
正確性
ユーザビリティテスト
仕様->タイマ×機能テスト
タイミング、状態信頼性テスト
仕様->給湯×機能テスト
機能性
Usability Testing
給湯する
相互運用性
仕様->温度制御×機能テスト
詳細分割(メモ)
98℃
仕様->ロック/解除×機能テスト
90℃
仕様->保温モード×機能テスト
保温する
セキュリティテスト
60℃
Security Testing
セキュリティ
メイン機能、サブ/サポート機能、デバイス機能の3層で検討
モード切替
ボタン押下時の有則組合せ
沸騰させる
アイドル
カルキ抜きを行う
性能/パフォーマンステスト
成熟度
Performance Testing
沸騰
給湯ロックを行う
カルキ抜き
給湯ロックを解除する
ふるまいが目的に適合していること
温度制御
操作
高温
時間を計る
ストレージテスト
信頼性
フォールトレランス
設定/コンフィグレーションテスト
Configuration Testing
Myersの
システムテストカテゴリ
温度を見る
ボタン押下時の有則組合せ
水が空になったことを知る
給湯する
ユーザビリティテスト
ふるまいが目的に適合していること
給湯
給湯停止
水位センサ異常を知る
理解のしやすさ
Installability Testing
ボタン入力の論理判定条件網羅
ロック/解除
操作のしやすさ
状態遷移×構造テストで確認
状態網羅
ボタン入力の論理判定条件網羅
企業イメージへの配慮
保温モード
評価基準
状態遷移×構造テストで確認
状態網羅
操作認識
機能テスト
サブ機能
エラー発生条件の条件網羅
エラー判定
操作学習
主観評価、アンケート
魅力
品質特性(ISO9126)
水位判定
満足度
エキスパートレビュー
水位判定の論理組合せ条件網羅
温度判定
分かりやすさ
Reliability Testing
温度判定のロジック確認、パターンによる妥当性検証
ヒータへの制御出力の妥当性確認
ヒータ制御
方法
想定ユーザテスト
時間挙動
リカバリーテスト
状態遷移×構造テストで確認
状態網羅
タイマ
理解のしやすさ
ユーザと環境に合せる
操作のしやすさ
状態遷移×構造テストで確認
状態網羅
温度異常を知る
見つけやすさ、見易さ
学習のしやすさ
使用性
信頼性テスト
状態遷移×構造テストで確認
状態網羅
水が満水を知る
Compatibility/conversion Testing
インストーラビリティテスト
テスコン'13
テストタイプベース
保温機能
効率性
Recovery Testing
解除ボタン
条件網羅
沸騰ボタン
操作パネル:入力
基本機能
資源の活用度
条件網羅
タイマボタン
各テストフレーム
(ソフトウェア/機器)
沸騰機能
条件網羅
容量
条件網羅
保温設定ボタン
吐水量
安全機能
エラー検知
分析のしやすさ
Serviceability Testing
機器性能評価/スペック評価
タイマ機能
節電タイマ機能
変更のしやすさ
ドキュメンテーションテスト
Documentation Testing
沸騰ランプ
保温ランプ
そ、れ、あ、た、る
狙いどころ
インストールのしやすさ
夜沸騰して朝まで保温
ポンプ
給湯
保温時間
保温性能
温度推移
機器性能評価/スペック評価
範囲
温度制御
置換製
精度
メモ
モード遷移時間
ワンプレートスタイルで分析
状態網羅(遷移表ベース、2スイッチ)
使用環境
外部環境
タイミング変化
静的分析(外部構成)
状態網羅(遷移表ベース、2スイッチ)
保温ボタン
チャタリング想定
状態網羅(遷移表ベース、2スイッチ)
解除ボタン
安全性
割込み操作、タイミング
沸騰行為
エラーの割込みパターン想定
状態網羅(遷移表ベース、2スイッチ)
タイマボタン
競合表
競合表に従った状態、ボタン組合せパターン
状態遷移
ロジック
ロバストネステスト
レスポンス
状態遷移
回復性テスト
H/W性能
競合
信頼性テスト
抜けやすい観点
チャタリング想定
シナリオ(シーン)
ノイズのタイミングへの影響
詳細
状態網羅(遷移表ベース、2スイッチ)
状態網羅(遷移表ベース、2スイッチ)
ロジック
動的分析
仕様適合
セキュリティテスト
状態網羅(遷移表ベース、2スイッチ)
水位メータ
温度制御
タイミング、状態信頼性テスト
アクティブノイズ
状態遷移
構造テスト
環境(電圧、温度、振動・衝撃)
メモ
時系列での検討
シナリオテスト
信頼性
おまえは
今まで設計した
テストの種類を
覚えているのか?
チャタリング想定
ワンプレートスタイルで分析
機能組合せテスト
想定外、数値、起動、終了、割り込み、タイミング
チャタリング想定
意地悪
静的分析(内部構成)
割込み
シナリオベース
参考:HAZOP
沸騰ボタン
機能、状態、環境組合せ(無側の確認)
アクティブノイズ
機能テスト
機能性
仕様/機能
起動、アップデート
使用性
仕様書出図後の仕様変更、ユーザ固有の環境、MWとのIF
テストタイプ一覧
ユーザビリティテスト
水温変化の規定
ロードテスト
効率性
ストレステスト
シナリオ(シーン)
仕様適合(当たり前品質)
ユーザにとっての使用性
仕様/機能
物理特性
完全なテストは不可能
初期テスト
H/W
分かりやすさ
負荷時性能
シナリオ(シーン)
保守性
水質
負荷時使用
テストの原則
要求
テスコン'12@東京
要求
拡張性テスト
データ互換性テスト
振る舞い
H/W
移植性
構成テスト
連続
タイミング変化
テストは条件次第
両立性テスト
量産における品質安定性
負荷時仕様
特性/精度
「バグゼロ」の落とし穴
カバレッジ
構造
状態
パステスト
構造テスト
要求
外観検査
ユースケース
長期使用可能な耐久性
環境
競合
要件を満たすことを保証する(保障)
一般的なテストの必要性
2014/01公開用
保温制御精度
競合
システム、構成ベース
操作
開発プロセス改善の指標となる(改善、予防)
サーミスタ水温検出
CPU
ノイズ
リリース後の品質リスクを見積もる(リスク)
吐水量の確認
連続テスト
連続操作
確認項目
信頼性、異常系
ガイドワード
欠陥やバグを検出する(検出)
条件網羅
給湯口
連続稼動
タイマも使用する
メモリ
汎用観点
(追加予定)
殺虫剤のパラドックス
条件網羅
ブザー
給湯量
沸騰、保温の繰り返し
※ゆもつよメソッドより
欠陥の偏在
条件網羅
サーミスタ
デバイス:出力
想定シーン
水を補充しながら連続操作
移植性
テストは欠陥があることしか示せない
条件網羅
第n水位センサ
コンビニ環境
共存力
メモリがあふれた時、ハード的なエラー
条件網羅
満水センサ
デバイス:入力
構造テスト/ユーザ提供の状態確認
タイマ
テストシナリオ
繰り返しで使用される環境を活用
家庭環境
外側、例外、間、対象、類推
無し、増加、減少、他に、一部、
逆、異なる、早い、遅い、前、後
条件網羅
蓋センサ
ロックON時
順応性
条件網羅
条件網羅
水位メータ
ロックOFF時
リカバリ
条件網羅
温度/モード表示窓
音声、ブザー通知
状態網羅
リトライ(成功)、再接続(成功)、 規制、
再送、未接続でHHH、 未契約でGGG、
契約外、無応答
条件網羅
操作パネル:出力
デバイス機能
表示
LED表示
テストのしやすさ
異常系
条件網羅
ロックランプ
液晶表示
Procedure Testing
エラー、異常、NG、例外、XX失敗、
リトライオーバー、 タイムアウト、不正、Reject、
状態不一致、障害、 同期はずれ、 想定外/未知
条件網羅
タイマ残り時間表示枠
各テストフレーム
(システム/ユーザ)
便利機能
カルキ抜き
保守性
安定性
手続きテスト
条件網羅
給湯ボタン
ロック機能
サービスアビリティテスト
節約
ミルク
メイン機能
水位を確認する
Storage Testing
復元力
互換性/コンパチビリティテスト
各モード保温
タイマ使用を止める
シナリオ(シーン)
高温層を用いた加速確認
みんなに役立つ「テスト」を学んでみよう!
ロジック
ポットのシステム
69
- 102. テスト技法:無則の組合せ検討技法(直交表、All Pair)
無則の組合せ及び直交表、All Pairとは?
・三色ボールペン法
・同値分割
・境界値分析
・デシジョンテーブル
・CFD/CEG
・直交表、All Pair法
・状態遷移図/表
「関係ない」と思っていても、複数の機能間で組合せの問題が
(1Mラインで16件ほど)発生する可能性があるとのことです。
組合せパターンを「意味ある削減をしつつ、網羅する」技法です。
※注意:安易にパターンを減らすことが出来る技術ではありません!
ラーメンを例とすると…
最初は直交表とAll Pairは
「ほぼ同じ」と考えても
OKっす。
こちらのお勧めツールは
「PICTMaster」
PICTMaster:
2014/01公開用
麺太さ
:太麺、細麺
麺かたさ :ハリガネ、バリカタ、カタ、普通、やわ
スープ味 :塩、しょうゆ、みそ、豚骨、
こってり、さっぱり、こっさり
スープ濃さ :カラメ、ふつう
チャーシュー:チャーシューなし、
チャーシュー普通、チャーシュー多め
ネギ
:ネギ無し、ネギふつう、ネギ多め
アブラ
:アブラ有り、無し
ニンニク :ニンニク有り、無し
野菜
:野菜なし、野菜少なめ、野菜ふつう、
野菜マシ、野菜マシマシ
情熱
:抜けません!
http://sourceforge.jp/projects/pictmaster/
みんなに役立つ「テスト」を学んでみよう!
102
- 105. テスト技法:無則の組合せとの比較を考えてみよう!
・三色ボールペン法
・同値分割
・境界値分析
・デシジョンテーブル
・CFD/CEG
・直交表、All Pair法
・状態遷移図/表
【★注意!!! ★ 】
無則の組合せで何でもできる!と思ってしまう
「まとめてやっちまえ症候群」があるようですが、
無則の組合せで実施すると…?
以下の傾向、ありますか?
1.単体テストを無則で
まとめてやっちまえ!
2.有則のテストも
まとめてやっちまえ!
Powered
2014/01公開用
パラメータA、B、Cの関連性がある場合…
by drawCFD
A
B
C
D
E
A-2 B-2 C-1 D-1 …
A-1 B-1 C-2 D-2
A-2 B-1 C-1 D-1
A-1 B-2 C-2 D-2
A-2 B-1 C-2 D-2
A-1 B-2 C-1 D-1
A-1 B-2 C-2 D-2
A-2 B-1 C-2 D-1
A-2 B-2 C-1 D-1
A-1 B-2 C-1 D-2
A-2 B-1 C-1 D-2
A-2 B-2 C-1 D-1
A-1 B-1 C-1 D-1
A-1 B-2 C-1
みんなに役立つ「テスト」を学んでみよう!D-2
105
- 106. テスト技法:無則の組合せとの比較を考えてみよう!
・三色ボールペン法
・同値分割
・境界値分析
・デシジョンテーブル
・CFD/CEG
・直交表、All Pair法
・状態遷移図/表
【★注意!!! ★ 】
無則の組合せで何でもできる!と思ってしまう
「まとめてやっちまえ症候群」があるようですが、
無則の組合せで実施すると…?
以下の傾向、ありますか?
1.単体テストを無則で
まとめてやっちまえ!
2.有則のテストも
まとめてやっちまえ!
Powered
2014/01公開用
by
CFDから作成したDTと比較してみると?
※縦横逆なので注意
A
B
C
D
E
A-2 B-2 C-1 D-1 …
A-1 B-1 C-2 D-2
A-2 B-1 C-1 D-1
A-1 B-2 C-2 D-2
A-2 B-1 C-2 D-2
A-1 B-2 C-1 D-1
A-1 B-2 C-2 D-2
A-2 B-1 C-2 D-1
A-2 B-2 C-1 D-1
A-1 B-2 C-1 D-2
A-2 B-1 C-1 D-2
A-2 B-2 C-1 D-1
A-1 B-1 C-1 D-1
drawCFD
A-1 B-2 C-1
組合せ(A-2/B-2/C-2)の抜け!
みんなに役立つ「テスト」を学んでみよう!D-2
106
- 115. 参考文献シリーズ
JSTQB
書籍:ソフトウェアテストの基礎:ISTQBシラバス準拠(ドロシー・グラハム他 BNN新社)
Web:JSTQBシラバス、用語集 http://jstqb.jp/syllabus.html
テスト技法関連(全般)
書籍:ソフトウェアテスト技法ドリル―テスト設計の考え方と実際(秋山 浩一氏 日科技連出版社)
書籍:はじめて学ぶソフトウェアのテスト技法(リー・コープランド 日経BP社)
テスト技法関連(原因結果グラフ、CEGTest)
Web:CEGTest - 原因結果グラフからテスト条件を作成するツール http://softest.cocolog-nifty.com/labo/CEGTest/
Web:ソフトウェアテストの勉強室 - http://softest.cocolog-nifty.com/blog/cegtest.html
三色ボールペン法
書籍:ソフトウェアテストPRESS Vol.2(技術評論社)
Web:たまゆら雑記 三色ボールペンで読む仕様書(1) http://d.hatena.ne.jp/mkoszk/20110218/p1
テスト戦略/テストプロセス/テスト全体
書籍:マインドマップから始めるソフトウェアテスト(池田 暁氏、鈴木 三紀夫氏 技術評論社)
書籍:体系的ソフトウェアテスト入門(Rick Craig、Stefan P Jaskiel 日経BP出版センター)
ゆもつよメソッド(テストコンサルタントで有名な湯本 剛さんのテスト手法)
書籍:ソフトウェアテストPRESS Vol.10(技術評論社)
※ソフトウェアテストPRESS は「総集編」にてVol1~10の資料が全て含まれており非常にお得です。
2014/01公開用
みんなに役立つ「テスト」を学んでみよう!
115
- 116. 参考文献シリーズ
NGT / VSTeP
Web:JaSST’06東京 テスト設計におけるモデリングのための記法の提案 http://jasst.jp/archives/jasst06e/pdf/E2-3.pdf
Web:JaSST’09東京 テスト観点に着目したテスト開発プロセス(VSTeP)の概要
http://www.jasst.jp/archives/jasst09e/pdf/A7-6.pdf
テストアーキテクチャ
Web:JaSST’11東京 魁!!智美塾 テストアーキテクチャという考え方の提案 http://jasst.jp/archives/jasst11e.html#project2
※JaSSTのサイトには、過去の多数の事例や情報がありますのでお勧めです!
テスト設計コンテスト
Web:テスト設計コンテスト@aster http://aster.or.jp/business/contest.html
ISO9126 ソフトウェアの品質特性モデル
Web:オブジェクトの広場 機能外要求とISO9126
http://www.ogis-ri.co.jp/otc/hiroba/technical/JavaPress_ISO9126/index.html
IEEE829 IEEE Standard for Software and System Test Documantation
書籍:知識ゼロから学ぶ ソフトウェアテスト(高橋 寿一氏 翔泳社)
書籍:現場の仕事がバリバリ進む ソフトウェアテスト手法(高橋 寿一氏、湯本 剛氏 技術評論社)
いろいろ参考
Web:電気通信大学 にしさんの研究室 http://qualab.jp
Web:kyon_mm(きょんくん)のサイト http://kyon-mm.bitbucket.org/blog/html/index.html
2014/01公開用
みんなに役立つ「テスト」を学んでみよう!
116