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

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

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

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

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

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

GIHOZ SUPPORT TEAM

September 01, 2022
Tweet

More Decks by GIHOZ SUPPORT TEAM

Other Decks in Education

Transcript

  1. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  名前  谷﨑 浩一(たにざき

    こういち)  所属  株式会社ベリサーブ 研究企画開発部  経歴  テスター歴:約14年  プリンタ、デジカメ、PCアプリ、クラウドサービス  統合テスト・システムテストのテスト設計・実行・管理  プロダクトオーナー歴:約5年  ソフトウェアテストの設計をサポートするツール  博士(工学) 自己紹介 1
  2. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZのコンセプト 4  『GIHOZ』は、ベリサーブが開発したテスト技法ツールです ▪アカウント登録のみで、すぐに利用が可能です

    ソフトウェア開発に関わる全ての人の テスト設計の「作業」をゼロにする 手軽にテストケースを 作成・利用 目的に応じて テスト技法を選択 ソフトウェア開発の 効率化に貢献
  3. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 基本的な使い方の流れ 6 ログインする リポジトリを 選ぶ/作る

    テスト技法を選んで テストケースを 作成する/保存する 他のユーザを リポジトリに招待する テストケースを ダウンロードする/ Excel等へコピーする アカウントを 登録する
  4. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 リポジトリを選ぶ/作る 7 ①初期状態では 「MyRepository」のみ 自動で作成されている

    ②「リポジトリ作成」を押す ③アルファベット・数字・アンダーバーで入力 ④説明は任意で入力 ⑤実際の業務で使う場合は、基本的には「非公開」を選択。 「公開」を選ぶと、URLを知っている人は テストケースを閲覧できるようになるので、選ぶときは注意
  5. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  コピー先のリポジトリを選択してコピーを作成できます テストケースを丸ごとコピーする 10 ①行をクリックして選択

    ※CtrlキーやShiftキーを押しながら クリックで複数選択も可能 ②コピーアイコンを クリック ③コピー先のリポジトリを 選択してコピーを作成
  6. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ペアワイズテストの例:4パラメータ・3値の場合 14 No. 着信音 待受け画面

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

    2パラメータ間の組み合わせ が「同一回数」存在する 2パラメータ間の組み合わせ が「1つ以上」存在する 生成される テストケース数 ペアワイズテストより多い 直交表より少ない 3パラメータ以上の 組み合わせ 3パラメータ以上の組み合わ せもある程度出現する 3パラメータ以上の組み合わ せ網羅率は低い テストケース 生成 手動でも可能 ツールもあるがペアワイズ テストより入手は困難 手動では困難 ツールの入手、利用が容易
  8. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZ以外のペアワイズテストのツール 18 ツール 説明 PICT

    Microsoftが開発した組み合わせ生成ツール。 CIT-BACH 大阪大学の土屋達弘教授が開発した組み合わせ生成ツール。 PictMaster 岩通ソフトシステム株式会社が開発したExcelベースの組み合わせ 生成ツール。組み合わせ生成エンジンはPICTとCIT-BACHを利用。 Qumias Plus バルテス株式会社が開発した、Webブラウザベースの組み合わせ生成 ツール。 PICT-PAPP ベリサーブの林祥一氏が開発したExcelベースの組み合わせ生成 ツール。組み合わせ生成エンジンはPICTとCIT-BACHを利用。
  9. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  メリット  パラメータ・値の組み合わせが多すぎる場合に、一定の網羅性を確保した上で組み合わせ を絞り込むことができる

     注意点  パラメータの取りうる値の数が多いと、パラメータの数が少なくても、組み合わせの数が膨大 になる  その場合、同値分割などの考え方を適用して、値の数を減らす工夫が必要  すべての組み合わせをテストするわけではないので、「ペアワイズテストで組み合わせを生成 してテストしたから100%問題ない」とは言い切れない  使いどころを間違えるとテストの漏れに繋がる可能性がある ペアワイズテストのメリット・注意点 19
  10. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  一見関連のないパラメータでも組み合わさったときに思わぬ不具合が起きるかもしれ ないから組み合わせてテストしたい、というときに使うと効果的(いわゆる「無則」な場 合) 

    「無則」な場合は、多くのパラメータ・値の組み合わせを全網羅すると膨大になるの で、ペアワイズテストなどの組み合わせテスト技法を使って現実的に実施可能なテス トケース数に抑えると良い  「有則」な場合(パラメータ間の論理的な関係が明確な場合)は、デシジョンテー ブルなどを使って、テストすべき組み合わせを整理すると良い ペアワイズテストの使いどころ 20
  11. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 2パラメータ間の組み合わせ網羅で良い(ということにする)理由 21 出典: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 会社名・製品名・サービス名は、各社の登録商標または商標です。  テスト対象の仕様  ベリサーブ家具屋は木材・サイズ・塗装方法を選んでテーブルを注文できるWebシステムを持っています。 

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

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

    をクリックしてONにする ②「制約式」を選択して 「制約を入力」を押す ③制約式を入力する ④制約式の書式の詳細を 知りたい場合は、「PICT形式 の詳細を見る」を押す
  15. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  「組み合わせるパラメータ数」と「生成方法」を指定する 組み合わせのオプションを設定する 30 【生成方法のルール】

    ・デフォルト:PICTのデフォルト設定で組み合わせを生成する。 ・ランダム生成:任意のシード値を指定して組み合わせを生成する。 シード値を変えると、組み合わせの結果が変わる。0~9999までの 整数値を入力可能。 ・最小の組み合わせを探索:指定の回数分の組み合わせ生成を 繰り返して、最小件数の組み合わせを生成する。1~99までの整 数値を入力可能。 ①「オプションの使用」のトグル をクリックしてONにする ②組み合わせるパラメータ数は、 1~5の整数値を入力可能 ③生成方法を選択する。 例題1では「なるべく少ない件数の 組み合わせになるように」との指定 があったので、「最小の組み合わせ を探索」を指定
  16. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  テスト対象の仕様  前述のベリサーブ家具屋のWebシステムに仕様の追加があり、以下の赤字の部分が選択可能になりました。 

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

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

    をクリックしてONにする ②「制約式」を選択する ③追加になった条件を 制約式に追記する ④制約式の書式の詳細を 知りたい場合は、「PICT形式 の詳細を見る」を押す
  19. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  「特定の組み合わせを含める」を指定する 組み合わせのオプションを設定する 36 ③生成方法を選択する

    ①1行目にパラメータの名称を入力する ②2行目以下に、生成時に含めたい組み 合わせを入力する。例題2では、「例題1で 作成した組み合わせはそのままにしたい」と いうお題があったので、例題1で作成した 「生成結果」を丸ごとコピペする。
  20. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  特定のパラメータ間での組み合わせの網羅度を指定できる  以下のような場合に利用すると良い 

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

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

    値としては同等なので組み合わせ生成時には1個の値として扱いたいが、テストを実際に実行するときは複数の 値を割り振って実行したいとき エイリアス(別名) 41 1つのセルに「|」という半角記号 で区切って、値の名称を入力する
  23. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  値ごとに重みづけを指定して、組み合わせにその値が登場する頻度を変えることができる  ただし、数字が直感的な意味は持っていないので注意 

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

     ソースコード https://github.com/ktanizaki/gihoz-utilities 【参考】組み合わせの網羅度合いの可視化 44 赤背景の部分は組み合わせが存在しないことを表している。 2パラメータ間の値の組み合わせが網羅されていることを可視化したり、 制約が正しくかかっているか確認することができる
  25. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  ペアワイズテストについて解説&ハンズオンを行いました  「任意の2つのパラメータ間の値の組み合わせが1つ以上存在する」ように組み合わせを生成できる 

    GIHOZではオプションの設定次第で、3~5パラメータ間の組み合わせ網羅も可能  「無則」のパラメータを組み合わせてテストを行う際に活用すると良い  GIHOZでは、オプション設定や応用的な組み合わせ機能も活用することで、柔軟な組み合わせの生成が可能  GIHOZを使って効率的に組み合わせテストを実施してもらえると嬉しいです!  改善要望や気になった点などがあれば、ぜひフィードバックをお寄せください まとめ 47