SlideShare a Scribd company logo
1 of 17
Download to read offline
テスト技法ワークショップ
vol.2 ペアワイズテストを使いこなす
2021.11.27 オンライン勉強会
2021 WARAI(関西ソフトウェアテスト勉強会) 2
◼ 発表者が公開NGとした資料や発言を、SNSなどで拡散しないようお願いいたします。
◼ イベント内ではビジネスの勧誘にあたる行為は禁止しています。
参加者全員が楽しむイベントである主旨を理解した発言・行動をお願いします。
(誹謗中傷、マウントの取り合いなど)
◼ 勉強会中に自由に書き込める掲示板を用意しました。
Discord #テスト技法ワークショップ
招待リンク https://discord.gg/eczFHAB6
諸注意
2021 WARAI(関西ソフトウェアテスト勉強会) 3
Agenda
【本編】
ペアワイズテストの定義
組み合わせテストの種類
ペアワイズテスト生成ツール
演習
ディスカッション
アイスブレイク
(ice breaker)
• 自己紹介
• 参加の動機
• 意気込み
• 今興味を持っていること
4
2021 WARAI(関西ソフトウェアテスト勉強会) 5
ペアワイズテストの定義 ⑴
組み合わせテスト (combinatorial testing): 事前に定義されたレベルのカバレッジを達成するために、
適切に組み合わせたテストのサブセットを識別する手段。
• ペアワイズテスト (pairwise testing) : ブラックボックステスト設計技法の一つ。
入力パラメータの各ペアを、設定可能な個々の組み合わせの全てで実行するためのテストケースを設計する。
• n ワイズテスト (n-wise testing): ブラックボックステスト設計技法の一つ。
n 個の入力パラメータの任意のセットを、設定可能な個々の組み合わせの全てで実行するためのテストを設計する。
• 直交表テスト (orthogonal array testing) : 直交表を使った変数のオールペア組み合わせテストの体系的な方法。
変数を全て組み合わせたときの数を、オールペア組み合わせでテストできるまでに減らす。
クラシフィケーションツリー法 (classification tree method): ブラックボックステスト設計技法の一つ。
クラシフィケーションツリーを使って入力ドメインや出力ドメインの代表値の組み合わせを設計し、テストケースを記
述する。
関連する用語の説明 (JSTQB ソフトウェアテスト標準用語集 より)
2021 WARAI(関西ソフトウェアテスト勉強会) 6
ペアワイズテストの定義 ⑵
• 可能な値を複数持つ複数の入力パラメーターを組み合わせてソフトウェアをテストしなければならず、
組み合わせ数が、許容される時間内にテスト可能な数よりも多く存在するときに使用する。
• 特定のパラメーター(変数または因子)とそのパラメーターの特定の値の組は、パラメーター - 値のペアと呼ばれる。
• ペアワイズテストでは、組み合わせの技法を使用して、
[各パラメーター - 値ペア] が 他の 各パラメーターの [パラメーター - 値ペア] それぞれに対して1回はテストをする。
(任意の 2つの異なるパラメーターのパラメーター - 値ペアの「オールペア」をテストする)
• クラシフィケーションツリーはペアワイズテストと組み合わせて使用することが多い。
クラシフィケーションツリーは、パラメーターとそれらの値の組み合わせを視覚化できることで、
以下の情報を識別するのに役立つ。
* ペアワイズテスト技法で使用する入力
* 関心のある特定の組み合わせ(頻繁に使用する組み合わせ、欠陥の共通の発生源など)
* 両立しない特定の組み合わせ⇒組み合わされた因子が相互に影響しないことを想定していない
影響を与える可能性が十分にあり、許容できる範囲で相互に影響するべきである。
* 変数間の論理的関係(例:変数 x が 1 の場合、変数 y が 2 になることはない)
これらの関係を表すクラシフィケーションツリーを「フィーチャーモデル」と呼ぶ
ペアワイズテストの説明 (JSTQB ATA シラバス(抜粋))
2021 WARAI(関西ソフトウェアテスト勉強会) 7
ペアワイズテストの定義 ⑶
パラメーター値に関してあまりに多くの組み合わせを持つことの以下のような問題について
① 複数の入力欄のある画面のように、とり得る値が複数存在するパラメーターが複数存在する。
② システムによっては、いくつかの次元で設定可能なものがあり、その結果構成空間が大きくなる
⇒ ペアワイズテストにより、扱いやすくて実現可能な組み合わせのサブセットを識別することができる
値の数が非常に多いパラメーターでは、まず同値分割法や他の抽出の仕組みを各パラメーターに適用して、
各パラメーターの値の数を減らしてからペアワイズテストを適用して、
結果として得られる組み合わせのセットを減らすことができる。
パラメーターとその値をクラシフィケーションツリーに取り込むことがこの活動を支援する。
ペアワイズテストの適用 (JSTQB ATA シラバス(抜粋))
2021 WARAI(関西ソフトウェアテスト勉強会) 8
ペアワイズテストの定義 ⑶
これらの技法の主な制限は、少数のテストの結果がすべてのテストの結果を代表し、それらのテストが期待される使用
方法を表すと仮定することである。例えば、想定されていない相互作用が特定の変数間に存在する場合、その特定の組
み合わせをテストしない限り、その欠陥はこのテスト技法で検出されない可能性がある。
組み合わせテスト(ペアワイズテスト含む)は、
テストを論理的に削減するということが理解されづらく、技術を知らない関係者への説明が難しい。
そこで、経験に基づく研究の結果に言及することによってバランスをとる必要がある。
医療機器の領域の研究では、故障の 66%は単一の変数によって引き起こされており、97%は 1 つの変数または 2 つの
変数の相互作用のいずれかによって引き起こされていることが示されている。3 以上の変数による相互作用が存在する
場合、ペアワイズテストでシステム故障を検知できないことがあるというリスクが残る。
ペアワイズテストの制限/注意事項 (JSTQB ATA シラバス(抜粋))
パラメーターとそれぞれの値を識別するのが困難な場合がある。
このため、可能であればクラシフィケーションツリーの支援を受けて実施するべきである。
あるレベルのカバレッジを満たす最小の組み合わせのセットを見つけることは、手作業では困難である。
可能な限り小さい組み合わせのセットを見つけるために、ツールを使用する。
2021 WARAI(関西ソフトウェアテスト勉強会) 9
ペアワイズテストの定義 ⑶
ペアワイズカバレッジ 100%とするためには、任意の 2 つのパラメーターについて、
各値のすべてのペアを 1 つ以上の組み合わせに含める必要がある。
ペアワイズテストのカバレッジ (JSTQB ATA シラバス(抜粋))
ペアワイズテストで検出できる欠陥の種類 (JSTQB ATA シラバス(抜粋))
このテスト技法で見つかる最も一般的な欠陥のタイプは、
2 つのパラメーターの値の組み合わせに関連する欠陥である。
※組み合わせテストの導入説明として使われていた事例
• NASAにおけるデータベースの欠陥329個を分析したところ、
全体の93%がシングルモードまたはダブルモードの設定の組合せで欠陥が発生
• Webブラウザではトリプルモードで95%の欠陥を検出 (ダブルモードでは76%)
2021 WARAI(関西ソフトウェアテスト勉強会) 10
組み合わせテストの種類
◆ 有則 :組み合わせた結果、出力に影響を及ぼすもの
◆ 無則 :組み合わせた結果、出力に影響を及ぼさない(及ぼしてはいけない)
◆ 禁則 :組み合わせることができない制限、制約
組み合わせテスト(ペアワイズテスト、直交表テスト)における “組み合わせ”に種類があることを理解する。
それぞれのアプローチとして、
• 有則の組み合わせは範囲が狭いため、デシジョンテーブルやクラシフィケーションツリーを用いて、
論理関係やパラメータの同値を整理しながら進める。
• 無則の組み合わせは範囲が広くパラメータも多くなるため、組み合わせテストが適している
⇒ 範囲を広げ、より早く(絞ったテストケース数で)問題を見つけるため
組み合わせテスト=無則の組み合わせ、だけではない点に注意。
有則は全網羅が理想だが、組み合わせテストを用いることもある。
2021 WARAI(関西ソフトウェアテスト勉強会) 11
ペアワイズテスト生成ツール
ペアワイズテストの生成ツールは数多く存在する(参照 www.pairwise.org)。
https://www.veriserve.co.jp/gihoz/
• クラウド型のテスト技法ツール
• オンプレで実行できる
PictMaster / PICT
https://www.qbook.jp/info-qumias/
2021 WARAI(関西ソフトウェアテスト勉強会) 12
GIHOZのペアワイズテストの機能
生成方法
• デフォルト :これまでと同様の設定で組み合わせを生成
• ランダム生成:ランダム生成時のシード値を指定して、組み合わせを生成する
デフォルトとは異なる組み合わせ生成結果を得たい場合に使用する
• 最小の組み合わせを探索:
指定の試行回数の組み合わせ生成をランダムなシード値で繰り返し、
件数が最も少なかった組み合わせを生成結果として表示する
組み合わせの件数を少しでも減らしたいという場合に使用する
オプション
組み合わせるパラメータ数(n因子間網羅)を1~5で設定できる
制約
• 特定の因子水準の場合に指定する因子水準を記載する
複数の場合はカンマで区切って書く
• 否定文の場合は「#水準」で記載する
2021 WARAI(関西ソフトウェアテスト勉強会) 13
演習:Windowsの計算機をテストする
Windows標準アクセサリの電卓ツールをペアワイズテストしよう
※検索バーで「電卓」を入力すると起動する
1. 電卓アプリのパラメータを抽出し、整理する
2. 電卓アプリのパラメータの制約を設定する
3. 電卓アプリのパラメータを2因子間で組み合わせる
4. 無則の組み合わせを考えてみる
「Windowsの設定が電卓に影響を与えていないことを確認する」
上記の組み合わせテストを設計せよ
電卓アプリ
2021 WARAI(関西ソフトウェアテスト勉強会) 14
演習:Windowsの計算機をテストする ~解答例①
クラシフィケーションツリーを使用した電卓アプリのパラメータの抽出と整理
図:GIHOZによるクラシフィケーションツリー 表:生成結果
2021 WARAI(関西ソフトウェアテスト勉強会) 15
演習:Windowsの計算機をテストする ~解答例②
電卓アプリのパラメータの制約を設定する
2021 WARAI(関西ソフトウェアテスト勉強会) 16
演習:Windowsの計算機をテストする ~解答例③
パラメータを2因子間で組み合わせる
2021 WARAI(関西ソフトウェアテスト勉強会) 17
ディスカッション
 ペアワイズテストが活用されていない問題
