テストはしていないのか?(3)

2009年5月2日

http://ooltcloud.sakura.ne.jp/blog/200905/article_01215400.html からの続き。

手前味噌なんで当然でなのですが、先のテストでは、以下のケースが考慮されていません。(もっともまだあるかもしれません)

1.桁落ちの場合を確認していない。(例: RightShift(3, 1) = 1)
2.&HFFFFFFFFを、1bit右シフトすると何になるか?
3.シフトするbit数が32を超えた場合はどうするか?
4.シフトするbit数にマイナスを指定された場合はどうするか?

すると例えば、以下の障害が後日露見されたりします。

1.RightShift(3, 1) で 1 を期待したが 2 が戻る。
2.&H7FFFFFFF を期待したが &HFFFFFFFF が戻る。
3.例外を期待したが、0が戻る。
4.RightShift(3, -1) で 6 を期待したが 0 が戻る。

障害が露見したとき、コードを書いた人間の立場になって考えると大体以下な感想(言い訳)があるんじゃないかと。

1.value を 2の shiftBit 乗で割ってみました。
2.&H7FFFFFFF まではちゃんと正しくシフトします。
3.32を超えたら例外にするのですか?
4.マイナス指定だと左シフトにするのですか?

障害の原因は、知識の問題であるとも言えるし、仕様が明確でなかったという問題であるかもしれません。が、ここで言いたいことは、テスターが知らない、または、不要(テストするまでもない)、と考えたとき、テストケースにのってこない、ということです。

http://ooltcloud.sakura.ne.jp/blog/200905/article_02185910.htmlへ続く。






カテゴリー: IT / テクノロジー, 与太話

Follow comments via the RSS Feed | Leave a comment | Trackback URL

1 Comment to "テストはしていないのか?(3)"

  1. テストはしていないのか?(4) | オールトの雲

    [...] http://ooltcloud.sakura.ne.jp/blog/200905/article_02185850.html からの続き。 [...]

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org