- オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
211 :デフォルトの名無しさん[sage]:2016/06/02(木) 01:53:10.76 ID:ehI/NdEG - >>176
完全に横だが、、、 そちらの意見自体に文句はない。つまり、コード品質最優先で同意だ。 付け加えるとしたら、>>143の例ならカバレッジで確認できる。 つまりC1(方言かもしれんが各分岐)まで含めれば例示されたバグは落とせる。 あと、仕様から起こしたテストを一通りやらないと「実装忘れ」を検出できない。 例えば、関数電卓を作ったとして、色々ある関数の一つを実装し忘れたとか。 実装漏れをテストではなくコードレビューで落とすことは出来るが、これはポリシーの問題となる。 仕様から起こしたテストで品質が上がるかというと、多分無理だ。これは競合を落とせない。 各競合を全部コードレビュー時にテストに追加するという手もあるが、これは追加漏れが発生する。 だから品質を上げるためには結局ランダムテストしかないと俺は思っている。
|
- オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
215 :デフォルトの名無しさん[sage]:2016/06/02(木) 02:25:10.08 ID:ehI/NdEG - >>213-214
いや、複数箇所に冗長に記述があった時、それらが整合しているかだろ? 見た瞬間分かればいいけど、クラスをまたいでいたりすると単純には削除できないケースもある。 この場合はカバレッジ100%なら整合している可能性が高い事は言える。 (ただし二重に冗長な場合は無理だが) ランダムテストは動作の確認とカバレッジを稼ぐため。つまりバグの検出。 ランダムテスト自体では「品質の高い=美しいコード」は得られない。 ただ、コードの品質って大前提として「バグがないこと」だろ?(コードが美しいことではなくて) これについてはランダムテストが一番だと思っている。 すまんがもう寝る。
|
- オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
220 :デフォルトの名無しさん[sage]:2016/06/02(木) 06:54:53.87 ID:ehI/NdEG - すまぬ。「ランダムテスト」は方言で、標準語ではどうやら「自動テスト」と呼ばれるようだ。
(モデルを作成し、ランダムな入力を食わせて出力をチェックする) 混乱させてすまん。
|