ペアワイズテストはテスト技術の研修で必ずと言ってよいほど取り上げられるのに、
現場ではあまり使用されていない。
 メリットに対する疑問
「テスト項目を大幅に削減できる」をメリットに挙げるが、
無則の組み合わせをテスト対象に含めているため、むしろ発散している感覚に陥る。
 不具合は出るの?
無則の組み合わせは「不具合を出すためのテスト」というより
「不具合が出ないことを確認するため」のテストであるため、不具合の検出は少ない。
⇒ 不具合を検出しないと、このテスト意味ある?論が持ち上がり、結局やらなくなる
 実行者の目線から
テストケース作成は容易だが、テスト実行、特に手動での実行ではルーチンワークになるため
ミスが増えたり、モチベーションが低下しがち(心が折れそうになる)
⇒ 自動化が望ましい

More Related Content

What's hot

テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightkyon mm
 
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するのKazukiNishizono1
 
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年verソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年verKosuke Fujisawa
 
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編Noriyuki Mizuno
 
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkanSta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkankyon mm
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介gree_tech
 
20191104 na te_samplequestion_r03
20191104 na te_samplequestion_r0320191104 na te_samplequestion_r03
20191104 na te_samplequestion_r03tomohiro odan
 
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daiザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daikyon mm
 
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-崇 山﨑
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!Kenji Okumura
 
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニアSHIFT Inc.
 
