Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

©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 それぞれの条件式ごとに考慮する

Slide 18

Slide 18 text

©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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

©2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 問題 ① の解答例 GIHOZ の境界値分析を使うと以下のように数直線からテストケースを作成できる

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

©2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 【参考】GIHOZ の境界値分析における、代表値の自動生成ルール 同値パーティションに上限と下限が両方ある場合は、中間付近の値 ※ 下図の ① が該当 同値パーティションに上限・下限のどちらかしか存在しない場合は、 「下限値」 + 「値の増減幅の10 倍」 ※ 下図の ② が該当 または 「上限値」 - 「値の増減幅の10 倍」 ※ 下図の ③ が該当

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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