Anzeige
Anzeige

Más contenido relacionado

Presentaciones para ti(20)

Último(20)

Anzeige

ドメインテストとは

  1. ドメインテストとは 近江 久美⼦ 2017/05/16 1
  2. この資料をつくった理由 • JSTQBの勉強のため。 • 「onポイント」「offポイント」「inポイント」 という⾔葉を使わずにドメインテストを 説明してみたかったため。 – 書籍など他の資料ではよく使われているし、 理解してしまえば便利な⾔葉である。 – しかし、「onポイント」「offポイント」は 混乱しやすい⾔葉でもある。 • e.g. onは常に有効同値クラスじゃない? →NO 2
  3. ドメインテストとは • テスト設計技法のひとつ – テストケースを考えるときに使える技法 • 本によってはドメイン分析テストとも • 複数の変数(⼊⼒)を同時に扱う – 例:荷物の⼤きさ判定処理のテスト 縦 横 高さ 重さ 判定結果OK/ 判定結果NG 入力受付処理 判定処理 …複数の変数 3
  4. ドメインテストを使う場⾯ • ソフトウェアで何らかの範囲を扱うことがある – 20歳以上のみ受付可能 – 5cm以上、60cm以下は有効 • 範囲を定義すると、境界が⽣まれる – 「20歳」 – 「5cm」「60cm」 • 範囲を仕切る境界が想定どおりであることを 確認する場合に、ドメインテストが使える 5 6 … 59 60 61 6243… … 4
  5. ドメインテストを使う場⾯ • 数式で表現できる関係同⼠にある値、 連続した値を扱うときに向いている – そうでない場合でも使えるが、特にテストし たい⼊⼒すべてに数式の関係がない場合は、 効果は出にくい • 機能に対しても、プログラムの構造に対 しても適⽤できる – 例 if⽂の条件が複雑な数式で表現されてい る場合 5
  6. 例題で考えてみる • 架空の荷物判定処理の仕様 – 以下条件をすべて満たす荷物を、有効とする。 • 縦=10cm以上 • 横=30cm以上 • 縦+横=100cm以上 – 1cm単位とする • 変わる値(変数)=縦、横、縦+横 6
  7. 何を確認したいか? • 縦、横、縦+横それぞれの境界が仕様と合致 していることを確認したい つまり、 • 境界が仕様と異なっている問題が起きている 場合、その問題を検出したい – 例 縦=8cm以上の場合に有効と判定される実装 になっていた場合。 仕様(縦 =10cm以上)と異なっているので、問題として 検出したい。 7
  8. 0 20 40 60 80 100 120 0 20 40 60 80 100 120 縦 の 長 さ (cm) 横の長さ(cm) [有効な荷物] 図でかくと図でかくと 紺⾊の⻑丸で表現し た境界が仕様と合致 していることを、確 認したい ドメインテストで考 える前に… 疑問: 1変数ずつ確認すれば 必要な確認ができる のでは? 8
  9. 疑問:1変数ずつばらしてテストできる? • Q:縦、横、縦+横1変数ずつ個別に 確認すればよいのでは? • A:1変数ずつでは、うまく確認できない – 例 縦=10cmのとき • 横が25cmならば無効になるし、35cmなら有効になる。 縦の値だけでは結果が定まらない どうする? →ドメインテストで確認してみよう 9
  10. ドメインテストの⼿順 ① 対象とする範囲を特定する ② 範囲内/外を決める⼊⼒を特定する ③ 境界値分析をする ④ 組合せをつくる この⼿順で次ページから 例題についてドメインテストを考えてみる 10
  11. ⼿順①対象とする範囲を特定する テストで確認したいのは ”ある荷物が有効かどうか正しく判定されること” ↓ 「有効な荷物の範囲」を分析の対象とする。 • ほかに、例えば「存在しうる荷物か」、 つまり⻑さとして有効な値/無効な値 (数値以外、負の数、etc.)の判定が正しいかも 確認するケースが考えられるが、今回は対象外とする。 – 事前処理で⻑さとして無効な値は弾かれているもの とする。 11
  12. ⼿順②範囲内/外を決める⼊⼒を特定する 有効な荷物の範囲かどうか?を左右する ⼊⼒は、 縦 横 縦+横の合計 ↓ 縦/横/2辺の合計を分析対象とする 12
  13. ⼿順③境界値分析をする • 縦:9cmと10cm 同様に考えて… • 横:30cmと31cm • 縦+横:100cmと101cm 条件を満たさない範囲 条件を満たす範囲 11 12 …109… 条件を満たす境界値条件を満たさない境界値 13
  14. ⼿順④組合せをつくる 縦、横、縦+横の⻑さの境界値を使って 組み合わせをつくる。 • ポイント: – テストしたい値以外は、境界値「以外」の値とする。 • 1つの組合せでテストする(確認する)のは1変数だけにする • その他の変数は、境界値ではなく、同値クラスの中の代表値に する。 – 1つの組み合わせに、 条件を満たさない境界値は1つだけとする。 • 例 縦と横の⻑さが条件を満たさない組み合わせでテストをし て荷物が無効と判定された場合。 縦の⻑さの境界値が仕様通りかどうか 判断できない。 14
  15. ⼿順④組合せをつくる • できあがった組合せ 9 43 0 43 0 43 0 1 43 0 43 0 43 0 95 43 0 43 0 43 0 62 8 8 8 8 8 8 15
  16. ⾔葉の問題 • 前ページで、ドメインテストの⼿順説明 は終わり。 • しかし、本資料以外でドメインテストを 学ぶ場合に備えて知っておきたい⾔葉が ある。 次のページで解説してみる。 16
  17. onポイント/offポイント/inポイント • 書籍等では次の⾔葉を使って説明されることが 多い – onポイント – offポイント – inポイント • onポイントとoffポイントは混乱しやすい。 – 本資料では敢えて使わずに⼿順の説明を試みた。 – しかし知っている⼈同⼠なら、 これらの⾔葉を使う⽅が早く確実に理解できる、と思う。 • 次のページ以降で、それぞれの例を挙げて説明する。 – 特に、onポイントとoffポイントは、 同値分割をする条件(境界値を決定する条件)が 「以上」「未満」どちらなのかでより考え⽅が異なるので注意 17
  18. • 最⼩単位が1cmで、条件=10cm以上の場合 • 最⼩単位が1cmで、条件=10cm未満の場合 onポイント、offポイント 条件を満たす範囲 11 12 …109… 条件に指定された値 「onポイント」 条件に指定された値の隣 「offポイント」 条件を満たす範囲 9… 10 11 … 条件に指定された値 「onポイント」 条件に指定された値の隣 「offポイント」 18 12
  19. inポイント • 最⼩単位が1cmで、条件=10cm以上の場合 条件を満たす範囲 11 12 …109… onポイントとoffポイントいずれでもなく条件を満たす値 「inポイント」 19
  20. ドメインテストの⼿順はこう変わる onポイント/offポイント/inポイントを使って説明すると… ① 対象とする範囲を特定する ② 範囲内/外を決める⼊⼒を特定する ③ onポイント、offポイントと、inポイント の範囲を特定する ④ 組合せをつくる 1つの組合せにつき、 テストしたい変数はonポイントかoffポイント、 その他の変数はinポイントの値にする。 20
  21. 結果としてできる組合せ • ⾔葉を置き換えただけで、値は同じ 31 2 41 60 50 60 50 60 50 21
  22. まとめ • 本資料にかいたこと – ドメインテストの説明と⼿順を⽰した – onポイント、offポイント、inポイントについて 説明した • 本資料にかききれなかったこと – inポイントの値は組み合わせごとに変えるか否か • 本資料をかいた時点では、変える必要はないのではな いかと考えています • 気が向いたら、補⾜するかもしれません 22
  23. 参考⽂献 • ソフトウェアテスト技法ドリル―テスト設計の考 え⽅と実際 単⾏本 – 2010/10 – 秋⼭ 浩⼀ (著) • ソフトウェアテスト実践ワークブック – 2007/1/18 – レックス・ブラック (著), 成⽥ 光彰 (翻訳) • はじめて学ぶソフトウェアのテスト技法 – 2005/11/3 – リー・コープランド (著), 宗 雅彦 (翻訳) • わりとディープ?同値分割↔境界値分析 – https://www.slideshare.net/scarletplover/ss- 56911349 23
Anzeige