品質保証を体験しよう
品質保証を体験しよう品質保証を体験しよう
品質保証を体験しようCy1DayCy1Day
 
Kaizen process with test #hackt
Kaizen process with test #hacktKaizen process with test #hackt
Kaizen process with test #hacktkyon mm
 
Jstqb test analyst-chap1
Jstqb test analyst-chap1Jstqb test analyst-chap1
Jstqb test analyst-chap1Kosuke Fujisawa
 
Agile RCA Presentation
Agile RCA PresentationAgile RCA Presentation
Agile RCA PresentationAtsushi Nagata
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!虎の穴 開発室
 
サイボウズQAの働き方
サイボウズQAの働き方サイボウズQAの働き方
サイボウズQAの働き方Cy1DayCy1Day
 
テストスキルを測ってみよう
テストスキルを測ってみようテストスキルを測ってみよう
テストスキルを測ってみようAkira Ikeda
 
アジャイルクオリティの探求
アジャイルクオリティの探求アジャイルクオリティの探求
アジャイルクオリティの探求atsushi nagata
 

What's hot (19)

テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
 
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
 
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年verソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年ver
 
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
 
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkanSta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
 
20191104 na te_samplequestion_r03
20191104 na te_samplequestion_r0320191104 na te_samplequestion_r03
20191104 na te_samplequestion_r03
 
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daiザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
 
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
 
