20101130 南東京iphone開発3

17
テスト技法を覚えてみよう! 南東京iPhone開発者勉強会 20101130@ニフティ

Upload: masaki-kase

Post on 12-Jul-2015

1.638 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 20101130 南東京iphone開発3

テスト技法を覚えてみよう!南東京iPhone開発者勉強会

2010年11月30日 @ニフティ

Page 2: 20101130 南東京iphone開発3

自己紹介

南東京iPhone開発者勉強会2

名前 加瀬 正樹

所属 ニフティ株式会社http://www.nifty.co.jp/

会員向けのメールサービスのシステム開発や迷惑メール対策への取り組み

活動 ブログhttp://softest.cocolog-nifty.com/blog/

Twitter

http://twitter.com/softest

勉強会「ソフトウェアテスト技法ドリル」勉強会第1回 11/2

第2回 12/3

第3回 来年2月予定

Page 3: 20101130 南東京iphone開発3

はじめに

南東京iPhone開発者勉強会3

テストって?

テスト技法を知ろう

同値分割・境界値テスト

デシジョンテーブル

HAYST法・直交表

状態遷移テスト

注意しておきたいこと

もっとテスト技法を学ぶには

Page 4: 20101130 南東京iphone開発3

テストって?

南東京iPhone開発者勉強会4

ソフトウェア開発の中でバグを見つける活動全般

さまざまな管理(構成、リスク、バグ、etc)

レビュー(仕様、設計、コード、テストケース、etc)

テスト

今日はココのお話

よりよいテストとは?

多くのバグを見つけられる(効果的なテスト)

少ない時間でバグ見つけられる(効率的なテスト)

範囲を漏れなくテストする(網羅的なテスト)

テスト技法は、よりよいテストを実施するための道具

Page 5: 20101130 南東京iphone開発3

テスト技法を知ろう(1/4)

南東京iPhone開発者勉強会5

同値分割

同じ出力・結果をもたらす入力値について、ひとまとまりと考えて代表値だけをテストする技法

必要なテストを実施し、無駄なテストはしない

例) 設定できるパスワードは英数字5文字以上16文字以下とする

パスワード文字数の範囲を数直線で表すと、

4 5 16 170

設定可能 エラーエラーテスト不可

-1

Page 6: 20101130 南東京iphone開発3

テスト技法を知ろう(1/4)

南東京iPhone開発者勉強会6

境界値テスト

同値分割されたグループ(同値クラス)の端っこ・境界をピンポイントでテストする技法

端っこはバグが多いことを利用

例) 設定できるパスワードは英数字5文字以上16文字以下とする

パスワード文字数の範囲を数直線で表すと、

4 5 16 170

設定可能 エラーエラーテスト不可

-1

Page 7: 20101130 南東京iphone開発3

テスト技法を知ろう(1/4)

南東京iPhone開発者勉強会7

同値分割・境界値テストは本能的に使っている

見方を変えると違う同値分割・境界値が見えてくる

英字、数字の文字数

操作初回、2回目、・・・

etc

無効値はひとつずつテストする

無効値を組み合わせるとバグを見落とすかもしれない

パスワード文字列が“#123”(4文字で記号を含む)の場合、文字数エラーか文字種別エラーかわからない

わからなくなったら絵・線を描こう

ベン図や数直線で整理しよう

図にすることで仕様バグが見つかるかもしれない

Page 8: 20101130 南東京iphone開発3

テスト技法を知ろう(2/4)

南東京iPhone開発者勉強会8

デシジョンテーブル

起こりうる入力値の組合せと、その出力・結果をまとめた対応表で、論理関係をテストするためのツール

もともとはビジネスルールを整理したり、プログラム設計をするためのツールでもある

例) 動物園の入園料・6歳以下で地元住民なら割引・65歳以上も割引

割引 #

1

#

2

#

3

#

4

6歳以下 Y Y N N

65歳以上 N N Y N

地元住民 Y N - -

割引 ○ ○

Page 9: 20101130 南東京iphone開発3

テスト技法を知ろう(2/4)

南東京iPhone開発者勉強会9

テーブル化で仕様を整理する

論理関係の矛盾や考慮漏れなどを見つけ、コーディング前にバグを潰す目的もある

文章や箇条書きの仕様をよりわかりやすく表現できる

複雑な論理関係には CEG や CFD

