どんな単体テストをしますか?番外
番外。
どんな単体テストをしますか?にて、ひと月のパターンとして「1日」「15日」「晦日(28日、29日、30日、あるいは31日)」の3パターンを考慮したが、一般的には「15日」は不要なのだろうか?必要なのだろうか?もしかしたら、最頻出値をパターンとして選ぶのが妥当?
イマイチ基本的な技法を理解していないかも。。。
| 固定リンク
この記事へのコメントは終了しました。
番外。
どんな単体テストをしますか?にて、ひと月のパターンとして「1日」「15日」「晦日(28日、29日、30日、あるいは31日)」の3パターンを考慮したが、一般的には「15日」は不要なのだろうか?必要なのだろうか?もしかしたら、最頻出値をパターンとして選ぶのが妥当?
イマイチ基本的な技法を理解していないかも。。。
| 固定リンク
この記事へのコメントは終了しました。
コメント
day(日)を同値分割すると、通常は、
無効同値クラス -∞~0
有効同値クラス 1~28(閏月でない2月)
有効同値クラス 1~29(閏月の2月)
有効同値クラス 1~30(4,6,9,11月)
有効同値クラス 1~31(1,3,5,7,8,10,12月)
無効同値クラス 29~∞(閏月でない2月)
無効同値クラス 30~∞(閏月の2月)
無効同値クラス 31~∞(4,6,9,11月)
無効同値クラス 32~∞(1,3,5,7,8,10,12月)
となりますよね。
15日は、1日と同値とみなして良いということなので、1日をテストしておけば(この同値分割が正しければ)15日テスト不要です。
単体テストレベルではこれで良いと思います。
# 同値分割は、これ以外にも色々と考えられます。
# 例えば、intが4ビットで実装されていると考えると、15と16が境界値となりますし、入力文字列の桁数を考えると9と10が境界値となります。そうやって色々なことを検討した上で同値分割をしたらあとは機械的に選んでいくというやり方で良いように思います。
システムテストのフェーズではお客様の観点から、テストすることが重要になります。
したがって、仮に、このソフトウェアがゴトウ日に確実に使われる頻度が高いというなら5日、10日、15日といった日のテストを加えるのは意味があります。
投稿: あきやま | 2007年5月15日 (火) 14:54
>あきやまさん
詳しい解説ありがとうございます。
正直、day(日)の同値クラスの決め方、なめてました。。。
大の月、小の月、閏月の2月、平年の2月といったように場合分けも
組み合わさってくるのですね。
システムテスト設計のユーザ視点とか、わかってるようで意外に
忘れてる気がしてきました。勉強になります。
# 単体テストってサンプルプログラム作れば体験できるけど、
# システムテストの体験ってなかなか難しいですね。
投稿: softest | 2007年5月15日 (火) 16:09