品質保証を体験しよう
品質保証を体験しよう品質保証を体験しよう
品質保証を体験しよう
 
Kaizen process with test #hackt
Kaizen process with test #hacktKaizen process with test #hackt
Kaizen process with test #hackt
 
Jstqb test analyst-chap1
Jstqb test analyst-chap1Jstqb test analyst-chap1
Jstqb test analyst-chap1
 
Agile RCA Presentation
Agile RCA PresentationAgile RCA Presentation
Agile RCA Presentation
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
 
サイボウズQAの働き方
サイボウズQAの働き方サイボウズQAの働き方
サイボウズQAの働き方
 
テストスキルを測ってみよう
テストスキルを測ってみようテストスキルを測ってみよう
テストスキルを測ってみよう
 
アジャイルクオリティの探求
アジャイルクオリティの探求アジャイルクオリティの探求
アジャイルクオリティの探求
 

Similar to WARAI テスト技法ワークショップ vol.2

Visual Studio App Center Authの導入方法について
Visual Studio App CenterAuthの導入方法についてVisual Studio App CenterAuthの導入方法について
Visual Studio App Center Authの導入方法についてShinya Nakajima
 
Web3の話をしよう! #8 (DAO体験編).pdf
Web3の話をしよう! #8 (DAO体験編).pdfWeb3の話をしよう! #8 (DAO体験編).pdf
Web3の話をしよう! #8 (DAO体験編).pdfAtsushiSasaki9
 
開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能Masaki Suzuki
 
Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用Shinya Nakajima
 
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~Takashi Ushigami
 
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~ くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~ Takashi Ushigami
 
AzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CDAzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CDShinya Nakajima
 
ソースコードを読んでみよう
ソースコードを読んでみようソースコードを読んでみよう
ソースコードを読んでみようShun Tsunoda
 
Comcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTSComcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTSsady_nitro
 
Visual Studio App Centerの始め方
Visual Studio App Centerの始め方Visual Studio App Centerの始め方
Visual Studio App Centerの始め方Shinya Nakajima
 
神戸電子専門学校 業界セミナー 20170422
神戸電子専門学校 業界セミナー 20170422神戸電子専門学校 業界セミナー 20170422
神戸電子専門学校 業界セミナー 20170422Aya Tokura
 
20210828_win32_windows11
20210828_win32_windows1120210828_win32_windows11
20210828_win32_windows11hiyohiyo
 

Similar to WARAI テスト技法ワークショップ vol.2 (12)

Visual Studio App Center Authの導入方法について
Visual Studio App CenterAuthの導入方法についてVisual Studio App CenterAuthの導入方法について
Visual Studio App Center Authの導入方法について
 
