任意の整数を受け付けるメソッドに対して、バグを見つけやすい数列を教えてください。

たとえば2^nだとか2^n-1とか素数とかみたいな。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/06/19 20:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Kumappus No.1

回答回数3784ベストアンサー獲得回数185

ポイント27pt

これはその整数を何に使っているかによって話が違ってくるのでズバリな答えはないです。

例えばビット処理をしているのなら2^nや2^n-1は場合によっては有効でしょう。

一般的には境界条件。入力が想定している最小、最大値とそれよりさらに小さい数、大きい数(これらは入力範囲エラーになることを確認)。

与えられた値に比例してコストがかかるような計算の場合は入力範囲内で適宜数値を増加させてメモリが足りなくならないかなどのチェック。

内部で特定の意味を持たせた「マジックナンバー」を使っている場合はその数が入力として与えられたときに誤動作を起こさないか。

…など、やはり処理内部で想定されるケースをあれこれ考えてテストパターンを作るしかないのではないでしょうか。

id:moonwolf

どういう数列が、想定外になるかというのが問題です。

開発者が意図していないマジックナンバーはないかなぁということです。

2006/06/13 09:07:25
id:apple-eater No.2

回答回数420ベストアンサー獲得回数8

ポイント27pt

適当な文字列バイナリを整数として扱う。

適当な変数のアドレスを整数として扱う。

プログラムのアドレスを整数として扱う。

カーネルのアドレスを整数として扱う。

こんな感じでどうでしょうか。

id:moonwolf

Rubyを想定しているので、アドレスの類はあまり使えないかなぁ。

もう少し一般的な値で、素数だとかフィボナッチ数列だとかを期待しています。

2006/06/15 15:12:29
id:apple-eater No.3

回答回数420ベストアンサー獲得回数8

ポイント26pt

乱数はどうでしょうか?

整数の下限から上限までを満遍なくうろちょろする乱数なら

テスト用にいいのでは?

組み込み関数がRubyにあればそれを使い、無いときは

擬似乱数を生成してはどうでしょう?

擬似乱数

http://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E4%B9%B1%E6%95%B...

メルセンヌ・ツイスタとかいうのがよさそう。

http://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%AB%E3%82%BB%E3%83%B...

id:moonwolf

Rubyの整数は上限も下限も制限がないのです^^;

あと、Rubyの乱数はメルセンヌ・ツイスタです。

2006/06/16 15:44:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません