トップページ > プログラム > 2016年06月02日 > 3RkkmY6H

書き込み順位&時間帯一覧

5 位/203 ID中時間01234567891011121314151617181920212223Total
書き込み数0300000000000000000000137



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net

書き込みレス一覧

オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
207 :デフォルトの名無しさん[sage]:2016/06/02(木) 01:47:36.18 ID:3RkkmY6H
さて、スレが流れた所で話を戻すかw

>>140
> どう組んでもチェック項目は絶対同じ数と内容になる
そうでもないというか、その発想は抜けがあるよ。
たとえば数値が偶数か奇数かを文字列で返す関数があったとしよう。
function foo(value) {
  return (value % 2 == 0) ? 'even' : odd';
}
これのチェック項目はfoo(0)とfoo(1)の2つで十分だろう。
だけどさ、関数の中身がこうなっていたらどうする?
(1レスに収めるためにわざと改行せずに一行にしたけどそこは無視して)

function foo(value) {
  var i = value % 10;
  if (i == 0) return 'even'; if (i == 1) return 'odd';
  if (i == 2) return 'even'; if (i == 3) return 'odd';
  if (i == 4) return 'even'; if (i == 5) return 'odd';
  if (i == 6) return 'odd'; if (i == 7) return 'odd';
  if (i == 8) return 'even'; if (i == 9) return 'odd';
}

わざとバグを入れたけど、バグが無ければこの関数は仕様どおりに動くしfoo(0)とfoo(1)のテストにも通る。
だけどこの関数にはバグがあるし、だからチェック項目は2つでは十分ではないということになる。

コーディングの仕方でチェック項目数は変わらないっていうのは、半分は正しい。
もし2つあるコードのどちらも同じぐらい正しい品質であればその通り。
だけどこの例の場合は違う。2つのテストでは足りないということになっている。

この例のあるべき姿はチェック項目数を増やすのではなくて、コードをリファクタリングしてシンプルにすること。
そうすることでチェック項目は2つになるわけだが、ここまでの話で明らかなように
「コーディングの仕方でテスト項目は変わる」というか「悪いコードだとバグがないことを担保するためのテスト項目は増える」
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
208 :デフォルトの名無しさん[sage]:2016/06/02(木) 01:49:05.94 ID:3RkkmY6H
何だ俺、最初から一貫して同じこと言ってるやんw
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
210 :デフォルトの名無しさん[sage]:2016/06/02(木) 01:51:43.92 ID:3RkkmY6H
>>209
だから、そのvalの取りうる値ってなんだよ?w

>>198の質問にも答えてないぞお前w
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
240 :デフォルトの名無しさん[sage]:2016/06/02(木) 22:51:27.39 ID:3RkkmY6H
>>212
> 仕様書に書いてあるだろ?

仕様書には「整数」って書いてあるけど、
そしたら、無限にある整数を全部テストしろって話でしょう?w
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
400 :デフォルトの名無しさん[sage]:2016/06/02(木) 23:25:10.25 ID:3RkkmY6H
>>385
> 関連つければいいだけだよね
> その通り
> つけてないけど

ってことは、ORM使ってないのか?
ORM使ってプログラム言語でモデルを定義していってその関連もモデルで定義する。
その結果をマイグレーション機能を使ってデータベースに反映、
ついでにER図も生成しちゃうっていうのが今時の開発でしょう?

モデルに関連を定義しておかなければ、あるモデルから関連している
別のモデルのデータを取得するのができないわけで開発効率下がりまくりでしょ?
(厳密に言えば手動でコードを書けば取得できるがそれだとORMを使う意味がない)
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
243 :デフォルトの名無しさん[sage]:2016/06/02(木) 23:37:42.96 ID:3RkkmY6H
>>242
> 駄目な仕様書だな
> 上限も下限も定義されてないでモノなんて作れっかよ

作れるだろ?Pythonは無限リストを作れるのが特徴だ。
無限リストには上限も下限もない。
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
244 :デフォルトの名無しさん[sage]:2016/06/02(木) 23:40:01.75 ID:3RkkmY6H
RubyのBigNumも上限も下限もないな。
http://docs.ruby-lang.org/ja/2.2.0/class/Bignum.html

あえて言えばメモリサイズによる制限は受けるが、
じゃあメモリサイズいっぱいの桁数の数値(何桁だと思う?w)を
全部テストするのかとw


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。