CEG(原因結果グラフ)とは、論理関係をブールグラフに変換して可視化し、組合せを自動生成

CFD(Cause Flow Diagram)とは、処理の流れを図式化して、デシジョンテーブルを作成

原因結果グラフ(CEG) 流れ図(CFD)

Page 10: 20101130 南東京iphone開発3

テスト技法を知ろう(3/4)

南東京iPhone開発者勉強会10

HAYST法・直交表

直交表の特徴を活かして、2因子間組合せを「まんべんなく」に網羅するようにテストする技法

バグが2因子間組合せまでに集中していることに着目

例) メールソフト受信テスト・Becky!/Thunderbird

・POP3/IMAP4

・Proxy設定あり/なし・SSLあり/なし

ソフト プロトコル

Proxy SSL

1 Becky! POP3 あり あり

2 TB IMAP4 なし なし

3 TB IMAP4 あり あり

4 Becky! POP3 なし なし

5 TB POP3 なし あり

6 Becky! IMAP4 あり なし

7 Becky! IMAP4 なし あり

8 TB POP3 あり なし全組合せ=24=16通り2因子間網羅=8通り

Page 11: 20101130 南東京iphone開発3

テスト技法を知ろう(3/4)

南東京iPhone開発者勉強会11

HAYST法の FV表と FL表

HAYST法は、秋山浩一氏(富士ゼロックスAT)が考案したテスト設計プロセス

FV表(Function Verification)による検証対象の分析

FL表(Factor Level)による因子・水準の抽出

直交表への割付

AllPair法という技法もある

直交表と同様、2因子間網羅を実現

一般的に直交表よりも表を小さくできる

フリーソフト「PICT」 http://msdn.microsoft.com/en-us/testing/bb980925.aspx

Page 12: 20101130 南東京iphone開発3

テスト技法を知ろう(4/4)

南東京iPhone開発者勉強会12

状態遷移テスト

仕様から状態とイベントを抜き出し、状態遷移図・状態遷移表を作成してテスト設計する技法

例) ストップウォッチ・右ボタンで計測スタート・計測中に右ボタンを押すと停止・停止中に右ボタンを押すと再開・停止で左ボタンを押すとリセット

リセット 計測中 停止中

右 右

右ボタン 左ボタン

リセット 計測中 N/A

計測中 停止中 N/A

停止中 計測中 リセット

状態遷移図

状態遷移表

Page 13: 20101130 南東京iphone開発3

テスト技法を知ろう(4/4)

南東京iPhone開発者勉強会13

遷移バグ、仕様バグを見つけよう

状態遷移表の N/A もテストして、予期しない遷移バグを見つける

図や表に整理することで、曖昧な仕様や仕様バグを見つける

カバレッジ基準

ノード網羅(状態網羅)

リンク網羅(0スイッチカバレッジ)

1スイッチカバレッジ

状態遷移表を行列とみなして、行列の積を計算

対角線上(ループ)にバグが潜む

Page 14: 20101130 南東京iphone開発3

(参考)テスト技法ポジショニングマップ

南東京iPhone開発者勉強会14

出典: http://hayst.com/positioning.aspx

Page 15: 20101130 南東京iphone開発3

注意しておきたいこと

南東京iPhone開発者勉強会15

テスト技法は万能ではない

それぞれのテスト技法には得手・不得手がある

「武器」にはなるが、「銀の弾丸」ではない

テスト技法にとらわれない

不安だったら、テストを追加してみる

同僚に見てもらう

品質とはユーザへ提供する価値

バグがなくても使いやすくなければならない

バグがなくても運用しやすくなければならない

Page 16: 20101130 南東京iphone開発3

もっとテストについて学ぶには

南東京iPhone開発者勉強会16

WACATE http://wacate.jp/

ソフトウェアテストワークショップ

若手テストエンジニア向けの1泊2日勉強会合宿

でも参加者の1/3は開発エンジニア

TEF http://www.swtest.jp/wiki/index.php?swtest.jp/wiki/forum

ソフトウェアテスト技術者交流会

1000名以上が参加するMLと不定期勉強会

JaSST http://www.jasst.jp/

国内最大のソフトウェアテストシンポジウム

全国6か所(東京,関西,北海道,東海,九州,四国)

次回はJaSST11東京(1/25,26 @ 目黒雅叙園)

Page 17: 20101130 南東京iphone開発3

南東京iPhone開発者勉強会17

ご清聴ありがとうございました