Тестовые случаи для числового ввода - PullRequest
5 голосов
/ 01 июля 2010

Какие распространенные (или стоящие) тесты, тестовые вопросы, слабые стороны или недоразумения, связанные с числовыми данными?

Это вики сообщества.Пожалуйста, добавьте к этому.

Например, вот несколько примеров идей:

  • Я обычно вижу, как пользователи вводят текст в числовые поля (например, "> 4" или«4 дня» и т. Д.).
  • Поля, оставленные пустыми (нулевые)
  • Очень длинные числовые строки
  • Несколько десятичных знаков и запятых (например, «4..4» и«4,, 434.4.4»)
  • Анализ значения границы:
    • Нижняя граница
    • Нижняя граница - 1 (для десятичной / плавающей запятой, используйте меньшие значения)
    • Верхняя граница
    • Верхняя граница + 1
    • Значительно ниже нижней границы (например, за пределами аппаратного значения границы)
    • Значительно выше верхней границы
    • середина диапазона
  • 0
  • 0.0
  • Пробел, больше ничего ""
  • Неправильный ввод строки и другиетипы данных.
  • Число с текстом спереди или сзади, например, "$ 5,00", "4 фунта", "около 60", "50 +"
  • Отрицательные числа
  • + знак с положительными числами, "+4"
  • Оба плюси знак минус, например, «+ -4» и «-4e + 30»
  • Показатели 10, прописные и строчные, положительные и отрицательные, например, «4e10», «-5E-10», «+ 6e+60 "и т. Д.
  • Слишком много символов" e ", например," 4e4e4 "," 4EE4 "
  • Невозможно большие / малые показатели или неподходящие
  • Десятичные значения, которые не могут бытьпредставлены в компьютере
    • например, .3 + .6 == 1,0?Эта ошибка затрагивает большинство аппаратных средств, поэтому выходные данные, которые сравнивают десятичные значения, должны учитывать степень ошибки.
  • Целочисленное / аппаратное переполнение.Например, для 32-разрядных целых чисел, что происходит при добавлении от 4 до 4 миллиардов?
  • неправильное использование десятичного знака и разделителя тысяч ("," против ".") (MikeD)
  • вопросы интернационализации i18n: в приложениях на английском языке вы пишете «12 345,67», что означает «12345,67» на немецком языке, вы пишете «12345,67» - (k3b)
  • первые 0 не делают восьмеричное число (обычная ошибка JavaScript)
...