- Add complete agent harness structure with 8 roles (leader, triager, architect, implementer, reviewer, security, qa, documenter) - Implement strict workflow with 9 stages and mandatory gates - Add comprehensive verification script and runtime status tracking - Create artifact-based evidence system with contracts and schemas - Add agent policy matrix with permissions and anti-cheat rules - Include test suite (44 tests passing) and CI-ready structure - Add documentation: README, HOWTO, CHECKPOINTS, templates - Configure model routing policies and token-aware task assignment - Add BDD/SDD specification guides and feature templates - Include starter pack for quick project onboarding All verification checks pass. Framework ready for production use.
107 lines
2.2 KiB
Markdown
107 lines
2.2 KiB
Markdown
# BDD — Behavior Driven Development
|
|
|
|
## Índice
|
|
|
|
- [Overview](#overview)
|
|
- [Features](#features)
|
|
- [Step Definitions](#step-definitions)
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
Este directorio contiene especificaciones BDD en formato Gherkin.
|
|
Los archivos `.feature` sirven como especificación ejecutable.
|
|
|
|
### naming conventions
|
|
|
|
```
|
|
features/
|
|
├── <domain>/
|
|
│ ├── <feature-name>.feature
|
|
│ └── <feature-name>.feature
|
|
└── common/
|
|
└── <common-feature>.feature
|
|
```
|
|
|
|
### tags permitidos
|
|
|
|
| Tag | Uso |
|
|
|-----|-----|
|
|
| `@F-XXX` | Link a feature del backlog |
|
|
| `@smoke` | Tests críticos (siempre ejecutar) |
|
|
| `@regression` | Tests de regresión |
|
|
| `@integration` | Tests de integración |
|
|
| `@e2e` | End-to-end tests |
|
|
| `@unit` | Tests unitarios |
|
|
| `@api` | Tests de API |
|
|
| `@ui` | Tests de interfaz |
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
Ver `spec/bdd/features/` para los archivos `.feature`.
|
|
|
|
---
|
|
|
|
## Step Definitions
|
|
|
|
Los step definitions deben estar en:
|
|
- Python: `features/steps/*.py`
|
|
- JS/TS: `features/step_definitions/*.ts`
|
|
- Go: `features/steps/*.go`
|
|
|
|
### Template (Python/Behave)
|
|
|
|
```python
|
|
"""Steps para login feature."""
|
|
from behave import given, when, then
|
|
|
|
@given('un usuario registrado con email "{email}" y password "{password}"')
|
|
def step_registered_user(context, email, password):
|
|
"""Crea usuario de prueba."""
|
|
pass
|
|
|
|
@when('el usuario ingresa su email "{email}"')
|
|
def step_enter_email(context, email):
|
|
"""Ingresa email en el formulario."""
|
|
pass
|
|
|
|
@when('ingresa password "{password}"')
|
|
def step_enter_password(context, password):
|
|
"""Ingresa password."""
|
|
pass
|
|
|
|
@then('el sistema muestra mensaje de error "{message}"')
|
|
def step_show_error(context, message):
|
|
"""Verifica mensaje de error."""
|
|
pass
|
|
```
|
|
|
|
---
|
|
|
|
## Ejecutar Tests
|
|
|
|
### Python (Behave)
|
|
```bash
|
|
behave features/
|
|
behave features/ --tags @smoke
|
|
behave features/ --tags ~@slow # exclude
|
|
```
|
|
|
|
### Node.js (Cucumber)
|
|
```bash
|
|
npx cucumber-js features/
|
|
npx cucumber-js features/ --tags "@smoke and @F-001"
|
|
```
|
|
|
|
---
|
|
|
|
## Checklist de Feature
|
|
|
|
- [ ] Feature documentado en Gherkin
|
|
- [ ] Todos los scenarios tienen Given/When/Then
|
|
- [ ] Tags `@F-XXX` presentes
|
|
- [ ] Step definitions implementados
|
|
- [ ] Tests ejecutables |