作成日 2011/1/24
最終更新日 2011/1/24

問題2.12(問題タイトル:オブジェクト指向設計と試験性)

オブジェクト指向設計についての問題(中級レベル)です。

問題タイトル:オブジェクト指向設計と試験性
重要度:★★★★★(非常に重要)
難易度:★★★☆☆(普通)


1.問題
2.解答・解説
3.参考文献


1.問題

問題タイトル:オブジェクト指向設計と試験性
重要度:★★★★★(非常に重要)
難易度:★★★☆☆(普通)

問題:オブジェクト指向設計を行う上で重要な点として正しいものを全て選択せよ。


 a.上位クラス(例:業務処理クラス)にバグはない前提で下位クラス(例:共通クラス)を設計、コーディングする。
  例えば、下位クラスでのメソッド内での引数チェックは無駄であり、一般的には行う必要はない。
 b.極力、クラス間の依存や誘導可能性が循環しないように設計する。
 c.何でも行ってくれるクラスがあれば使う側が便利であるから、そういうクラスを設計する。
 d.テスト工程(単体テスト、結合テスト・・・)にて、全てのテストを行う(全パターンテストする)のは絶対に不可能であるので、品質を作りこんで設計する。
 e.たとえ、禁止されている操作やシステム上限を超える操作が取扱説明書にて明示的に書かれていたとしてもそれを行おうしていないかチェックする。

問題文終わり

このページのトップへ












注意:これ以上、下にスクロールすると解答・解説が見えちゃいます。

2.解答・解説

解答:b,d,e
解説:
 オブジェクト指向設計を行う理由は何なのか?
 モジュールの強度(凝集度)を上げ、結合度を下げるような設計を行うことで、例えばISO/IEC9126(JIS X 0129)に定義されている品質のうち、保守性をあげることで、ソフトウェアの開発や保守にかかるコストを減らすためです。
 その保守性の中に「試験性」というものがあり、それを向上させるために正しく設計を行っているかを問う問題です。
   1つ1つ解説していきます

 a.誤り。
 メソッド内での引数チェックは必要です。
 しかし、上位クラスにバグがなければ、確かに無駄のような気がするが・・・。
 いやいや、バグがないってあり得ないです。どんなにテストをしてもバグがなくなったことを証明することはできません。
 バグはどんなにテストしてもあるに決まっているのだから、その前提で設計しなきゃダメですね。
 ちなみに、単体〜結合テストまではかなりバグが残っていることが多いのですが、このときにメソッドの引数チェックのあり・なしでバグの見つけやすさ・調査のしやすさ(すなわち、必要な期間や工数)が大幅に変わってきます。是非ともやりましょう。

 b.正しい。
 詳しいことは問題2.5問題2.9で解説していますのでそちらを見てください。


 c.誤り。
 モジュールの強度(凝集度)が悪くなるのでダメです。また、下位クラス(例:共通クラス)が上位モジュール(例:業務処理クラス)に依存する原因にもなる(結合度が高くなるということ)のでダメです。


 d.正しい。
 一応、引っ掛け問題のつもりで作成しました。「全てのテストを行う(全パターンテストする)のは絶対に不可能である」というのは本当のことです。
 え、C0/C1とか命令網羅・分岐網羅とかあるじゃんだって?
 それはその考え方の上で網羅させただけです。
 例えば、
  a = b / c
 という、プログラムがあったとき、c=0のときのテストケースは命令網羅・分岐網羅では出てきませんよ。どうするのか・・・。
 その他、マルチスレッドプログラミングの場合、あるスレッドがここを処理している最中で、別のスレッドがここで・・・ってパターンが多すぎてテストできませんよ・・・。
 他にもテストできないようなものはたくさんあるんです。
 だから、設計時に品質を作りこむことが重要なのです。
 「オブジェクト指向設計はそれを手助けするための考えである」と考えましょう。


 e.正しい。
 メソッドの引数チェックにて極力、全境界、状態をチェックしてください。
 オブジェクト指向とはあまり関係ないのですが、ちなみに、このチェックがなかったことによるシステムダウンは実際に起こっているわけですが・・・。


このページのトップへ

3.参考文献

 このページを作成する際に参考にしたページや、もっと勉強したい人向けの資料です。

番号

リンク先の名称

リンク先の説明

リンクした日

1 問題2.5(問題タイトル:双方向の関連とメモリの解放) - だるまのエクセルVBA 双方向の関連とメモリの解放に関しての問題です。 2011/1/24
2 オブジェクト指向設計と試験性 - だるまのエクセルVBA 設計する際には凝集度や結合度も重要ですが、試験性についても考慮したほうがいいです。 2011/1/24

番号

著者名

書籍名

ISBN

1 Cem Kaner (著), Hung Quoc Nguyen (著), Jack Falk (著), テスト技術者交流会 (翻訳) 基本から学ぶソフトウェアテスト―テストの「プロ」を目指す人のために 978-4822281137

Prev Up Next  Top
このページのトップへ


このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。