境界値分析の「境界値」

境界値分析は同値分割法の延長である、という説明がよくされます。JSTQB FLシラバスでは以下記述があります。

境界値分析(BVA)は同値分割法の拡張である

パーティションの最小値および最大値(または最初の値と最後の値)が、境界値である

この説明は混乱を招く可能性があります。僕の理解では、パーティションの最小値と最大値が境界値、は厳密には正しくないです。

パーティションA: 0以上2未満

パーティションB: 2以上5未満

パーティションC: 5以上

(整数限定)

というパーティションがあった場合、2周辺の境界値は、2だと理解しています。もし上記JSTQBの記述をそのままとると、2周辺の境界値はAから見ると1、Bから見ると2、になります。でも、本当は2、です。この理解は、JSTQBシラバスからも参照している

Beizer, B. (1990) Software Testing Techniques (2e), Van Nostrand Reinhold: Boston MA

の記述内容からそう判断しました。今後の説明のために、JSTQBの記述を①、僕の理解を②とします。

この理解によってどんな影響があるかですが、3値の境界値分析をした場合の結果が変わります。2値は、実は同じ結果になります。まずは2値から説明します。引き続き2周辺の境界に着目します。

①の場合

Aから見ると、境界値1、外れた値2

Bから見ると、境界値2、外れた値1

結果、1と2がテスト値

②の場合

境界値2、外れた値1(境界値と、その境界値が属さないパーティションの値)

結果、1と2がテスト値

となります。よって、①と②で結果が一致します。続いて3値です。

①の場合

Aから見ると、境界値1、外れた値0と2

Bから見ると、境界値2、外れた値1と3

結果、0と1と2と3がテスト値

②の場合

境界値2、外れた値1と3

結果、1と2と3がテスト値

よって①と②で結果が異なります。①では結果的に4つの値がテスト値となってしまい、「3値」ではなくなります。②は3つの値がテスト値となり、また、JSTQBの3値の説明とも合致します。

というわけで、境界値は同値パーティションの端ではなく、境界上の値、だと理解するとよいと思います。

この記事が気に入ったらサポートをしてみませんか?