Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WACATE2016 冬 組み合わせテスト

774 views

Published on

WACATE2016 冬で講演した組み合わせテストセッションの資料です

Published in: Software
  • Be the first to comment

WACATE2016 冬 組み合わせテスト

  1. 1. 組み合わせテスト WACATE2016 冬 2016/12/18 WACATE実行委員 藤原 洋平 技法セッション
  2. 2. テスト技法のセッションです! そもそも、テスト技法とは? JSTQB 曰く: テストケースを作成したり 選択したりするための技法。
  3. 3. テスト技法のセッションです! 良いテスト(ケース群)を 作るためのテクニック より少ないテストケース数で より多くの不具合を見つけられ テスト対象を網羅
  4. 4. テスト技法のセッションです! いくつかの技法をご紹介します その技法の考え方が分かる、 使えるようになる、 今回は基本編!玄奥はご自身で!
  5. 5. 組み合わせテスト
  6. 6. 「組み合わせテスト」 名前の通り「組み合わせ」が 発生する際に実行するテスト テスト条件(パラメータ) テスト環境 テスト対象...
  7. 7. 組み合わせの例 以下の場合 ルー ごはん 付け合せ
  8. 8. 組み合わせの例 3 × 3 × 22 =36通り
  9. 9. ちょっと種類を追加して… ルー  [辛さ 1~10 を追加] ごはん 付け合せ・トッピング
  10. 10. 組み合わせの例 5×10×3×210 =153,600 通り
  11. 11. 組み合わせによる「爆発」 組み合わせるものにより、 結果が膨大な数になることがある 全てのテスト実施は 「不可能」な場合もある
  12. 12. 組み合わせテスト技法 テストで確認したいポイントは抑えつつ、 でも、テストケース数を削減したい SQuBOK 曰く 組み合わせの技法とは、テスト条件 (パラメータ)の組み合わせを 決定するための技法である
  13. 13. 用語の説明 と、ミニワーク
  14. 14. 用語説明 : 因子と水準 因子 水準 ルー マホロバ、キーマ、おばあちゃん… ごはん 白米、ターメリック、ナン 付け合わせ 福神漬け、らっきょう、卵、チーズ… 因子 水準 OS Windows7, Windows10, Mac OS X… ブラウザ IE11, Edge, Chrome, FireFox, Safari アプリver β、1.0、1.1、2.0…
  15. 15. 用語説明 : 因子と水準 因子 水準 ルー マホロバ、キーマ、おばあちゃん… ごはん 白米、ターメリック、ナン 付け合わせ 福神漬け、らっきょう、卵、チーズ… 因子 水準 OS Windows7, Windows10, Mac OS X… ブラウザ IE11, Edge, Chrome, FireFox, Safari アプリver β、1.0、1.1、2.0… 入力条件、 組み合わせの要素 因子のとりえる パターンや値
  16. 16. 用語説明 : 有則と無則 有則 因子が動作や結果に影響を与える 関係を持っている 仕様上の関わりがある 無則 お互いの因子および水準が影響しない 「直交」している
  17. 17. 用語説明 : 有則 + =シーフードカレー + =チーズカレー + =カツカレー
  18. 18. 用語説明 : 無則 + =チーズカレー + どんなドリンクでも チーズカレー
  19. 19. 用語説明 : 禁則 禁則 実現不可能な因子の組み合わせ 仕様上ありえない =組み合わせることが出来ない
  20. 20. 用語説明 : 禁則 ライスは以下から選べます 白米 サフラン ターメリック + サフラン = ??
  21. 21. ワーク解答例 有則の関係 会員情報・配送オプション・手数料 → 合計金額に影響する 無則の関係 発送方法・梱包方法 → 合計金額には影響がない
  22. 22. ワーク解答例 禁則の関係 冷凍冷蔵食品の注文・梱包 → 冷凍冷蔵食品は梱包不可 ギフト設定にも、可不可がありそう…
  23. 23. ここまでのまとめ 用語:因子・水準 有則・無則・禁則
  24. 24. 組み合わせテストでよく使われる技法 デシジョンテーブル 原因結果グラフ CFD法 ドメイン分析 ペアワイズ(オールペア法) 直交表 クラシフィケーションツリー法 etc... 有則の関係の組み合わせを 効率的・網羅的に探したい 無則の組み合わせが 存在するとき
  25. 25. デシジョンテーブル
  26. 26. デシジョンテーブル 論理関係を持った複数条件を 表形式で整理するツール 自然言語よりロジックが明確になる
  27. 27. デシジョンテーブル まずはこちらをご覧ください(例題) [TOARU映画館 料金一覧] 一般料金 1800円 学生(大・専) 1,500円 中・高生 1000円 小人(3才~小学生)1000円。 60才以上 1,100円。 ※学生、中・高生は学生証の提示が必要。 ※3D作品は一律プラス 400円。メガネ持参 100円引き
  28. 28. デシジョンテーブル詳細 学生(大・専) N N N Y Y Y Y N N N N N N Y 中・高校生 N N N N N N N Y Y Y N N N N 小人 N N N N N N N N N N Y N N N 60才以上 N N N N N N N N N N ・ ・ ・ ・ N Y Y Y 学生証提示 N N N N Y Y Y N Y Y N N N Y 3D作品 N Y Y N N Y Y N N Y N N Y Y 3Dメガネ持参 N N Y N N N Y N N N N N Y Y 1,800円 X X X X X 1,500円 X X X 1,100円 X X X 1,000円 X X ・ ・ ・ ・ X +400円 X X X X X X X -100円 X X X X
  29. 29. デシジョンテーブル詳細 学生(大・専) N N N Y Y Y Y N N N N N N Y 中・高校生 N N N N N N N Y Y Y N N N N 小人 N N N N N N N N N N Y N N N 60才以上 N N N N N N N N N N ・ ・ ・ ・ N Y Y Y 学生証提示 N N N N Y Y Y N Y Y N N N Y 3D作品 N Y Y N N Y Y N N Y N N Y Y 3Dメガネ持参 N N Y N N N Y N N N N N Y Y 1,800円 X X X X X 1,500円 X X X 1,100円 X X X 1,000円 X X ・ ・ ・ ・ X +400円 X X X X X X X -100円 X X X X 「条件」を記載 Y は条件に当てはまるもの Nは条件に当てはまらないもの
  30. 30. デシジョンテーブル詳細 学生(大・専) N N N Y Y Y Y N N N N N N Y 中・高校生 N N N N N N N Y Y Y N N N N 小人 N N N N N N N N N N Y N N N 60才以上 N N N N N N N N N N ・ ・ ・ ・ N Y Y Y 学生証提示 N N N N Y Y Y N Y Y N N N Y 3D作品 N Y Y N N Y Y N N Y N N Y Y 3Dメガネ持参 N N Y N N N Y N N N N N Y Y 1,800円 X X X X X 1,500円 X X X 1,100円 X X X 1,000円 X X ・ ・ ・ ・ X +400円 X X X X X X X -100円 X X X X 「動作」を記載 実行されるものを X 組み合わせにより変化
  31. 31. 個人ワーク 作成手順 条件、動作を洗い出す 条件を上部、動作を下部の行に記載 条件の組み合わせをY/Nで列に記載 組み合わせ結果の動作Xを記載
  32. 32. ワークをやってみて… 「学生」と「中・高生」は 同時に Y にできない? 3D映画以外でメガネ持参?
  33. 33. デシジョンテーブル詳細 学生(大・専) Y Y Y Y Y N N 中・高校生 N Y Y Y Y Y Y 学生証提示 … Y N Y Y Y N Y … 3D作品 N N N Y Y N N 3Dメガネ持参 N N N N Y N N 1,800円 N/A N/A N/A N/A X 1,500円 X N/A N/A N/A N/A 1,000円 N/A N/A N/A N/A X … +400円 N/A N/A N/A N/A -100円 N/A N/A N/A N/A あり得ない組み合わせが 出てきたときは…
  34. 34. デシジョンテーブル詳細 学生(大・専) Y Y Y Y Y N N 中・高校生 N Y Y Y Y Y Y 学生証提示 … Y - - - - N Y … 3D作品 N - - - - N N 3Dメガネ持参 N - - - - N N 1,800円 N/A N/A N/A N/A X 1,500円 X N/A N/A N/A N/A 1,000円 N/A N/A N/A N/A X … +400円 N/A N/A N/A N/A -100円 N/A N/A N/A N/A
  35. 35. デシジョンテーブル詳細 学生(大・専) Y Y N N 中・高校生 N Y Y Y 学生証提示 … Y - N Y … 3D作品 N - N N 3Dメガネ持参 N - N N 1,800円 N/A X 1,500円 X N/A 1,000円 N/A X … +400円 N/A -100円 N/A
  36. 36. デシジョンテーブル詳細 学生(大・専) Y Y N N N 中・高校生 N Y Y Y Y 学生証提示 … Y - N Y Y … 3D作品 N - N N N 3Dメガネ持参 N - N N Y 1,800円 N/A X 1,500円 X N/A 1,000円 N/A X X … +400円 N/A ? -100円 N/A ?
  37. 37. デシジョンテーブル詳細 学生(大・専) Y Y N N N N 中・高校生 N Y Y Y Y Y 学生証提示 … Y - N Y Y Y … 3D作品 N - N N N Y 3Dメガネ持参 - - - - - Y 1,800円 N/A X 1,500円 X N/A 1,000円 N/A X X X … +400円 N/A X -100円 N/A X 案1:3D作品 N の時点で - にする
  38. 38. デシジョンテーブル詳細 学生(大・専) Y Y N N N N 中・高校生 N Y Y Y Y Y 学生証提示 … Y - N Y Y Y … 3D作品(メガネ有 N - N Y N Y 3D作品(メガネ無 N - N N Y Y 1,800円 N/A X 1,500円 X N/A 1,000円 N/A X X X … +400円 N/A X N/A +300円 N/A X N/A 案2:条件を明確にする
  39. 39. デシジョンテーブル詳細 金額(=動作)をまとめてもOK 2,200円 2,100円 1,900円 1,800円 1,500円 1,400円 1,300円 1,000円 一般料金の 1,800円と 中・高生の 1,500円 + 3Dメガネ有 300円の 区別がつかない 問題ないか、確認 (= 何を確認したいのか)
  40. 40. デシジョンテーブル詳細 学生(大・専) N N N Y Y Y Y Y Y Y N N N N N N 中・高校生 N N N N N N N N N Y Y Y Y Y Y Y 学生証提示 - - - N N N Y Y Y - N N N Y Y Y 3D作品 N Y Y N Y Y N Y Y - N Y Y N Y Y 3Dメガネ持参 - N Y - N Y - N Y - - N Y - N Y 1,800円 X X X X X X N/A X X X 1,500円 X X X N/A 1,000円 N/A X X X +400円 X X X X X X N/A X X X X -100円 X X X N/A X X
  41. 41. ペアワイズ と 直交表
  42. 42. 組み合わせの爆発を抑える 因子水準の組み合わせにより、 ケース数が爆発してしまった時、 ある理論や制約に基づいて、 ケース数を削減する技法 銀の弾丸では無い
  43. 43. Pair wise(All Pair)
  44. 44. ペアワイズ(オールペア法) ペアワイズの特徴は、 複数ある因子のうち 2つの因子の組 = ペアに着目をし ペア間の組み合わせを網羅していく
  45. 45. ペアワイズの簡単な例 例えば WEBアプリのテストにて… WinとMac、ChromeとFirefox 機能A・B 各OS、ブラウザ、機能が 動くことを確認したい!
  46. 46. ペアワイズの簡単な例 OS ブラウザ 機能 Windows Chrome A機能 Windows Chrome B機能 Windows Firefox A機能 Windows Firefox B機能 : : : Mac Chrome B機能 Mac Firefox A機能 Mac Firefox B機能 たった3因子 2水準でも それなりの 数…
  47. 47. ペアワイズの簡単な例 1つのブラウザで、A機能かB機能 どちらかが確認できれば OK! 1つの OS で、各ブラウザが1回は 動作すれば OK! A機能・B機能、それぞれ各 OS で 動作すれば OK!(ブラウザ不問)
  48. 48. ペアワイズの簡単な例 OS ブラウザ 機能 Windows Chrome A機能 Windows Firefox B機能 Mac Chrome B機能 Mac Firefox A機能 4ケーステストすれば、先の条件において、 網羅できている! 先の条件 = ペア(2因子間)を網羅する
  49. 49. ペアワイズの簡単な例 なぜ、ペア(2因子)の網羅で 良しとするのか?
  50. 50. 多因子間網羅の考え方 因子水準が増えれば組み合わせは 指数関数的に増えていく 不具合の多くは単機能、2機能の 組み合わせで見つかっている 因子が増えるほど効率が落ちる 2因子以上の組み合わせ方も可能
  51. 51. 個人ワーク 以下の環境でテストをしたい OS: Windows, Mac 言語: 日本語、英語 ブラウザ: Chrome, Firefox 機能: A機能、B機能 2因子間網羅してください
  52. 52. 回答例 OS 言語 ブラウザ 機能 Windows 日本語 Chrome A機能 Windows 英語 Firefox B機能 Mac 日本語 Firefox B機能 Mac 英語 Chrome B機能 Mac 英語 Firefox A機能
  53. 53. ワークをやってみて… 「たった 4因子なのに結構大変」 これ以上増えたらやってられない… ツールを使いましょう
  54. 54. ツールの紹介 PICT (Pairwise Independent Combinatorial Testing tool) Microsoft社が開発したテストツール PictMasterOA PICT を Excel上で動かし、 結果を自動生成するツール
  55. 55. 補足 ペアワイズでは出てくる水準が 一律ではないことがある ツールを使えば、水準の 重み付けも可能
  56. 56. 直交表
  57. 57. 直交表とは ペアワイズは水準の出現回数が 均一ではない場合がある 各水準は同じ数だけテストしたい → 直交表
  58. 58. 直交表とは 水準の出現回数が同一になる ように組み合わせる技法 ペアワイズより組み合わせ数が 多くなることがある 「実験計画法」でも使われている
  59. 59. 直交表とは 直交表という表を使います
  60. 60. 直交表のつくりかた:参考 参考文献: JaSST’05 in Osaka 「直交表を活用した ソフトウェアテストの効率化 -HAYST法の活用-」 秋山 浩一 http://jasst.jp/archives/jasst05w/pdf/S4-1.pdf
  61. 61. 直交表サンプル L8(27) No. 因子A 因子B 因子C 因子D 因子E 因子F 因子G 1 1 1 1 1 1 1 1 2 1 1 1 2 2 2 2 3 1 2 2 1 1 2 2 4 1 2 2 2 2 1 1 5 2 1 2 1 2 1 2 6 2 1 2 2 1 2 1 7 2 2 1 1 2 2 1 8 2 2 1 2 1 1 2 どの因子を見ても 水準 1 と 2 の 出現回数は同じ
  62. 62. 直交表の種類 直交表は因子・水準の数により 大きさが変わる L8(27) . 2水準 因子の数が 7 大きさが 8
  63. 63. 直交表の種類 L4 から 2N の大きさの直交表が 存在する L64(263)
  64. 64. 直交表の種類 2水準系だけでなく3水準系の 直交表も存在する L9 など さらに L12,L18,L36 と言った 混合系も存在する
  65. 65. 直交表の選び方 テストの目的 コスト・費用対効果 因子・水準から 洗い出されていること
  66. 66. 例題 次の組み合わせを考える OS : Windows, Mac 言語 : 日本語、英語 ブラウザ : Chrome, Firefox Proxy : あり/なし アプリver : α, β 対象機能 : 機能1、機能2
  67. 67. 直交表 因子が 6、各水準は 2 L4(23), L8(27), L16(215),...
  68. 68. 再登場 L8(27) No. 因子A 因子B 因子C 因子D 因子E 因子F 因子G 1 1 1 1 1 1 1 1 2 1 1 1 2 2 2 2 3 1 2 2 1 1 2 2 4 1 2 2 2 2 1 1 5 2 1 2 1 2 1 2 6 2 1 2 2 1 2 1 7 2 2 1 1 2 2 1 8 2 2 1 2 1 1 2
  69. 69. 再登場 L8(27) 因子A → OS 水準1 → Windows 水準2 → Mac : :
  70. 70. L8(27) 完成! No. OS 言語 ブラウザ Proxy Ver. 機能 因子G 1 Win 日 Chrome あり α 1 1 2 Win 日 Chrome なし β 2 2 3 Win 英 Firefox あり α 2 2 4 Win 英 Firefox なし β 1 1 5 Mac 日 Firefox あり β 1 2 6 Mac 日 Firefox なし α 2 1 7 Mac 英 Chrome あり β 2 1 8 Mac 英 Chrome なし α 1 2
  71. 71. 個人ワーク 架空ショッピングサイト 荷物配送システムのチェック
  72. 72. 水準が足りないときは? 多めにテストしたい水準で埋める そもそものテスト目的は? 因子・水準の選び方は適切?
  73. 73. L16(45) 完成! No. 支払い方法 配送オプション 発送オプション 梱包 - 1 コンビニ・ATM なし なし なし 2 コンビニ・ATM お急ぎ便 まとめて発送 FFP 3 コンビニ・ATM 当日お急ぎ便 順次発送 ギフト 4 コンビニ・ATM お届け日時指定 まとめて発送 FFP 5 代金引換 なし まとめて発送 ギフト 6 代金引換 お急ぎ便 なし FFP 7 代金引換 当日お急ぎ便 まとめて発送 なし 8 代金引換 お届け日時指定 順次発送 FFP 9 クレジット なし 順次発送 ギフト 10 クレジット お急ぎ便 まとめて発送 ギフト : : : : : 15 ギフト券 当日お急ぎ便 まとめて発送 なし 16 ギフト券 お届け日時指定 なし ギフト
  74. 74. おわりに
  75. 75. まとめ デシジョンテーブル 条件が複雑・論理関係があるとき ペアワイズ 組み合わせの数が爆発したとき 直交表 水準の偏りをなくしたいとき
  76. 76. 参考 自動改札機の運賃計算プログラムはいかに デバッグされているのか? 10の40乗という運賃パターンのテスト方法を 開発者が解説  http://www.publickey1.jp/blog/12/_1040_1.html  IoT は組み合わせの概念
  77. 77. まとめ 技法は決して銀の弾丸ではない どの技法をどう使うか適切に判断 できることが大事 “考え方”を知っておくだけでも

×