Как протестировать программу подсчета слов, если в ней есть незакрытые ошибки?

Я только что пересмотрел классический учебник по языку Си K&R. И прочитал упражнение 1-11:

Как бы вы протестировали программу подсчета слов? Какие виды входных данных с наибольшей вероятностью выявят ошибки, если они есть?

На самом деле, у меня есть только базовая идея вручную посчитать существующий абзац, чтобы получить точное количество слов и сравнить его с результатом, который вычисляет программа подсчета слов.

Есть ли что-то, что я упустил? И в чем фишка теста?

EDIT

Резюме ответов:

Семантическое определение слова, некоторые особые случаи:

  • слово-связка: "cat-walk"
  • маленькие слова: a, b, c
  • большие слова: "a fooooooooooooo<40MILLIONLETTERS>ooooooooooo a" имеет 3 слова

граничные условия:

  • Тексты с несколькими пробелами между словами.
  • Тексты размером более 2 ГБ
  • Слова, содержащие тире, но без пробелов.
  • Слова, не являющиеся буквамиascii.
  • Файлы в другой кодировке (если ваша программа это поддерживает)
  • Символы, окруженные пробелами, но не содержащие слов (например. "hello - world")
  • Тексты без слов
  • Тексты со всеми словами в одной строке
6
задан xiao 啸 20 April 2011 в 05:24
поделиться