

ソフトウェアのウォータフォール開発における
結合テストについて質問させていただきます。
私は、ソフトウェアテストの経験が浅く、テストにおける納期・品質・コスト・責任分担について、いろいろと悩んでおります。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelにて、ある固定値から連番を振りたいが、上限値が異なる連番を振る処理を複数回行いたい場合 6 2022/10/22 11:01
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Java Java 南京錠 2 2023/02/04 11:46
- 数学 数学の問題です。 問1: ある(人数の非常に多い)集団から無作為に6名を選んで身長を測ったところ、そ 2 2022/12/09 12:03
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Java Java モンスターブリーダー 1 2023/02/05 09:44
- その他(Microsoft Office) スプレッドシートについて。 1+1=2 のように表記したいのですが、AとBに入力した数値が合計に反映 2 2022/11/05 11:18
- Ruby プログラミング 3 2023/06/09 14:30
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
閉店確率を予測するツールの開発
-
DVDstylerへの書き込み失敗につ...
-
クローンソフトで、Acronis Tru...
-
どのようにして開発したロボッ...
-
ダイソーのiPhoneデータ転送対...
-
シフト作成のツール、ソフト教...
-
Windows11 24H2 + VirtualBox
-
AIがデマ情報を流して事件化し...
-
VisualStudio のデータブレーク...
-
excel関数 変動する休憩時間等...
-
ハードウェアの問題
-
PCでのAPEXで何度もアップデー...
-
zoomで人知れず録画するには、...
-
整形外科で自分のレントゲン写...
-
htmlを拡張子phpにすると表示さ...
-
サブネットマスクが255.255.255...
-
taptapててどばをダウンロード...
-
スケジュール管理(?)のフリー...
-
実現してほしいサブスクリプション
-
こういった文章をまとめるには...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows11 24H2 + VirtualBox
-
どのようにして開発したロボッ...
-
ダイソーのiPhoneデータ転送対...
-
クローンソフトで、Acronis Tru...
-
同じマイクロソフトアカウント...
-
DVDstylerへの書き込み失敗につ...
-
閉店確率を予測するツールの開発
-
FileVisorは今でも使えますか?
-
シフト作成のツール、ソフト教...
-
AIがデマ情報を流して事件化し...
-
パワポ リボンとツールバーに開...
-
PCでのAPEXで何度もアップデー...
-
VisualStudio のデータブレーク...
-
社内でのETCカードの管理方法で...
-
excel関数 変動する休憩時間等...
-
ソフトインストール
-
Windows 10 アップデート後にof...
-
サブネットマスクが255.255.255...
-
こういった文章をまとめるには...
-
ソフトウエアクローンがあるの...
おすすめ情報