Files
arnes/spec/bdd/README.md
rikrdo 3ff9b70e4c refactor: complete bootstrap of ARNES agent harness framework
- 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.
2026-05-17 23:25:35 +02:00

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