0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめての記事投稿

テスト技法の基礎を学んだ話(同値分割法・境界値分析 編)

Posted at

概要

テスト技法について基礎的な部分を学ぶ機会があったので
基本的な技法について簡単にまとめてみた。
JSTQB FLの内容なので出てくる用語もそれに準じた内容となります。
また、動的テストが主な内容となります。

同値分割法

手法

同等に処理されると想定したデータすべてを同じパーティション(同値クラスとも呼ぶ)に
振り分け、各パーティションから少なくとも1個の値を選んでテストする。
なお、有効な値を有効同値パーティション、無効な値を無効同値パーティションと呼ぶ

あるメソッド(仕様)の入力値を条件分岐ごとにグルーピングして、そのうち何点か確認すればいいよね的な手法

例えばこんなコードがあった場合、(ホワイトボックステストの話になってしまいますが…)

test.c
int foo(int a) {
    if(-5 < a) {
        return -1
    } else if((0 < a) && (a < 5)) {
        return 1
    } 
    // 仮想の異常通知処理
    Error();
}

同値パーティションは以下の通りに分割されます。

入力範囲 パーティション
a <= -5 無効同値パーティション1
-5 < a <=0 有効同値パーティション1
0 < a < 5 有効同値パーティション2
5 <= a 無効同値パーティション2

数直線で出すとこのような感じ
qiita_1.png

テストケースはこのパーティションから代表値を選ぶ手法

入力値 テストケースの意図 結果
-7 無効同値パーティション1 代表値 異常通知
-3 有効同値パーティション1 代表値 -1
3 有効同値パーティション2 代表値 1
7 無効同値パーティション2 代表値 異常通知

メリット

やるべきテストケースを減らせる
(パーティションごとの代表値を選択するため)

注意点

イレギュラーな故障については見逃しやすい
(入力が2つ以上の場合にある特定のパターンの組み合わせでのみ出る故障など)

境界値分析

手法

同値分割法とセットで使う、各パーティションの境界部分についてテストする手法
さっきの例で行くと以下の通り
qiita_1.png

入力値 テストケースの意図 結果
-5 無効同値パーティション1 上限値 異常通知
-4 有効同値パーティション1 下限値 -1
0 有効同値パーティション1 上限値 -1
1 有効同値パーティション2 下限値 1
4 有効同値パーティション2 上限値 1
5 無効同値パーティション2 下限値 異常通知

メリット

故障の発見をしやすい
(エラーしやすい点を選んでテストするため )

注意点

実装の仕方によっては境界値分析でも網羅できていない可能性がある。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?