

ソフトウェアのウォータフォール開発における
結合テストについて質問させていただきます。
私は、ソフトウェアテストの経験が浅く、テストにおける納期・品質・コスト・責任分担について、いろいろと悩んでおります。
1つの例として、ある処理をコンボボックスで指定した回数 (2回から10回まで選択可能) 繰り返すプログラムをブラックボックステストしようとしています。
(出力されるデータは、「繰り返し回数」個のレコードが含まれるファイルになります。)
この場合のテストケースとしては、任意の「繰り返し回数」を1つ代表値として選択して、その回数処理が行われていることを1度確認すれば良いと考えているのですが、正しいでしょうか。
「繰り返し回数」 という入力値は、数値が違っていても同じグループ (同値グループ) の値であり、決められた範囲の有効な数値しか入力できないため、たとえば、5を代表値として選択してテストするだけで、すべての場合をテストしたと言えるのではないかと考えています。
テストケースとして、2回と 10回の2パターンをテストするものを良く見るのですが、それはどういった理由によるものなのでしょうか?
--
上記の場合に加えて、
出力データは「繰り返し回数」 3レコード毎に、改ページをして出力するという条件があった場合の考え方について質問いたします。
テストケースは、
単一ページ出力する「繰り返し回数」:2,3
複数ページ出力する「繰り返し回数」:4,5,6,7,8,9,10
のグループに分けて考え、任意の代表値を2パターンテストすればよい
という考え方で正しいでしょうか。
--
ご教示いただければ、大変助かります。どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ブラックボックステストの手法としては、限界値分析(境界値分析)と同値分割があります。
ご質問のケースでは、1,2や10,11をテストするのが限界値分析で、4とか5をテストするのが同値分割です。これを詳しいことを説明したサイトは多数ありますので、まずは検索して勉強することをおすすめします。そうすれば、5だけテストするというのは、テストケースとして不十分であることが理解できるでしょう。
例えば、変数aが2以上10以下なら正常処理をして、そうでなければエラー処理とするプログラムを書いたとします。C言語なら、
if ( a >= 2 && a <= 10) {
正常処理;
} else {
エラー処理;
}
という感じになります。
もし、プログラマーがプログラムの仕様を勘違いして、
if ( a > 2 && a < 10) {
正常処理;
} else {
エラー処理;
}
とコーディングした場合を考えてください。a = 5のときは正常処理に行きますが、a = 2 や a = 10 を入力するとエラー処理に行ってしまいます。a >= 2 とすべきところを、a > 2 と書いてしまうようなミスは非常に多いです。だから、a = 2 のときに想定した動作をするかどうか、テストで確認する必要があります。
なおコンボボックスではなく、ドロップダウンリストだと思います。コンボボックスは、リストから値を選ぶこともできるし、リストにない任意の値を入力することもできるものです。
丁寧な回答をいただき、ありがとうございます。
--
まず、コンボボックスはご指摘のとおり、ドロップダウンリストでした。失礼しました。
--
「現場で使える ソフトウェアテスト」という本の、網羅的なテストケースの造り方の部分を参考にして、5だけのテストという考えを持っていました。
ソースコードの例を考えてみて、なぜ、テストケースの作成者が境界値分析を意識したテストケースを作成したか理解できた気がします。
つまり、単体テストレベルで確認されているべきことが、結合テストレベルまで見落とされた場合に対応するためです。現実的に、すべてのコードを単体テストできない場合もあると思うため、そういう考え方があるのだと思います。
単体レベルであれば、1ケーステストするだけで済むことも、結合レベルではすべての入力条件を組み合わせてテストケースを作るため、膨大な量に達すると思います。
単体テストは開発者が行う場合が多いでしょうが、結合テストは別の人や会社が行う場合もあります。スケジュールも厳しいです。
最終的な製品の品質を保証するためにどうしたらいいか、今後勉強していきたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows11 24H2 + VirtualBox
-
なぜ,こう,何もかもが値上げ...
-
社内でのETCカードの管理方法で...
-
閉店確率を予測するツールの開発
-
ダイソーのiPhoneデータ転送対...
-
クローンソフトで、Acronis Tru...
-
同じマイクロソフトアカウント...
-
パワポ リボンとツールバーに開...
-
DVDstylerへの書き込み失敗につ...
-
AIがデマ情報を流して事件化し...
-
300GBを500GBへとクローンした...
-
AIを勉強するにはどうしたらい...
-
googelスプレッドシートをダウ...
-
VisualStudio のデータブレーク...
-
プロセッシングでこの国旗を作...
-
ソフトインストール
-
Windows 10 アップデート後にof...
-
FileVisorは今でも使えますか?
-
どのようにして開発したロボッ...
-
シフト作成のツール、ソフト教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テストケースの作成方法
-
ネットワークシステムのテスト
-
ブラックボックステストの内容...
-
開発テストの種類
-
ソフト開発で必要なテストを教...
-
【条件付き書式】シートの中で...
-
「H/W」,[S/W」,「N...
-
HDDの交換?
-
縦横比率を維持してスクリーン...
-
gmailをタスクバーに
-
PCによってエクセル関数が出...
-
VT-dの有無で何が変わる?
-
BUFFALOの エアナビゲータって ...
-
ツールとアプリの違い
-
先日、Windows11のアップデート...
-
タスクスケジュールの継続時間
-
受動的な人はいじめられやすい...
-
Gimpが商用利用OKであることの理由
-
pdfファイルにAcrobatで入力し...
-
解約したあとのスマホなのです...
おすすめ情報