К основному содержанию
A1sCode
Быстрый старт
MILA v1.0 · Доказательство

MILA Verification: EDGE → TEST

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

1. Назначение

TEXT
EDGE
    → различающий пример
    → автоматический TEST

Комментарий без соответствующего поведения является недоказанным утверждением.

2. Числовая граница

EDGE: точное равенство лимиту разрешено.

Минимальный набор:

TEXT
limit - unit
limit
limit + unit
ДолгЛимитПревышен
99.99100.00Ложь
100.00100.00Ложь
100.01100.00Истина

3. Отсутствие и ноль

Проверяются отдельно:

  1. свойства нет;
  2. свойство есть, значение 0;
  3. свойство есть, положительное значение;
  4. свойство есть, тип неверен.

4. Строки

Тестовые состояния:

TEXT
Неопределено / null / None
""
" "
"   "
"0"
"False"
значимый текст

5. Даты и периоды

Предпочтительная модель: [Начало, Конец).

Тесты:

  1. до начала;
  2. точно начало;
  3. внутри;
  4. перед концом;
  5. точно конец;
  6. после конца.

6. Коллекции

Проверяются пустая коллекция, один элемент, несколько элементов, первый, последний, дубликаты, неверный тип элемента и отсутствие коллекции.

7. Условные выражения

Проверяются:

  1. CONDITION = Истина;
  2. CONDITION = Ложь;
  3. точное значение на EDGE;
  4. тип результата каждой ветви;
  5. невычисление невыбранной ветви при ленивой семантике;
  6. отсутствие скрытых побочных эффектов.

Пример:

Пример 4наведите на цветной токен, чтобы увидеть его рольMILA
СтатусОплаты
    // EDGE: равенство означает полную оплату
    = ?(
        ПолученоОплаты >= СуммаКОплате,
        "Оплачен",
        "НеОплачен");
TEXT
999.99 / 1000.00 → НеОплачен
1000.00 / 1000.00 → Оплачен
1000.01 / 1000.00 → Оплачен

8. Внешние данные

Проверяются корректная структура, отсутствующее поле, лишнее поле, неверный тип, null, пустой объект и повреждённый JSON.

9. Запросы и соединения

EDGE: отсутствующая строка соединения отличается от строки с нулевым значением.

Тесты:

  • связанная строка есть;
  • строки нет;
  • строка есть, значение 0;
  • несколько связанных строк;
  • дубликат ключа;
  • пустая входная таблица.

10. Округление

Проверяются значения ниже половины единицы округления, точно половина, выше половины, отрицательное значение, повторное округление и сумма округлённых частей против округления итога.

11. Retry

EDGE: последняя разрешённая попытка выполняется, следующая — нет.

TEXT
maxAttempts - 1
maxAttempts
maxAttempts + 1

12. Тестовая карточка

TEXT
ID:
    MILA-T-001

EDGE:
    точное равенство лимиту разрешено

INPUTS:
    99.99
    100.00
    100.01

EXPECTED:
    false
    false
    true

13. Правила Verification

  1. Критический EDGE имеет различающий тест.
  2. Тест включает точное значение на границе.
  3. Ноль, пустота и отсутствие проверяются раздельно.
  4. Для условного HOW проверяются обе ветви.
  5. TYPE-ограничение получает негативный тест.
  6. Тесты не ограничиваются типовыми нормальными данными.