• Kha Hang

【ブラックボックステスト技法】同値分割法と境界値分析とは?


こんにちは!

私たちはJPQのQAチームのKhaとHangと申します。

はじめに

Japan Qualityに入社した数年前、私たちのIT知識はゼロレベルでしたが、研修や先輩達からの貴重な指導のおかげで、QAエンジニアとしての基本の知識を得ることができました。

テスターとして、テスト技術を把握するのはとても大切だと思います。各テスト技法を効果的に活用することで、バグを発見しやすい効率的なテスト設計をすることができます。

このBlogでは、テスト設計で一般的に使う2つのテスト技術について話したいと思います。

それは同値分割と境界値分析です。この2つのテスト技術を活用することで効果的にテストを行うことができ、ソフトウェアの品質を担保することへつながります。

皆さん、特にテスト技術について分からない人、一緒に読んでみましょう!!!


境界値分析(Boundary Testing)


1.「境界値分析」とは?


境界値分析とはブラックボックステスト技法の一つであり、境界となる値(同値クラスの端) とその前後の値に対してテストする技法です。

実際に、境界値でバグが多く発見されますが、境界値の隣にもバグが存在することが多くあります。

基本的に、テストケースは以下の規則に沿って選択されます。

  • 境界値の1つ下

  • 最小の境界値

  • 最大の境界値

  • 境界値の1つ上



2.詳しく理解する為に課題を実施してみましょう!


ダナンからホイアンまでのバスのチケット料金システム(※料金は仮定です):

・0~5才以下:無料

・6~19才以下:8万ドン

・20~60才以下:10万ドン

・61~120才以下:8万ドン

上記以外の場合はエラーが発生します。


境界値分析のテスト技法に沿って下記のテストケースを作ることができます。




テストケース

期待値

-1才を入力する

エラーが発生すること

0才を入力する

料金=無料

5才を入力する

料金=無料

6才を入力する

料金=8万ドン

19才を入力する

料金=8万ドン

20才を入力する

料金=10万ドン

60才を入力する

料金=10万ドン

61才を入力する

料金=8万ドン

120才を入力する

料金=8万ドン

121才を入力する

エラーが発生すること


3.境界値分析のメリット、デメリットについて

  • メリット:

同値クラス内の全部の値をテストするのではなく、境界値分析のテスト技法は入力値の境界値を主にテストします。そのため、境界付近に欠陥が見つかるテストケースを効率的に作成できます。

・テスト設計及びテスト実施が効率的に行えます。

・効果的に境界値のバグを見つけることができます


  • デメリット:

本技法は単一の入力値に対して、出力仕様が決まっているようなシステムには活用しやすいと思いますが、複数の入力値に対して複雑に出力仕様が違うようなシステムのテストでは、使用しにくい場合があります。(そのような場合にはデシジョンテーブルを使った技法の方がおすすめ)


同値分割法(Equivalence Partitioning Testing)


1.同値分割法とは?


同値分割法は、ブラックボックステスト技法の一つであり、入力値により同じ処理をするグループに分割し、グループ内で代表的な入力値を選択しテストする技法です。


2.同値分割法について詳しく調べてみよう!


※同値分割した各グループのことを「同値クラス」といいます。同値クラスには有効同値クラス及び無効同値クラスに分類できます。

  • 有効同値クラス: システムへ受け入れられるデータ

  • 無効同値クラス: システムへ拒否されるデータ

上記をよく理解できるよう簡単な課題を実施してみましょう!


課題: 

遊園地の入場券を販売するWEBページで身長入力欄に身長(cm)を入力すると、入場券の値段を確認できるシステムがあるとします。仕様は以下の通り。

※身長(cm)として入力できる整数は40~200

  • 身長(cm)を40~99で入力すると、「無料」が表示されます。

  • 身長(cm)を100~140で入力すると、「150000VND」が表示されます。

  • 身長(cm)を141~200で入力すると、「300000VND」が表示されます。

  • 身長(cm)を40~200以外で入力すると、エラーメッセージが表示されます。

※英字・マイナス符号を除く記号文字・小数点付き数字等は除外して、整数のみで入力可能。



※各同値クラスから代表的な入力値を選択しテストします。もし同値クラス内の任意の値の結果が有効だったら、同値クラス内の他の値も”有効”であると判断します。無効の場合も同様に、同値クラス内の任意の値が”無効”だったら、同値クラス内の他の値も”無効”であると判断します。

下記のようなテストケースとなります。

テストケース

入力値

1

20

エラーメッセージ

2

60

無料

3

120

​150000VND

4

170

300000VND

5

205

エラーメッセージ



3.同値分割法のメリット、デメリットについて

  • メリット: 

本技法では入力条件を同じグループに分割し、同値クラスごとに代表値だけをテストしたからこそ、テストケースを著しく減らしたり、時間を節約できるようになります。

  • デメリット:

各同値クラスでは中間の値をテストした場合、境界値でバグが潜む可能性があります。



同値分割法と境界値分析の相違点


同値分割法: 入力データをグルーピングし、グループ内で代表となる値を選択し、テストすること

境界値分析: 同値クラス結果に基づいて、境界値を選択し、テストすること


→違いがわかりやすいように図で表してみました。


例: ある店舗でバーゲンセールを開催します。WEB画面にて日付入力欄があります。入力できる値が整数のみで、20~30までとなります。

  • 20~25を入力した場合、50%OFFのクーポンを取得できます。

  • 26~30を入力した場合、70%OFFのクーポンを取得できます。

  • 20~30以外を入力した場合、エラーメッセージが表示されます。


※同値クラスと境界値 (同値クラスの代表値は一例です)





同値分割と境界値分析の関係


同値分割と境界値分析は関係が深いテスト技法です。

境界値分析では、同値分割の結果を使います。

いテスト対象範囲から同値クラスに分割し、各々の同値クラスから代表値を選び出す。この代表値を選ぶ際、境界となる値とその前後の値を選ぶ境界値分析のテスト技術を用います。


ここで、同値分割と境界値分析を併用することは

・テストケースの数量が減少します。分割されたテストケースがうまく管理できます。

・効果的に欠陥を見つけやすいです。

つまり、大量の入力値があるようなテストの場合、ポイントを絞ってテストを行うことができます。


終わりに


今回はブラックボックステスト技法での同値分割法と境界値分析についてお話ししました。

これらの技術をつかうことで効率の良いテストケースを作成し、効果的なテストが実施できます。

この記事がテストを担当しているエンジニアの方、テスト未経験の方の役に立てば幸いです。

また、ブラックボックステスト技法として上記の技法以外でも、デシジョンテーブルテスト(Decision Tables)、エラー推測(Error Guessing)などもあるのでまた別の記事でご紹介いたします。テスト設計には沢山の技法があるので、適材適所で効果的な技術を選択することが大切だと考えています。皆さん、良いテスターを目指してがんばりましょう!

最後まで読んでいただき、ありがとうございました!


※参照元


Japan Quality Co.,Ltdはベトナムのダナンにオフショア拠点を置いているソフトウェアテスト専門会社です。

オフショアでの開発を検討されている方、テストのアウトソースを検討されている方、まずはお問合せ下さい!現地の情報を共有させていただきます。







39回の閲覧

最新記事

すべて表示