古典的な C の教科書 K&R を再訪しました。演習 1-11 を読んでください。
文字カウント プログラムをどのようにテストしますか? バグがある場合、どのような種類の入力がバグを発見する可能性が最も高いですか?
実際には、既存の段落を手動でカウントして正確な単語数を取得し、それを単語カウント プログラムの計算結果と比較するという基本的なアイデアしかありません。
見逃したものはありますか?そして、テストの裏技とは?
編集
回答の要約:
単語のセマンティックな定義、いくつかの特殊なケース:
- リンクワード:「キャットウォーク」
- 小文字: a、b、c
- biiiiiiig words: "a fooooooooo<40MILLIONLETTERS>oooooo a" には 3 つの単語があります
境界条件:
- 単語間に複数のスペースがあるテキスト。
- 2GBを超えるテキスト
- ダッシュを含み、空白を含まない単語。
- ASCII 以外の単語。
- いくつかの異なるエンコーディングのファイル (プログラムがサポートしている場合)
- 空白で囲まれているが単語文字を含まない文字 (例: "hello - world")
- 言葉のないテキスト
- すべての単語が 1 行にあるテキスト