Web3の話をしよう! #8 (DAO体験編).pdf
Web3の話をしよう! #8 (DAO体験編).pdfWeb3の話をしよう! #8 (DAO体験編).pdf
Web3の話をしよう! #8 (DAO体験編).pdf
 
開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能
 
Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用
 
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
 
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~ くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
くらう道 オフライン道場 ~ Azure インフルエンサー養成講座 ~
 
AzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CDAzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CD
 
ソースコードを読んでみよう
ソースコードを読んでみようソースコードを読んでみよう
ソースコードを読んでみよう
 
Comcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTSComcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTS
 
Visual Studio App Centerの始め方
Visual Studio App Centerの始め方Visual Studio App Centerの始め方
Visual Studio App Centerの始め方
 
神戸電子専門学校 業界セミナー 20170422
神戸電子専門学校 業界セミナー 20170422神戸電子専門学校 業界セミナー 20170422
神戸電子専門学校 業界セミナー 20170422
 
20210828_win32_windows11
20210828_win32_windows1120210828_win32_windows11
20210828_win32_windows11
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

WARAI テスト技法ワークショップ vol.2

  • 2. 2021 WARAI(関西ソフトウェアテスト勉強会) 2 ◼ 発表者が公開NGとした資料や発言を、SNSなどで拡散しないようお願いいたします。 ◼ イベント内ではビジネスの勧誘にあたる行為は禁止しています。 参加者全員が楽しむイベントである主旨を理解した発言・行動をお願いします。 (誹謗中傷、マウントの取り合いなど) ◼ 勉強会中に自由に書き込める掲示板を用意しました。 Discord #テスト技法ワークショップ 招待リンク https://discord.gg/eczFHAB6 諸注意
  • 4. アイスブレイク (ice breaker) • 自己紹介 • 参加の動機 • 意気込み • 今興味を持っていること 4
  • 5. 2021 WARAI(関西ソフトウェアテスト勉強会) 5 ペアワイズテストの定義 ⑴ 組み合わせテスト (combinatorial testing): 事前に定義されたレベルのカバレッジを達成するために、 適切に組み合わせたテストのサブセットを識別する手段。 • ペアワイズテスト (pairwise testing) : ブラックボックステスト設計技法の一つ。 入力パラメータの各ペアを、設定可能な個々の組み合わせの全てで実行するためのテストケースを設計する。 • n ワイズテスト (n-wise testing): ブラックボックステスト設計技法の一つ。 n 個の入力パラメータの任意のセットを、設定可能な個々の組み合わせの全てで実行するためのテストを設計する。 • 直交表テスト (orthogonal array testing) : 直交表を使った変数のオールペア組み合わせテストの体系的な方法。 変数を全て組み合わせたときの数を、オールペア組み合わせでテストできるまでに減らす。 クラシフィケーションツリー法 (classification tree method): ブラックボックステスト設計技法の一つ。 クラシフィケーションツリーを使って入力ドメインや出力ドメインの代表値の組み合わせを設計し、テストケースを記 述する。 関連する用語の説明 (JSTQB ソフトウェアテスト標準用語集 より)
  • 6. 2021 WARAI(関西ソフトウェアテスト勉強会) 6 ペアワイズテストの定義 ⑵ • 可能な値を複数持つ複数の入力パラメーターを組み合わせてソフトウェアをテストしなければならず、 組み合わせ数が、許容される時間内にテスト可能な数よりも多く存在するときに使用する。 • 特定のパラメーター(変数または因子)とそのパラメーターの特定の値の組は、パラメーター - 値のペアと呼ばれる。 • ペアワイズテストでは、組み合わせの技法を使用して、 [各パラメーター - 値ペア] が 他の 各パラメーターの [パラメーター - 値ペア] それぞれに対して1回はテストをする。 (任意の 2つの異なるパラメーターのパラメーター - 値ペアの「オールペア」をテストする) • クラシフィケーションツリーはペアワイズテストと組み合わせて使用することが多い。 クラシフィケーションツリーは、パラメーターとそれらの値の組み合わせを視覚化できることで、 以下の情報を識別するのに役立つ。 * ペアワイズテスト技法で使用する入力 * 関心のある特定の組み合わせ(頻繁に使用する組み合わせ、欠陥の共通の発生源など) * 両立しない特定の組み合わせ⇒組み合わされた因子が相互に影響しないことを想定していない 影響を与える可能性が十分にあり、許容できる範囲で相互に影響するべきである。 * 変数間の論理的関係(例:変数 x が 1 の場合、変数 y が 2 になることはない) これらの関係を表すクラシフィケーションツリーを「フィーチャーモデル」と呼ぶ ペアワイズテストの説明 (JSTQB ATA シラバス(抜粋))
  • 7. 2021 WARAI(関西ソフトウェアテスト勉強会) 7 ペアワイズテストの定義 ⑶ パラメーター値に関してあまりに多くの組み合わせを持つことの以下のような問題について ① 複数の入力欄のある画面のように、とり得る値が複数存在するパラメーターが複数存在する。 ② システムによっては、いくつかの次元で設定可能なものがあり、その結果構成空間が大きくなる ⇒ ペアワイズテストにより、扱いやすくて実現可能な組み合わせのサブセットを識別することができる 値の数が非常に多いパラメーターでは、まず同値分割法や他の抽出の仕組みを各パラメーターに適用して、 各パラメーターの値の数を減らしてからペアワイズテストを適用して、 結果として得られる組み合わせのセットを減らすことができる。 パラメーターとその値をクラシフィケーションツリーに取り込むことがこの活動を支援する。 ペアワイズテストの適用 (JSTQB ATA シラバス(抜粋))
  • 8. 2021 WARAI(関西ソフトウェアテスト勉強会) 8 ペアワイズテストの定義 ⑶ これらの技法の主な制限は、少数のテストの結果がすべてのテストの結果を代表し、それらのテストが期待される使用 方法を表すと仮定することである。例えば、想定されていない相互作用が特定の変数間に存在する場合、その特定の組 み合わせをテストしない限り、その欠陥はこのテスト技法で検出されない可能性がある。 組み合わせテスト(ペアワイズテスト含む)は、 テストを論理的に削減するということが理解されづらく、技術を知らない関係者への説明が難しい。 そこで、経験に基づく研究の結果に言及することによってバランスをとる必要がある。 医療機器の領域の研究では、故障の 66%は単一の変数によって引き起こされており、97%は 1 つの変数または 2 つの 変数の相互作用のいずれかによって引き起こされていることが示されている。3 以上の変数による相互作用が存在する 場合、ペアワイズテストでシステム故障を検知できないことがあるというリスクが残る。 ペアワイズテストの制限/注意事項 (JSTQB ATA シラバス(抜粋)) パラメーターとそれぞれの値を識別するのが困難な場合がある。 このため、可能であればクラシフィケーションツリーの支援を受けて実施するべきである。 あるレベルのカバレッジを満たす最小の組み合わせのセットを見つけることは、手作業では困難である。 可能な限り小さい組み合わせのセットを見つけるために、ツールを使用する。
  • 9. 2021 WARAI(関西ソフトウェアテスト勉強会) 9 ペアワイズテストの定義 ⑶ ペアワイズカバレッジ 100%とするためには、任意の 2 つのパラメーターについて、 各値のすべてのペアを 1 つ以上の組み合わせに含める必要がある。 ペアワイズテストのカバレッジ (JSTQB ATA シラバス(抜粋)) ペアワイズテストで検出できる欠陥の種類 (JSTQB ATA シラバス(抜粋)) このテスト技法で見つかる最も一般的な欠陥のタイプは、 2 つのパラメーターの値の組み合わせに関連する欠陥である。 ※組み合わせテストの導入説明として使われていた事例 • NASAにおけるデータベースの欠陥329個を分析したところ、 全体の93%がシングルモードまたはダブルモードの設定の組合せで欠陥が発生 • Webブラウザではトリプルモードで95%の欠陥を検出 (ダブルモードでは76%)
  • 10. 2021 WARAI(関西ソフトウェアテスト勉強会) 10 組み合わせテストの種類 ◆ 有則 :組み合わせた結果、出力に影響を及ぼすもの ◆ 無則 :組み合わせた結果、出力に影響を及ぼさない(及ぼしてはいけない) ◆ 禁則 :組み合わせることができない制限、制約 組み合わせテスト(ペアワイズテスト、直交表テスト)における “組み合わせ”に種類があることを理解する。 それぞれのアプローチとして、 • 有則の組み合わせは範囲が狭いため、デシジョンテーブルやクラシフィケーションツリーを用いて、 論理関係やパラメータの同値を整理しながら進める。 • 無則の組み合わせは範囲が広くパラメータも多くなるため、組み合わせテストが適している ⇒ 範囲を広げ、より早く(絞ったテストケース数で)問題を見つけるため 組み合わせテスト=無則の組み合わせ、だけではない点に注意。 有則は全網羅が理想だが、組み合わせテストを用いることもある。
  • 11. 2021 WARAI(関西ソフトウェアテスト勉強会) 11 ペアワイズテスト生成ツール ペアワイズテストの生成ツールは数多く存在する(参照 www.pairwise.org)。 https://www.veriserve.co.jp/gihoz/ • クラウド型のテスト技法ツール • オンプレで実行できる PictMaster / PICT https://www.qbook.jp/info-qumias/
  • 12. 2021 WARAI(関西ソフトウェアテスト勉強会) 12 GIHOZのペアワイズテストの機能 生成方法 • デフォルト :これまでと同様の設定で組み合わせを生成 • ランダム生成:ランダム生成時のシード値を指定して、組み合わせを生成する デフォルトとは異なる組み合わせ生成結果を得たい場合に使用する • 最小の組み合わせを探索: 指定の試行回数の組み合わせ生成をランダムなシード値で繰り返し、 件数が最も少なかった組み合わせを生成結果として表示する 組み合わせの件数を少しでも減らしたいという場合に使用する オプション 組み合わせるパラメータ数(n因子間網羅)を1~5で設定できる 制約 • 特定の因子水準の場合に指定する因子水準を記載する 複数の場合はカンマで区切って書く • 否定文の場合は「#水準」で記載する
  • 13. 2021 WARAI(関西ソフトウェアテスト勉強会) 13 演習:Windowsの計算機をテストする Windows標準アクセサリの電卓ツールをペアワイズテストしよう ※検索バーで「電卓」を入力すると起動する 1. 電卓アプリのパラメータを抽出し、整理する 2. 電卓アプリのパラメータの制約を設定する 3. 電卓アプリのパラメータを2因子間で組み合わせる 4. 無則の組み合わせを考えてみる 「Windowsの設定が電卓に影響を与えていないことを確認する」 上記の組み合わせテストを設計せよ 電卓アプリ
  • 14. 2021 WARAI(関西ソフトウェアテスト勉強会) 14 演習:Windowsの計算機をテストする ~解答例① クラシフィケーションツリーを使用した電卓アプリのパラメータの抽出と整理 図:GIHOZによるクラシフィケーションツリー 表:生成結果
  • 15. 2021 WARAI(関西ソフトウェアテスト勉強会) 15 演習:Windowsの計算機をテストする ~解答例② 電卓アプリのパラメータの制約を設定する
  • 17. 2021 WARAI(関西ソフトウェアテスト勉強会) 17 ディスカッション  ペアワイズテストが活用されていない問題 ペアワイズテストはテスト技術の研修で必ずと言ってよいほど取り上げられるのに、 現場ではあまり使用されていない。  メリットに対する疑問 「テスト項目を大幅に削減できる」をメリットに挙げるが、 無則の組み合わせをテスト対象に含めているため、むしろ発散している感覚に陥る。  不具合は出るの? 無則の組み合わせは「不具合を出すためのテスト」というより 「不具合が出ないことを確認するため」のテストであるため、不具合の検出は少ない。 ⇒ 不具合を検出しないと、このテスト意味ある?論が持ち上がり、結局やらなくなる  実行者の目線から テストケース作成は容易だが、テスト実行、特に手動での実行ではルーチンワークになるため ミスが増えたり、モチベーションが低下しがち(心が折れそうになる) ⇒ 自動化が望ましい