JSTQB教科書の問題も解いてみました(追補版)

dentakurou2008-08-25

JSTQB Foundationの参考書「ソフトウェアテストの基礎―ISTQBシラバス準拠」の演習問題を解いてみた勢いで、「JSTQB教科書 JSTQB認定テスト技術者 Foundation Level試験」の演習問題も解いてみました。正誤表というほどのことは無いのですが、問題の作り手として見た時に、問に疑問符の残るものがたくさんあったので書き出してみます。
 
P.31 問題1
選択肢2の"テスト実行の前後に存在するすべての行為"の"前後"がどこまでを指すのかによって、行為がぜんぜん違ってきます。たとえば設計とかも前と言えなくはないですし。。。
 
P36〜37 説明
原則6 テストは条件次第の説明がシラバスの誤訳をベースに書かれているので「24時間稼働しなければならないシステムのテストでは〜」「一方、eコマース(電子商取引)のシステムならば」の対比がしっくりしません。eコマースはたいてい24時間稼働です。
 
P77 問題1
「V字モデルのテストレベルに含まれないものは次のうちどれか。」という問ですが、ISO12207などの規格なり、どこで定められたV字モデルか言っていないので問題として今一歩です。
 
P86 図2.4
このページで平たく記述されたV字モデルもかわっていて、要求定義⇒要件定義⇒基本設計⇒詳細設計とすすんでいきます。P71の図2.1とも異なります。せめて書籍内で統一的なリファレンスにしたほうが良いと思います。
 
P148 問2
解説で「変数の初期値の誤りはツールによる静的解析で検出することはできません」とあるのですが、初期化していない、つまりデフォルト値(nullやゼロ)のまま実行されることは、静的解析ツールやjavaコンパイラでも検出できます。"誤りの可能性"を検出できるとでもいいましょうか。ちょっと勘違いしそうでした。
 
P183 問1
選択肢1の「同値クラス内の最大、最小値と隣接する同値クラス外の値の計4つを選択する」とあるのですが、同値クラス外は、隣接する他の同値クラスなので、選択肢3でも同じことを意味しているようにも思えました。
 
P265 問1
テストアイテムはシステム名称とバージョンが記載されていれば、記載されていることになるという解説ですが、テストアイテムがシステムでない限りは、そう言い切れないと思います。
 
P266 問2
インシデントレポートの作成目的として、いろいろと二次的なことが書かれているのですが、P261に書かれている、"発生したインシデントを報告するため"ということが第一の目的なので、まず解説に欲しいなぁと思いました。
 
P286 問4
解説に、キャプチャ/プレイバックツール自身には自動的にテストの合否を判断できるような機能は提供されていませんとありますが、市販されているもので画面のスクリーンショットや結果画面を比較して合否判定できるものは普通にあります。
 
P287 問5
解説に、テストツールを利用するには、利用しないより高いスキルを持つテスト担当者が必要とありますが、静的解析ツールやメモリリークを検知する動的解析ツールなどで、そうとも言い切れないツールは存在します。
 
P289 問3
解説に、キャプチャ/プレイバックツールは繰り返し実行できるようにするためには、テスト環境に依存しないよう修正が必要とありますが、unixでもWindowsでも動くようなツールも昔からあり、そのようなことは言い切れるのか疑問です。
 
P416 問題8
テストの終了作業で、選択肢3の文章がテストスイートの保管のように理解して間違えました。
 
P421 問題17
選択肢4 「テスト技法の選択には開発で使用するプログラム言語や開発環境に大きく依存する」も正しいと思います。
 
P423 問題22
P439で、静的技法は動的技法より欠陥を見つけられるという解説ですが、何の根拠もなく疑問です。選択肢1「静的技法は要件の抜けと間違いを効率よく検出できる」のほうがあっているように思えます。
 
P426 問題29
選択肢2の日本語おかしいです。
 
P427 問題31
問題文の「代表的なメトリクスで、適切でないものはどれか。」という問は、"代表的な"という曖昧なものに対して"適切"かどうかなんてわからないので問題として不適切だと思います。
 
P428 問題34
P442の解説では「開発者はコードの中身を熟知しているので、独立性の高い組織よりも自分の作ったコードの欠陥を数多く見つけることができる」とあるのですが、本当にそんなことが言えるのでしょうか??独立性の高い組織、例えばテスティングツールを駆使したテスト専門部隊が、担当者が見過ごしているメモリリークやセキュリティなどの重要度の高いバグ欠陥を見つけたことがあります。納得できる解説ではないと思います。
 
P429 問題36
P443の解説では「さらに欠陥の作り込みを防止することを目的として、テスト設計を開発ライフサイクルの初期段階で行う」とあるのですが、テスト設計を初期段階でやったとしても作り込みは防止できないと思います。あえて言うなら、テスト設計ではなくテスト、この場合は静的テストであるレビューを初期段階に行うことです。正確には作り込みを防止というより、初期段階に欠陥を発見・除去することが目的だと思います。
 
P430 問題38
この問題には2つ疑問がありました。
ユースケースを理解し、イベントフローなどでテストを本当にやっている方なら、選択肢2の「主にプロトコル上のシーケンスの問題を検出できる」を選んだ方もいると思います。なぜならば、ユースケースの定義で使われるイベントフローとは、アクターとシステムとの対話、すなわちプロトコルを記述したものだからです。
もうひとつは選択肢3。これはISTQBの解釈も同じだからそう理解するしかありませんが、コンポーネント間のインターフェースを検証するのにユースケーステストを用いるというのですが、コンポーネントの定義が無いので、たとえば単体テストの最小単位Class=コンポーネントとも言えなくもありませんので、そうだだとどうもなーと思いました。
 
P431 問題40
設問の「開発の4つのレベルに対して〜」という4つのレベルは、テストレベルのことを言っているようですが、この教科書のテストレベル自体がP71、P86で揃っていないので問題としては不適切だと思います。
 
今回解いてみて、自分がシラバスで軽く見ていたところも結構、問題として問われるとウッとなるところもあり、今後の無料de試験の問題改善にとても参考になりました。