$30 off During Our Annual Pro Sale. View Details »

【S2】明日から使えるテスト技法勉強会_6_境界値分析&ドメイン分析

 【S2】明日から使えるテスト技法勉強会_6_境界値分析&ドメイン分析

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

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

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

GIHOZ SUPPORT TEAM

March 15, 2023
Tweet

More Decks by GIHOZ SUPPORT TEAM

Other Decks in Education

Transcript

  1. View Slide

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

    View Slide

  3. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    アジェンダ
    GIHOZ
    について
    境界値分析・ドメイン分析の解説
    GIHOZ
    を使った境界値分析・ドメイン分析のハンズオン
    おわりに

    View Slide

  4. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析・ドメイン分析の解説

    View Slide

  5. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    同値分割法とは
    すべての入力をテストするのは難しいので、入力される可能性のある値をグループ化
    して、それぞれのグループから代表値となる値を選びテストする方法
    同値分割したときにできる同値なグループのことを同値パーティションと呼ぶ
    (同値クラスと呼ばれることもある)
    有効な値を取るパーティションを有効同値パーティション
    無効な値を取るパーティションのことを無効同値パーティションと呼ぶ
    同値分割パーティションの境界に対して境界値分析していく

    View Slide

  6. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析とは
    何かしらの値に境界が存在する場合に、境界付近を狙うテストケースを作成する技法
    仕様の解釈の誤り(
    「以上」「より大きい」、「以下」「未満」といった言葉の解釈の誤りなど)
    が起きやすい
    境界付近では、人間が間違いを犯しやすく、
    その結果として不具合が埋め込まれることが多い
    境界値分析では、境界の内側と外側の両方をカバーするようにテストケースを
    作成する
    コーディングのミス(>=
    と>
    、<=
    と<
    といった比較演算子のミスなど)
    が起きやすい

    View Slide

  7. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析・ドメイン分析で使う用語
    定義
    On
    ポイント:
    仕様で指定されている境界上の値
    Off
    ポイント:On
    ポイントに隣接しつつ、境界の反対側の領域(同値パーティション)に属する値
    テスト対象にOff
    ポイントの値を入力すると、On
    ポイントを入力したときとは異なる動作をする
    In
    ポイント:On
    ポイント/Off
    ポイント以外の、有効な値

    よくある間違い:On
    ポイントであっても、必ず有効同値パーティションではない

    View Slide

  8. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析でのテストケースの作成方法
    Beizer
    の方法とJorgensen
    の方法という2つの方法がある
    Jorgensen
    の方法では、On
    ポイントの前後を加えた3
    つのポイントをテストケースとする
    Beizer
    の方法では、On
    ポイントとOff
    ポイントをテストケースにする
    >=
    を>
    の誤り、>
    を>=
    の誤り
    <=
    を<
    の誤り、<
    を<=
    の誤り
    を見つけることができる
    Beizer
    の方法に加えて、==
    に書き間違えていた方法を見つけ
    ることができる
    間違えやすい 間違えにくい
    Jorgensen
    の方法
    Beizer
    の方法
    1
    つのon
    ポイントごとに2つ選ぶ
    見つけることのできるバグ
    テストデータの選択ミス
    1
    つのon
    ポイントごとに3つ選ぶ
    テストケース数
    ※Beizer
    氏は、「<=
    」や「>=
    」を「==
    」に書き間違えたケースを見つけたい場合は、
     in
    ポイントを1
    つ追加しなさいと、言っている。

    View Slide

  9. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析の例:
    パスワード入力欄の入力文字数
    仕様:パスワードは、8
    文字以上12
    文字以下であれば入力可能です
    Beizer
    の方法で、境界値分析を行いテストケースを作成しなさい

    View Slide

  10. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析の例:
    パスワード入力欄の入力文字数
    仕様:パスワードは、8
    文字以上12
    文字以下であれば入力可能です
    8
    文字以上
    On
    ポイント: 8
    Off
    ポイント: 7
    In
    ポイント:10
    12
    文字以下
    On
    ポイント: 12
    Off
    ポイント: 13
    In
    ポイント: 10

    View Slide

  11. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析の例:
    パスワード入力欄の入力文字数
    仕様を図で整理して、境界値分析でテストすべき値を検討すると以下のようになる
    暗黙の境界値として0
    もある

    View Slide

  12. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    Jorgensen
    の方法の場合

    View Slide

  13. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    境界値分析の注意点
    以下のように個数1
    つずつに対して条件判定を行っていた場合、0
    、1
    、2
    、・・・と
    すべての値をテストする必要がある
    2
    値だけでは、「==
    」となっている箇所を検出できない
    if (
    個数 == 0) {
    //0
    個における処理
    } else if (
    個数 == 1) {
    //
    1個における処理
    } else if (
    個数 == 2) {
    //2
    個における処理
    }



    } else if (
    個数 == n) {
    //n
    個における処理
    }

    View Slide

  14. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    ドメイン分析とは
    複数の関連する変数に対する境界値を同時にテストする方法
    通常の境界値分析は「一次元の境界値分析」、ドメイン分析は「多次元の境界値分析」というイメージ
    ISTQB
    や国際規格でのドメイン分析の取り扱い
    ドメイン分析が紹介されている書籍
    一次元=
    直線
    多次元=
    平面や立体や、4
    次元以上の領域
    ISTQB:
    用語集に記載なし
    ISO/IEC/IEEE29119-4:
    テスト技法として記載なし。
    ただし、「ドメイン分析は同値分割と境界値分析の組み合わせとして分類される」という一文のみ記載がある
    『実践的プログラムテスト入門』 ボーリス・バイザー著
    『はじめて学ぶソフトウェアテストの技法』 リー・コープランド著
    『ソフトウェアテスト技法ドリル』 秋山浩一著

    View Slide

  15. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    ドメイン分析のテストケースの作成方法
    諸説あるようだが、Binder
    が提唱した「ドメイン分析テストマトリクス」を作成するのが分かりやすい
    下表のように各変数に対してOn
    ポイント・Off
    ポイントを指定し、残りの変数はIn
    ポイントを指定する
    http://www.jasst.jp/archives/jasst11t/pdf/s2-​
    1.pdf
    より引用

    View Slide

  16. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    ドメイン分析の例:
    試験と実習の点数に応じた合否判定
    テスト対象の仕様は以下の通りです
    合計点に応じた判定結果の表示が正しいか確認するためのテストケースをドメイン分析を用いて
    作成してください
    試験の点数は0~75
    点、実習の点数は0~25
    点の範囲で入力可能とし、それ以外は入力できない
    合計点が80
    点以上の場合は「合格」、それ以外は「不合格」と判定結果を表示する

    View Slide

  17. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    ドメイン分析の例:
    試験と実習の点数に応じた合否判定
    テスト対象の仕様は以下の通りです
    試験の点数は0~75
    点、実習の点数は0~25
    点の範囲で入力可能とし、それ以外は入力できない
    合計点が80
    点以上の場合は「合格」、それ以外は「不合格」と判定結果を表示する
    0<=
    試験の点数 <= 75
    0<=
    実習の点数 <= 25
    80 <=
    合計点
    合計点 =
    試験の点数+
    実習の点数
    On
    ポイント: 0, 75 Off
    ポイント: -1, 76
    On
    ポイント: 0, 25 Off
    ポイント: -1, 26
    On
    ポイント: 80 Off
    ポイント: 79
    それぞれの条件式ごとに考慮する

    View Slide

  18. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    先ほどの例でのドメインテストマトリクス
    まず、各変数に対してOn
    ポイント・Off
    ポイントの値を入力する
    0<=
    試験の点数 <= 75
    0<=
    実習の点数 <= 25
    80 <=
    合計点
    On
    ポイント: 0, 75 Off
    ポイント: -1, 76
    On
    ポイント: 0, 25 Off
    ポイント: -1, 26
    On
    ポイント: 80 Off
    ポイント: 79

    View Slide

  19. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    先ほどの例でのドメインテストマトリクス
    次に、In
    ポイントの値を入力して、期待結果を入力する

    View Slide

  20. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    ドメインテストマトリクスを使う場合の注意点
    In
    ポイントの選び方によって、テストできる領域が変わる
    合格の領域(
    ピンク色の三角形)
    の境界をすべてテストするには、適切にIn
    ポイントを選ぶ必要がある

    View Slide

  21. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    その他のドメイン分析のやり方
    「境界の線の傾きが間違っている」などの不具合を検出できるように、On
    ポイントを複数選ぶという
    考え方もある
    その場合、2
    次元(2
    変数)
    では、境界の線1
    本に対して2
    個のOn
    ポイントと1
    個のOff
    ポイントを選ぶ。
    N
    次元では、境界1
    つに対してN
    個のOn
    ポイントと1
    個のOff
    ポイントを選ぶ →
    「N×1
    法」と呼ぶ

    View Slide

  22. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    ドメイン分析の例:
    試験と実習の点数に応じた合否判定
    境界の線上の値(
    黒丸)
    がOn
    ポイント、その値に隣接し境界の反対側にある値(
    白丸)
    がOff
    ポイント
    緑色の線=
    試験の点数の境界、青色の線=
    実習の点数の境界、赤色の線=
    合計点の境界

    View Slide

  23. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    について

    View Slide

  24. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    のコンセプト
    『GIHOZ
    』は、ベリサーブが開発しているテスト技法ツールです

    View Slide

  25. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    を使うには
    検索&
    アカウント登録(
    無料)
    GIHOZ
    名前の由来
    テスト技法が集まっている →
     技法s
    (複数形)→
     ギホーズ → GIHOZ

    View Slide

  26. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    で利用可能なテスト技法

    View Slide

  27. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    を使った境界値分析・ドメイン分析のハンズオン

    View Slide

  28. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    の境界値分析の使い方
    GIHOZ
    には「ドメイン分析」はありませんが、
    境界値分析の画面でドメイン分析テストマトリクスと
    同等のテストケースを作成できるので、
    この勉強会では境界値分析の使い方を紹介します
    変数を追加する(数直線を作る)
    数直線に境界値を配置する
    同値パーティション名を入力する、有効・無効を設定する(任意)
    同値パーティション一覧を生成する
    テストケースを生成する
    1.
    2.
    3.
    4.
    5.
    GIHOZ
    での境界値分析のやり方

    View Slide

  29. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    の境界値分析
    GIHOZ
    では数値の境界値のみ分析可能
    同値分割・境界値分析のテストケースを生成可能。ただし、2
    値式のみ。

    View Slide

  30. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZ
    の境界値分析でのOn
    ポイントとOff
    ポイント
    On
    ポイント・Off
    ポイントという用語は使っていないが、数直線上の数値の背景色で区別している

    View Slide

  31. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    問題
    ①:
    境界値分析
    テスト対象の仕様は以下の通りです
    試験の点数に応じた判定結果の表示が正しいか確認するためのテストケースを、境界値分析を用いて
    作成してください
    試験の点数は0~75
    点の範囲で入力可能とし、それ以外は入力できない
    試験の点数が60
    点以上の場合は「合格」、それ以外は「不合格」と判定結果を表示する

    View Slide

  32. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    問題

    の解答例
    GIHOZ
    の境界値分析を使うと以下のように数直線からテストケースを作成できる

    View Slide

  33. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    問題
    ②:
    ドメイン分析
    テスト対象の仕様は以下の通りです
    合計点に応じた判定結果が正しいか確認するためのテストケースを、Binder
    のドメイン分析テストマトリクスを
    用いて作成してください
    試験の点数は0~75
    点、実習の点数は0~25
    点の範囲で入力可能とし、それ以外は入力できない
    合計点が80
    点以上の場合は「合格」、それ以外は「不合格」と判定結果を表示する
    ※GIHOZ
    にはドメイン分析テストマトリクスを作成する機能はありませんが、境界値分析の画面で同等のテストケースを作成することができます。
    GIHOZ
    をどのように使ったらドメイン分析テストマトリクス相当のテストケースを作ることができるかも考えてみてください。

    View Slide

  34. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    【参考】GIHOZ
    の境界値分析における、代表値の自動生成ルール
    同値パーティションに上限と下限が両方ある場合は、中間付近の値 ※
    下図の

    が該当
    同値パーティションに上限・下限のどちらかしか存在しない場合は、
    「下限値」 +
    「値の増減幅の10
    倍」 ※
    下図の

    が該当
    または 「上限値」 -
    「値の増減幅の10
    倍」 ※
    下図の

    が該当

    View Slide

  35. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    ドメインテストマトリクスとGIHOZ
    で作成したテストケース
    同等のテストケース(
    今回の例だと10
    件分)
    となっている

    View Slide

  36. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    おわりに

    View Slide

  37. ©2023 VeriServe Corporation
    会社名・製品名・サービス名は、各社の登録商標または商標です。
    まとめ
    境界値分析・ドメイン分析について解説&
    ハンズオンを行いました
    GIHOZ
    を使って境界値分析・ドメイン分析の理解を深めてもらえると嬉しいです
    境界値にはバグが潜んでいる可能性が高いので、境界値をきちんとテストする必要がある
    変数が1
    次元の場合は境界値分析、2
    次元以上の場合はドメイン分析を使う
    ドメイン分析を行う際は、Binder
    のドメインテストマトリクスを作る方法がある
    GIHOZ
    の境界値分析を使って、ドメインテストマトリクス相当のテストケースを作成することができる

    View Slide

  38. ©2023 VeriServe Corporation
     会社名・製品名・サービス名は、各社の登録商標または商標です。
    ご参加いただきありがとうございました。
    Thank you for your time today.
    Q
    &A
    へ行く

    View Slide