Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【S2】明日から使えるテスト技法勉強会_2_ペアワイズテスト

 【S2】明日から使えるテスト技法勉強会_2_ペアワイズテスト

こちらはConnpassで開催した「明日から使えるテスト技法勉強会」シーズン2で使用された資料となります。合計7部ありますので、テスト技法にご興味を持つ方は、ぜひご活用いただければ幸いです。

また、本資料中使用されたツールGIHOZ(ギホーズ)は、各種テスト技法を手軽に利用できるクラウド型ツールです。
GIHOZはアカウント登録のみで、すぐに利用が可能です。高品質なテストを効率よく作成するために、熟練のテストエンジニアが利用しているさまざまなテスト技法を手軽に体感してください。

GIHOZに登録されたテスト技法はすべて無償でご利用いただけます。
詳細はこちらまでご確認ください。👉https://www.veriserve.co.jp/gihoz/

GIHOZ SUPPORT TEAM

September 21, 2022
Tweet

More Decks by GIHOZ SUPPORT TEAM

Other Decks in Education

Transcript

  1. 明日から使える 勉強会 テスト技法 2022.9.1 19:00~20:00@Zoom 金 ペアワイズテストの基本と応用 S 2

  2. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 名前 ◼ 田上 諭

    (たのうえ さとし) ➢ 所属 ◼ 株式会社ベリサーブ 研究企画開発部 ➢ 経歴 ◼ 2018年度に新卒で入社 ◼ ソリューション事業部 ◆ 静的解析、セキュリティテスト、自動テスト 1年ほど ◼ 研究企画開発部で GIHOZ開発 ◆ 2019年 ~ 現在 自己紹介 1
  3. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ ペアワイズテストの解説 ➢ GIHOZについて ➢

    GIHOZを使ったペアワイズテストのハンズオン ➢ おわりに アジェンダ 2
  4. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 3 ➢ ペアワイズテストの解説

  5. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 「ソフトウェアの不具合の多くが1つまたは2つのパラメータ(因子)の組み合わせによって 発生している」という経験則に基づいて、2パラメータ間の値の組み合わせを網羅するテスト ケースを作成する技法 ➢

    ペアワイズ法・オールペア法とも呼ぶ ➢ 組み合わせテスト技法の1つ ➢ ワイズ(wise)で、「〜の観点」でという意味がある。つまり、ペアの観点でのテストということ ➢ テストケース生成のアルゴリズムはさまざまある ペアワイズテストとは 4
  6. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ パラメータ(因子):結果に影響を及ぼす原因になりうるもの ➢ 値(水準):パラメータが取りうる選択肢のこと ➢

    ラーメンの味に影響を与えるもの例 ◼ 麺 ◆ 細麺、中太麺、太麺。 ◼ スープ ◆ とんこつ、醤油、味噌。 ◼ 茹で方 ◆ 粉落とし、ハリガネ、バリカタ、カタ、普通、柔め。 パラメータと値 5
  7. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 組み合わせテスト 6 パラメータ 値1 値2

    値3 着信音 電子音 鐘の音 黒電話の音 待受け画面 標準画面 カレンダー 動画 バイブ設定 ON OFF オリジナル マナーモード ON OFF カスタマイズ No. 着信音 待受け画面 バイブ設定 マナーモード 1 電子音 標準画面 ON ON 2 電子音 標準画面 ON OFF 3 電子音 標準画面 ON カスタマイズ 4 電子音 標準画面 OFF ON 5 電子音 標準画面 OFF OFF ・ ・ ・ 全組み合わせを網羅すると、 3×3×3×3=81パターン のテストケースが必要。 81 黒電話の音 動画 オリジナル カスタマイズ
  8. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ペアワイズテストの例:4パラメータ・3値の場合 7 No. 着信音 待受け画面

    バイブ設定 マナーモード 1 電子音 標準画面 ON ON 2 電子音 カレンダー OFF OFF 3 電子音 動画 オリジナル カスタマイズ 4 鐘の音 標準画面 オリジナル OFF 5 鐘の音 カレンダー ON カスタマイズ 6 鐘の音 動画 OFF ON 7 黒電話の音 標準画面 OFF カスタマイズ 8 黒電話の音 カレンダー オリジナル ON 9 黒電話の音 動画 ON OFF ペ ア ワ イ ズ テ ス ト で は 、 最小で9パターンのテスト ケースで2パラメータ間の値 の組み合わせを網羅できる。 パラメータ 値1 値2 値3 着信音 電子音 鐘の音 黒電話の音 待受け画面 標準画面 カレンダー 動画 バイブ設定 ON OFF オリジナル マナーモード ON OFF カスタマイズ
  9. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ パラメータ間に因果関係がある ◼ パラメータAの値とパラメータBの値の組み合わせて、結果が変わる。 ◼

    これを有則であるという。 ➢ パラメータ間に因果関係がない ◼ パラメータAの値またはパラメータBの値の組み合わせで、結果が変わらない。 ◼ これを、無則であるという。 ◼ 無則の場合は、組み合わせテストをしなくて良い。 ◼ 組み合わを行わず、それぞれのパラメータの値でテストすれば良い。 有則と無則 8
  10. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ ソフトウェアは大規模化・複雑化しており、論理的には影響を及ばさないことが期待されるパ ラメータ同士であっても、想定外の不具合が起きる可能性がある ➢ そこで、一見関連のなさそうなパラメータが、組み合わさったときに思わぬ不具合が起きない

    ことを確認するために行う(無則かどうか確認するテスト) ➢ 無則なテストの場合は、多くのパラメータ・値の組み合わせを全網羅すると膨大になるので、 ペアワイズテストなどの組み合わせテスト技法を使って現実的に実施可能なテストケース数に 抑える ➢ 有則なテストの場合は、デシジョンテーブルなどを使って、テストすべき組み合わせを整理する ペアワイズテストの使いどころ 9
  11. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 2パラメータ間の組み合わせ網羅で良い(ということにする)理由 10 出典:D. R. Kuhn,

    D. R. Wallace and A. M. Gallo, "Software fault interactions and implications for software testing," in IEEE Transactions on Software Engineering, vol. 30, no. 6, pp. 418-421, June 2004, doi: 10.1109/TSE.2004.24. ➢ バグの要因になるパラメータの数について、 以下の研究結果が知られている ◼ バグの約70%は2つ以内のパラメータの組み 合わせによって発生している。 ◼ バグの約90%は3つ以内のパラメータの組み 合わせによって発生している。
  12. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ペアワイズテストの位置づけ 11 https://note.com/akiyama924/n/n072e24135964 より引用 Black

    boxテストで パラメータ・値の 組み合わせを網羅的 にテストする際に 活用できる
  13. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 1980年代から研究開発されてきた 組み合わせテスト技法の歴史 12 http://a-lifelong-tester.cocolog-nifty.com/blog/2012/04/1-db26.html

    より引用
  14. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 直交表とペアワイズテストの違い 13 直交表 ペアワイズテスト 組み合わせ基準

    ◼2パラメータ間の組み合わせ が「同一回数」存在する ◼2パラメータ間の組み合わせ が「1つ以上」存在する 生成される テストケース数 ◼ペアワイズテストより多い ◼直交表より少ない 3パラメータ以上の 組み合わせ ◼3パラメータ以上の組み合わ せもある程度出現する ◼3パラメータ以上の組み合わ せ網羅率は低い テストケース 生成 ◼手動でも可能 ◼ツールもあるがペアワイズ テストより入手は困難 ◼手動では困難 ◼ツールの入手、利用が容易
  15. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ メリット ◼ パラメータ・値の組み合わせが多すぎる場合に、一定の網羅性を確保した上で組み 合わせを絞り込むことができる。

    ➢ 注意点 ◼ パラメータの取りうる値の数が多いと、パラメータの数が少なくても、組み合わせの数が膨大 になる。同値分割などの考え方を適用して、値の数を減らす工夫が必要。 ◼ すべての組み合わせをテストするわけではないので、 「ペアワイズテストで組み合わせを生成してテストしたから100%問題ない」とは言い切れな い。使いどころを間違えるとテストの漏れに繋がる可能性がある。 ペアワイズテストのメリット・注意点 14
  16. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 15 ➢ GIHOZについて

  17. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZのコンセプト 16 ソフトウェア開発に関わる全ての人の テスト設計の「作業」をゼロにする 目的に応じて

    テスト技法を選択 テストモデル・ケースを 容易に作成・利用 各種APIによる連携 ➢ 『GIHOZ』は、ベリサーブが開発しているテスト技法ツールです
  18. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZで利用可能なテスト技法一覧 17

  19. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZを使うには 18 GIHOZ 名前の由来と覚え方 テスト技法が集まっている

    → 技法s(複数形) → ギホーズ → GIHOZ ➢ 検索&アカウント登録(無料)
  20. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZ以外のペアワイズテストのツール 19 ツール 説明 PICT

    Microsoftが開発した組み合わせ生成ツール。 CIT-BACH 大阪大学の土屋達弘教授が開発した組み合わせ生成ツール。 PictMaster 岩通ソフトシステム株式会社が開発したExcelベースの組み合わせ 生成ツール。組み合わせ生成エンジンはPICTとCIT-BACHを利用。 Qumias Plus バルテス株式会社が開発した、Webブラウザベースの組み合わせ生成 ツール。 PICT-PAPP ベリサーブの林祥一氏が開発したExcelベースの組み合わせ生成 ツール。組み合わせ生成エンジンはPICTとCIT-BACHを利用。
  21. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 20 ➢ GIHOZを使ったペアワイズテストのハンズオン

  22. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZのペアワイズテストの使い方 21 パラメータと値を 入力する 制約表/制約式を

    入力する ※任意 組み合わせを 生成する 組み合わせの オプションを設定する ※任意
  23. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ テスト対象の仕様 ◼ ベリサーブ家具屋は木材・サイズ・塗装方法を選んでテーブルを注文できるWebシステムを持っています。 ◼

    木材、サイズ、塗装方法は以下から選択できます。 ◼ ただし、木材がヒノキの場合は、サイズとして、中と大しか選べません。 ➢ お題 ◼ 2パラメータ間の組み合わせ網羅のテストを行って、エラーなく注文できることを確認したいです。 ◼ GIHOZで制約表または制約式を使い、ペアワイズ法で組み合わせを生成してください。 ◼ 組み合わせを生成する際は、なるべく少ない件数の組み合わせになるように工夫してください。 ◆ ※ヒント:「生成方法」のオプション設定を使う。 ペアワイズテストの例題① 22 木材 サイズ 塗装方法 ナラ 小 ウレタン塗装 ウォールナット 中 UV塗装 チェリー 大 オイル塗装 ヒノキ
  24. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 パラメータと値を入力する 23 初期データが入っているので、 全選択して右クリックメニュー から「行を削除」を選択

    ➢ まず初期データを削除する
  25. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 パラメータと値を入力する 24 パラメータと値を入力する (Excelなどの表計算ソフトと 同じように入力できる。行・列

    は文字を入力していくと勝手 に増える)
  26. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 【余談】「パラメータと値」の表の形式 25 ➢ 社内でアンケートを取ってみた結果、GIHOZと同じ形式(②)が多かった

  27. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 制約表/制約式を入力する 26 【制約表の記入ルール】 ・Ifの列には値を1つだけ入力できる。 ・Thenの列で複数の値を指定する場合は、

    半角カンマ区切りで値を入力する。 ・Thenの列で除外したい値を指定する場合は、 先頭に”#”を入力する。 ①「制約の使用」のトグル をクリックしてONにする ②「制約表」を選択して 「制約を入力」を押す ③制約を入力する ➢ 制約表で入力する場合
  28. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 制約表/制約式を入力する 27 ①「制約の使用」のトグル をクリックしてONにする ②「制約式」を選択して

    「制約を入力」を押す ③制約式を入力する ④制約式の書式の詳細を 知りたい場合は、「PICT形式 の詳細を見る」を押す ➢ 制約式で入力する場合
  29. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 組み合わせのオプションを設定する 28 【生成方法のルール】 ・デフォルト:PICTのデフォルト設定で組み合わせを生成する。 ・ランダム生成:任意のシード値を指定して組み合わせを生成する。

    シード値を変えると、組み合わせの結果が変わる。0~9999までの 整数値を入力可能。 ・最小の組み合わせを探索:指定の回数分の組み合わせ生成を 繰り返して、最小件数の組み合わせを生成する。1~99までの整 数値を入力可能。 ①「オプションの使用」のトグル をクリックしてONにする ②組み合わせるパラメータ数は、 1~5の整数値を入力可能 ③生成方法を選択する。 例題1では「なるべく少ない件数の 組み合わせになるように」との指定 があったので、「最小の組み合わせ を探索」を指定 ➢ 「組み合わせるパラメータ数」と「生成方法」を指定する
  30. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 組み合わせを生成する 29 ①「テストケースを生成」を押す ②制約表か制約式を正しく 入力できていれば、制約付きで

    組み合わせが生成される ③「最小の組み合わせを探索」を 指定していれば、12件の 組み合わせが生成される(はず)
  31. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ テスト対象の仕様 ◼ 前述のベリサーブ家具屋のWebシステムに仕様の追加があり、以下の赤字の部分が選択可能になりました。 ◼

    木材、サイズ、塗装方法は以下から選択できます。 ◼ ただし、木材がヒノキかパインの場合は、サイズとして、中と大しか選べません。 ➢ お題 ◼ 2パラメータ間の組み合わせ網羅のテストを行って、エラーなく注文できることを確認したいです。 ◼ GIHOZで制約表または制約式を使い、ペアワイズ法で組み合わせを生成してください。 ◼ すでにテスト実行が始まっており、例題1で作成した組み合わせについてはテストを実施済みのため、それらの組み合わ せはそのままで、追加になった値に関して組み合わせを追加したいです。 ◆ ※ヒント:「特定の組み合わせを含める」のオプション設定を使う。 ペアワイズテストの例題② 30 木材 サイズ 塗装方法 ナラ 小 ウレタン塗装 ウォールナット 中 UV塗装 チェリー 大 オイル塗装 ヒノキ 特大 パイン
  32. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 パラメータと値を入力する 31 ①追加になったパラメータを 追記 ②「パラメータと値」の表を編集

    すると「制約の使用」のトグルは いったんOFFになる
  33. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 制約表/制約式を入力する 32 ①「制約の使用」のトグル をクリックしてONにする ②追加になった制約を

    追記する 【制約表の記入ルール】 ・Ifの列には値を1つだけ入力できる。 ・Thenの列で複数の値を指定する場合は、 半角カンマ区切りで値を入力する。 ・Thenの列で除外したい値を指定する場合は、 先頭に”#”を入力する。 ➢ 制約表で入力する場合
  34. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 制約表/制約式を入力する 33 ①「制約の使用」のトグル をクリックしてONにする ②「制約式」を選択する

    ③追加になった条件を 制約式に追記する ④制約式の書式の詳細を 知りたい場合は、「PICT形式 の詳細を見る」を押す ➢ 制約式で入力する場合
  35. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 組み合わせのオプションを設定する 34 ③生成方法を選択する ①1行目にパラメータの名称を入力する ②2行目以下に、生成時に含めたい組み

    合わせを入力する。例題2では、「例題1で 作成した組み合わせはそのままにしたい」と いうお題があったので、例題1で作成した 「生成結果」を丸ごとコピペする ➢ 「特定の組み合わせを含める」を指定する
  36. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 組み合わせを生成する 35 ①「テストケースを生成」を押す ③制約表か制約式を正しく 入力できていれば、制約付きで

    組み合わせが生成される ②「特定の組み合わせを含める」で 指定した組み合わせが 生成結果に含まれる
  37. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 36 ➢ その他の応用的な組み合わせ機能

  38. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 特定のパラメータ間での組み合わせの網羅度を指定できる ➢ 以下のような場合に利用すると良い ◼

    一部のパラメータ間は全網羅したいが残りのパラメータはペアワイズで良い、といったようにパラメータ間の網羅度 合い(組み合わせの重要さ)が異なるとき。 サブモデル 37 以下の記法で式を入力する。式は複数入力できる { パラメータ1, パラメータ2, ・・・} @ 組み合わせるパラメータ数 上記の式を入力した場合、 この図のように組み合わせ が生成される
  39. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 一度定義したパラメータを再利用できる ➢ 以下のような場合に利用すると良い ◼

    同じ値を取るパラメータが複数あるとき。 ◼ その値に変更があった場合に、複数のパラメータに影響するとき。 パラメータの再利用 38 他のパラメータの名前の前後に「<>」 という半角記号をつけて入力
  40. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 値に別名をつけて、組み合わせの中で複数の名前が均等に登場するようにできる ➢ 以下のような場合に利用すると良い ◼

    値としては同等なので組み合わせ生成時には1個の値として扱いたいが、テストを実際に実行するときは複数の 値を割り振って実行したいとき。 エイリアス(別名) 39 1つのセルに「|」という半角記号 で区切って、値の名称を入力する
  41. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 無効値(エラーになる値)が1個の組み合わせの中に1個のみ登場するように組み合わせを生成できる ◼ 1個の組み合わせの中に複数の無効値があると、どの無効値でエラーと判定されたのか分からなくなる。 ➢

    以下のような場合に利用すると良い ◼ 無効値を含めて組み合わせを生成してテストしたいとき。 無効値のテスト 40 無効値の先頭に「~」という 半角記号を入力する
  42. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ 値ごとに重みづけを指定して、組み合わせにその値が登場する頻度を変えることができる ◼ ただし、数字が直感的な意味は持っていないので注意。 ◼

    重みを5にしても、重みが1のときと比べてその値が5倍登場する、ということはない。 ➢ 以下のような場合に利用すると良い ◼ 値によって、組み合わせに登場する頻度を変えたいとき。 重みづけ 41 値の後ろに半角カッコ付きで、 整数値を入力する
  43. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ GIHOZで作成した組み合わせから総当たり表を作成するユーティリティを公開中 ◼ 使い方解説 https://qiita.com/ktanizaki/items/b905d1df553dd0cbd5b5

    ◼ ソースコード https://github.com/ktanizaki/gihoz-utilities 【参考】組み合わせの網羅度合いの可視化 42 赤背景の部分は組み合わせが存在しないことを表している。 2パラメータ間の値の組み合わせが網羅されていることを可視化したり、 制約が正しくかかっているか確認することができる
  44. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 43 ➢ おわりに

  45. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ https://gihoz.hatenablog.com/ ➢ アップデート情報など随時更新中 GIHOZ公式ブログの紹介

    44
  46. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ➢ ペアワイズテストについて解説&ハンズオンを行いました ◼ 「任意の2つのパラメータ間の値の組み合わせが1つ以上存在する」ように組み合わせを生成できる。 GIHOZではオプションの設定次第で、3~5パラメータ間の組み合わせ網羅も可能。

    ◼ 「無則」のパラメータを組み合わせてテストを行う際に活用すると良い。 ◼ GIHOZでは、オプション設定や応用的な組み合わせ機能も活用することで、柔軟な組み合わせの生成が可能。 ➢ GIHOZを使って効率的に組み合わせテストを実施してもらえると嬉しいです! ➢ 改善要望や気になった点などがあれば、ぜひフィードバックをお寄せください まとめ 45
  47. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 勉強会は以上で終了です。お疲れ様でした。 46