Successfully reported this slideshow.
Your SlideShare is downloading. ×

20101130 南東京iphone開発3

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 17 Ad

More Related Content

Viewers also liked (20)

Similar to 20101130 南東京iphone開発3 (20)

Advertisement

Recently uploaded (20)

20101130 南東京iphone開発3

  1. 1. テスト技法を覚えてみよう! 南東京iPhone開発者勉強会 2010年11月30日 @ニフティ
  2. 2. 自己紹介 南東京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月予定
  3. 3. はじめに 南東京iPhone開発者勉強会3  テストって?  テスト技法を知ろう  同値分割・境界値テスト  デシジョンテーブル  HAYST法・直交表  状態遷移テスト  注意しておきたいこと  もっとテスト技法を学ぶには
  4. 4. テストって? 南東京iPhone開発者勉強会4  ソフトウェア開発の中でバグを見つける活動全般  さまざまな管理(構成、リスク、バグ、etc)  レビュー(仕様、設計、コード、テストケース、etc)  テスト  今日はココのお話  よりよいテストとは?  多くのバグを見つけられる(効果的なテスト)  少ない時間でバグ見つけられる(効率的なテスト)  範囲を漏れなくテストする(網羅的なテスト) テスト技法は、よりよいテストを実施するため の道具
  5. 5. テスト技法を知ろう(1/4) 南東京iPhone開発者勉強会5  同値分割  同じ出力・結果をもたらす入力値について、ひとまとま りと考えて代表値だけをテストする技法  必要なテストを実施し、無駄なテストはしない 例) 設定できるパスワードは英数字5文字以上16文字以下とする パスワード文字数の範囲を数直線で表すと、 4 5 16 170 設定可能 エラーエラーテスト 不可 -1
  6. 6. テスト技法を知ろう(1/4) 南東京iPhone開発者勉強会6  境界値テスト  同値分割されたグループ(同値クラス)の端っこ・境界 をピンポイントでテストする技法  端っこはバグが多いことを利用 例) 設定できるパスワードは英数字5文字以上16文字以下とする パスワード文字数の範囲を数直線で表すと、 4 5 16 170 設定可能 エラーエラーテスト 不可 -1
  7. 7. テスト技法を知ろう(1/4) 南東京iPhone開発者勉強会7  同値分割・境界値テストは本能的に使っている  見方を変えると違う同値分割・境界値が見えてくる  英字、数字の文字数  操作初回、2回目、・・・  etc  無効値はひとつずつテストする  無効値を組み合わせるとバグを見落とすかもしれない  パスワード文字列が“#123”(4文字で記号を含む)の場合、文 字数エラーか文字種別エラーかわからない  わからなくなったら絵・線を描こう  ベン図や数直線で整理しよう  図にすることで仕様バグが見つかるかもしれない
  8. 8. テスト技法を知ろう(2/4) 南東京iPhone開発者勉強会8  デシジョンテーブル  起こりうる入力値の組合せと、その出力・結果をまとめ た対応表で、論理関係をテストするためのツール  もともとはビジネスルールを整理したり、プログラム設 計をするためのツールでもある 例) 動物園の入園料 ・6歳以下で地元住民なら割引 ・65歳以上も割引 割引 # 1 # 2 # 3 # 4 6歳以下 Y Y N N 65歳以上 N N Y N 地元住民 Y N - - 割引 ○ ○
  9. 9. テスト技法を知ろう(2/4) 南東京iPhone開発者勉強会9  テーブル化で仕様を整理する  論理関係の矛盾や考慮漏れなどを見つけ、コーディング 前にバグを潰す目的もある  文章や箇条書きの仕様をよりわかりやすく表現できる  複雑な論理関係には CEG や CFD  CEG(原因結果グラフ)とは、論理関係をブールグラフ に変換して可視化し、組合せを自動生成  CFD(Cause Flow Diagram)とは、処理の流れを図式化 して、デシジョンテーブルを作成 原因結果グラフ(CEG) 流れ図(CFD)
  10. 10. テスト技法を知ろう(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通り
  11. 11. テスト技法を知ろう(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
  12. 12. テスト技法を知ろう(4/4) 南東京iPhone開発者勉強会12  状態遷移テスト  仕様から状態とイベントを抜き出し、状態遷移図・状態 遷移表を作成してテスト設計する技法 例) ストップウォッチ ・右ボタンで計測スタート ・計測中に右ボタンを押すと停止 ・停止中に右ボタンを押すと再開 ・停止で左ボタンを押すとリセット リセット 計測中 停止中 右 右 右 左 右ボタン 左ボタン リセット 計測中 N/A 計測中 停止中 N/A 停止中 計測中 リセット 状態遷移図 状態遷移表
  13. 13. テスト技法を知ろう(4/4) 南東京iPhone開発者勉強会13  遷移バグ、仕様バグを見つけよう  状態遷移表の N/A もテストして、予期しない遷移バグを 見つける  図や表に整理することで、曖昧な仕様や仕様バグを見つ ける  カバレッジ基準  ノード網羅(状態網羅)  リンク網羅(0スイッチカバレッジ)  1スイッチカバレッジ  状態遷移表を行列とみなして、行列の積を計算  対角線上(ループ)にバグが潜む
  14. 14. (参考)テスト技法ポジショニングマップ 南東京iPhone開発者勉強会14 出典: http://hayst.com/positioning.aspx
  15. 15. 注意しておきたいこと 南東京iPhone開発者勉強会15  テスト技法は万能ではない  それぞれのテスト技法には得手・不得手がある  「武器」にはなるが、「銀の弾丸」ではない  テスト技法にとらわれない  不安だったら、テストを追加してみる  同僚に見てもらう  品質とはユーザへ提供する価値  バグがなくても使いやすくなければならない  バグがなくても運用しやすくなければならない
  16. 16. もっとテストについて学ぶには 南東京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 @ 目黒雅叙園)
  17. 17. 南東京iPhone開発者勉強会17 ご清聴ありがとうございました

Editor's Notes

  • 赤は無効同値クラス、青は有効同値クラス
  • 文字数でいえば、未入力、4文字、5文字、16文字、17文字をテストする。
  • 実はみんな同値分割と境界値テストは無意識的に使っているはず。もっと知ることでもっとうまくなる。基礎技法。
  • 3つの条件なので全8通りあるが、4通りのテストをすればよい

×