sparc_phase: R
project: <project-slug>
created: <YYYY-MM-DD>
author: <name>
status: in_progress | review | approved
spec_link: ./01-specification.md
pseudocode_link: ./02-pseudocode.md
architecture_link: ./03-architecture.md
Refinement — Реалізація: TDD-цикл — <Project / Feature Name>
TDD-цикл: спочатку пишемо тест (red), потім реалізацію (green), потім рефактор. Артефакт цієї фази — існуючі тести і код, що проходить тести. Цей файл — журнал прогресу.
Test-First план
Список тест-кейсів які треба написати ДО коду. Базується на specification (FR + edge cases) і pseudocode (alternative flows).
| # |
Test |
Status |
File |
| 1 |
test_service_happy_path |
🔴 / 🟢 / refactor |
tests/test_service.py |
| 2 |
test_service_invalid_input |
🔴 |
… |
| 3 |
test_external_api_timeout_retries_3x |
🔴 |
… |
| 4 |
test_persist_idempotent |
🔴 |
… |
TDD log
<YYYY-MM-DD>
- 🔴 Написав test_service_happy_path → fail (модуль ще не існує)
- 🟢 Створив
service.py з мінімальною логікою → test_service_happy_path passes
- 🔴 → 🟢 test_service_invalid_input
- ♻️ Refactor: вилучив дубль валідації у helper
<YYYY-MM-DD>
Виявлені під час реалізації проблеми
Що пішло не так, як планували у Architecture або Pseudocode. Якщо треба змінити попередні фази — записати тут і оновити.
Coverage
Поточний % тестового покриття:
$ pytest --cov=src
…
Performance / нагрузові тести (якщо релевантно)
Метрики з NFR specification:
- p95 latency: <number>ms (target: <X>)
- max RPS: <number>
- memory peak: <X>MB
Відкриті відомі баги
Sign-off для переходу до C (Completion)
- [ ] Усі заплановані тести green
- [ ] Coverage ≥ <target>%
- [ ] Performance відповідає NFR specification
- [ ] Дата: <YYYY-MM-DD>
- [ ] Перехід на наступну фазу: C (Completion)