1. Назначение
EDGE
→ различающий пример
→ автоматический TESTКомментарий без соответствующего поведения является недоказанным утверждением.
2. Числовая граница
EDGE: точное равенство лимиту разрешено.
Минимальный набор:
limit - unit
limit
limit + unit| Долг | Лимит | Превышен |
|---|---|---|
| 99.99 | 100.00 | Ложь |
| 100.00 | 100.00 | Ложь |
| 100.01 | 100.00 | Истина |
3. Отсутствие и ноль
Проверяются отдельно:
- свойства нет;
- свойство есть, значение 0;
- свойство есть, положительное значение;
- свойство есть, тип неверен.
4. Строки
Тестовые состояния:
Неопределено / null / None
""
" "
" "
"0"
"False"
значимый текст5. Даты и периоды
Предпочтительная модель: [Начало, Конец).
Тесты:
- до начала;
- точно начало;
- внутри;
- перед концом;
- точно конец;
- после конца.
6. Коллекции
Проверяются пустая коллекция, один элемент, несколько элементов, первый, последний, дубликаты, неверный тип элемента и отсутствие коллекции.
7. Условные выражения
Проверяются:
- CONDITION = Истина;
- CONDITION = Ложь;
- точное значение на EDGE;
- тип результата каждой ветви;
- невычисление невыбранной ветви при ленивой семантике;
- отсутствие скрытых побочных эффектов.
Пример:
СтатусОплаты
// EDGE: равенство означает полную оплату
= ?(
ПолученоОплаты >= СуммаКОплате,
"Оплачен",
"НеОплачен");999.99 / 1000.00 → НеОплачен
1000.00 / 1000.00 → Оплачен
1000.01 / 1000.00 → Оплачен8. Внешние данные
Проверяются корректная структура, отсутствующее поле, лишнее поле, неверный тип, null, пустой объект и повреждённый JSON.
9. Запросы и соединения
EDGE: отсутствующая строка соединения отличается от строки с нулевым значением.
Тесты:
- связанная строка есть;
- строки нет;
- строка есть, значение 0;
- несколько связанных строк;
- дубликат ключа;
- пустая входная таблица.
10. Округление
Проверяются значения ниже половины единицы округления, точно половина, выше половины, отрицательное значение, повторное округление и сумма округлённых частей против округления итога.
11. Retry
EDGE: последняя разрешённая попытка выполняется, следующая — нет.
maxAttempts - 1
maxAttempts
maxAttempts + 112. Тестовая карточка
ID:
MILA-T-001
EDGE:
точное равенство лимиту разрешено
INPUTS:
99.99
100.00
100.01
EXPECTED:
false
false
true13. Правила Verification
- Критический EDGE имеет различающий тест.
- Тест включает точное значение на границе.
- Ноль, пустота и отсутствие проверяются раздельно.
- Для условного HOW проверяются обе ветви.
- TYPE-ограничение получает негативный тест.
- Тесты не ограничиваются типовыми нормальными данными.