人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

任意の整数を受け付けるメソッドに対して、バグを見つけやすい数列を教えてください。
たとえば2^nだとか2^n-1とか素数とかみたいな。

●質問者: MoonWolf
●カテゴリ:コンピュータ 学習・教育
✍キーワード:バグ メソッド 整数 素数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● くまっぷす
●27ポイント

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

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

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

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

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

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

◎質問者からの返答

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

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


2 ● apple-eater
●27ポイント

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

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

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

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

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

◎質問者からの返答

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

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


3 ● apple-eater
●26ポイント

乱数はどうでしょうか?

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

テスト用にいいのでは?

組み込み関数が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...

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