siesa-agents 2.1.72-qa.2 → 2.1.72-qa.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bmad/bmm/config.yaml +33 -0
- package/claude/skills/sa-agent-sre-sentinel/SKILL.md +180 -0
- package/claude/skills/sa-aplicar/SKILL.md +268 -0
- package/claude/skills/sa-auditar-servicio/SKILL.md +255 -0
- package/claude/skills/sa-nueva-transversal/SKILL.md +317 -0
- package/claude/skills/sa-nuevo-ambiente/SKILL.md +147 -0
- package/claude/skills/sa-nuevo-servicio/SKILL.md +530 -0
- package/claude/skills/sa-onboard-db/SKILL.md +122 -0
- package/claude/skills/sa-qa-data-generator/SKILL.md +200 -51
- package/claude/skills/sa-quality-process/SKILL.md +6 -0
- package/claude/skills/sa-registrar-permisos/SKILL.md +233 -0
- package/package.json +1 -1
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_design_test.md +1037 -60
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_dor_gate.md +419 -379
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_e2e_executor.md +273 -0
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_playwright_impl.md +359 -355
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_test_plan.md +73 -111
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/workflow.md +1320 -997
- package/siesa-agents/resources/playwright-kit/.env.example +42 -0
- package/siesa-agents/resources/playwright-kit/README.md +228 -0
- package/siesa-agents/resources/playwright-kit/allure/categories.json +26 -0
- package/siesa-agents/resources/playwright-kit/global-setup.ts +34 -0
- package/siesa-agents/resources/playwright-kit/helpers/blazor-e2e-helpers.ts +417 -0
- package/siesa-agents/resources/playwright-kit/helpers/react-e2e-helpers.ts +297 -0
- package/siesa-agents/resources/playwright-kit/package-lock.json +850 -0
- package/siesa-agents/resources/playwright-kit/package.json +27 -0
- package/siesa-agents/resources/playwright-kit/playwright.config.ts +60 -0
- package/siesa-agents/resources/playwright-kit/proposed/.gitkeep +0 -0
- package/siesa-agents/resources/playwright-kit/reporters/agiletest-reporter.ts +252 -0
- package/siesa-agents/resources/playwright-kit/specs/.gitkeep +0 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-siesa-erp.md +85 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-siesa-react.md +109 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-template.md +69 -0
- package/siesa-agents/resources/playwright-kit/tests/seed-example.spec.ts +95 -0
- package/siesa-agents/resources/playwright-kit/tools/locator-overlay.js +1306 -0
- package/siesa-agents/resources/playwright-kit/tools/locator-recorder.spec.ts +986 -0
- package/siesa-agents/scripts/__pycache__/bmad_to_agiletest.cpython-36.pyc +0 -0
- package/siesa-agents/scripts/bmad_to_agiletest.py +352 -337
- package/siesa-agents/scripts/converters/convert_csv_to_test_design.py +327 -0
- package/siesa-agents/scripts/converters/convert_excel_to_test_design.py +360 -0
- package/siesa-agents/scripts/converters/convert_md_to_test_design.py +359 -0
- package/siesa-agents/scripts/converters/convert_pdf_to_test_design.py +412 -0
- package/siesa-agents/scripts/converters/export_yaml_to_csv.py +149 -0
- package/siesa-agents/scripts/converters/export_yaml_to_excel.py +233 -0
- package/siesa-agents/scripts/converters/export_yaml_to_markdown.py +172 -0
- package/siesa-agents/scripts/converters/export_yaml_to_pdf.py +297 -0
- package/siesa-agents/scripts/merge_test_design.py +106 -106
- package/siesa-agents/scripts/playwright/yaml-to-playwright-spec.ts +203 -0
- package/siesa-agents/scripts/requirements.txt +7 -0
package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_design_test.md
CHANGED
|
@@ -1,6 +1,36 @@
|
|
|
1
|
-
# 🤖 Mega-Prompt Maestro: Ingeniería Agéntica BMAD
|
|
1
|
+
# 🤖 Mega-Prompt Maestro: Ingeniería Agéntica BMAD V7.8 (Universal)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **Versión:** 7.8
|
|
4
|
+
> **Basado en:** BMAD V7.2 + integración de flujo conversacional interactivo (V7.6) + ajustes de perspectiva QA (V7.7) + macro-dominios y congruencia Modo-Features (V7.8)
|
|
5
|
+
> **Mejoras v7.6 respecto a V7.2:**
|
|
6
|
+
> - Fase 0 interactiva con preguntas obligatorias al usuario antes de generar cualquier caso
|
|
7
|
+
> - Reglas de Oro en el CONTEXTO que validan toda la ejecución
|
|
8
|
+
> - Diferenciación explícita entre Modo Feature y Modo Completo
|
|
9
|
+
> - Diferenciación entre feature con frontend (UI) y sin frontend (solo API/backend)
|
|
10
|
+
> - Reglas de lenguaje y formato de casos según el tipo de interfaz detectado
|
|
11
|
+
> - Modo Completo: soporte obligatorio para INT-X, E2E multi-feature, dependencias y agrupación por grupos de hasta 4 features
|
|
12
|
+
> - Lista de verificación actualizada con controles de Fase 0
|
|
13
|
+
>
|
|
14
|
+
> **Mejoras v7.7 respecto a V7.6:**
|
|
15
|
+
> - Distribución de FU reducida en Modo Feature (25% → 10–15%) y redistribuida hacia INT y E2E
|
|
16
|
+
> - **FU eliminado de Modo Completo**: se asume cubierto por Modo Feature; el peso se redistribuye a INT-X (27–30%) y E2E-X (27–30%)
|
|
17
|
+
> - Nueva Regla de Oro RO-2 actualizada: FU explícitamente prohibido en Modo Completo
|
|
18
|
+
> - Nuevo criterio de validez QA para casos FU (solo Modo Feature): transiciones de estado inválidas, tablas de decisión no triviales y valores límite de alto impacto
|
|
19
|
+
> - Fase 1 simplificada: eliminado texto de agrupación por capacidades de negocio (responsabilidad ya resuelta en Fase 0); ajustado término "funcionalidad agrupada" a "funcionalidad agrupada (feature)"
|
|
20
|
+
>
|
|
21
|
+
> **Mejoras v7.8 respecto a V7.7:**
|
|
22
|
+
> - **Nueva RO-7**: Límite de 4 features por batch en Modo Completo. Macro-dominios (>4 features) requieren descomposición obligatoria en cadenas de flujo acotadas; TSR final consolida todos los batches
|
|
23
|
+
> - **Nueva RO-8**: Congruencia Modo-Features obligatoria. "completo" con <2 features → ejecución rechazada; "feature" con >1 feature → advertencia con opciones de resolución
|
|
24
|
+
> - **Nuevo Paso 0.1.5**: Validación de congruencia inmediatamente tras Paso 0.1 — cuatro casos (A, B, C, D) con flujos de resolución interactivos
|
|
25
|
+
> - **Paso 0.2 actualizado**: Se ejecuta solo si el modo activo es "feature" después del Paso 0.1.5
|
|
26
|
+
> - **Paso 0.3 actualizado**: Solo para Modo Completo con ≤4 features; deriva al Paso 0.4 si N>4; referencia explícita a RO-7
|
|
27
|
+
> - **Nuevo Paso 0.4 completo**: Manejo de macro-dominios — análisis de volumen (0.4.1), agrupación por cadenas de flujo con algoritmo basado en dependencias reales (0.4.2), matriz de priorización por cadena (0.4.3), oferta de estrategia de ejecución A/B/C/D (0.4.4), configuración del batch actual (0.4.5), caso especial macro-dominio homogéneo (0.4.6)
|
|
28
|
+
> - **TSR actualizado**: Campo "Batch Info" en Configuración de Ejecución; nueva sección 7 "Resumen de Pendientes" para soporte de múltiples batches
|
|
29
|
+
> - **Lista de Verificación actualizada**: Nuevos controles para Paso 0.1.5, RO-7, RO-8, macro-dominios y batches pendientes
|
|
30
|
+
|
|
31
|
+
Este prompt transforma a la IA en un **Principal QA Architect** que diseña pruebas multi-nivel
|
|
32
|
+
según el **modo de ejecución** y el **tipo de interfaz** seleccionados en la Fase 0,
|
|
33
|
+
garantizando coherencia entre las 7 fases y sus salidas.
|
|
4
34
|
|
|
5
35
|
---
|
|
6
36
|
|
|
@@ -8,88 +38,1035 @@ Este prompt transforma a la IA en un **Principal QA Architect**. Su objetivo es
|
|
|
8
38
|
|
|
9
39
|
# ROL: Principal QA Architect (Especialista en Ingeniería de Calidad)
|
|
10
40
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- Todos los casos de prueba complementarios para certificar los **Features** lógicos
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# CONTEXTO Y FILTROS CRÍTICOS
|
|
44
|
+
|
|
45
|
+
Operas bajo la metodología **BMAD V7.8**. Tu misión es diseñar pruebas según el
|
|
46
|
+
**modo de ejecución** y el **tipo de interfaz** que el usuario seleccione en la Fase 0.
|
|
47
|
+
|
|
48
|
+
## 📌 REGLAS DE ORO (validan toda la ejecución)
|
|
20
49
|
|
|
50
|
+
Estas reglas son absolutas. Ningún caso de prueba puede violarlas. Si se detecta
|
|
51
|
+
una violación durante la ejecución, esta debe detenerse y reportar el error antes
|
|
52
|
+
de continuar.
|
|
53
|
+
|
|
54
|
+
| # | Regla |
|
|
55
|
+
| :--- | :--- |
|
|
56
|
+
| **RO-1** | **Modo "Feature"** → Prohibido: E2E-X (multi-feature), INT-X (entre features), contexto heredado de otras features. Permitido: FU (condicional, con criterio de validez QA), INT intra-feature, E2E intra-feature, REG limitada, EC. |
|
|
57
|
+
| **RO-2** | **Modo "Completo"** → Obligatorio: INT-X (integración entre features), E2E-X multi-feature, contexto heredado. Permitido adicionalmente: INT intra-feature, REG completa, EC. **Prohibido: FU** (se asume cubierto por Modo Feature; duplicarlo aquí no agrega valor). |
|
|
58
|
+
| **RO-3** | Ningún caso de prueba puede violar las reglas del modo activo. Ante cualquier duda, priorizar la restricción más estricta. |
|
|
59
|
+
| **RO-4** | El **tipo de interfaz** determina el lenguaje y el formato de los casos: los casos para features sin frontend deben redactarse en términos de API; los casos para features con frontend deben redactarse en términos de UI. |
|
|
60
|
+
| **RO-5** | **PURGA DE RUIDO**: No considerar en el diseño de pruebas épicas de "Ruido Técnico" (Infraestructura, Configuración, Boilerplate). |
|
|
61
|
+
| **RO-6** | **DETALLE NO NEGOCIABLE**: Cada caso de prueba debe cumplir el Contrato de Detalle de la Fase 4.3. Está prohibido generar pasos genéricos, datos placeholder o resultados ambiguos. |
|
|
62
|
+
| **RO-7** | **LÍMITE DE FEATURES POR BATCH**: Ninguna ejecución en Modo Completo puede incluir más de 4 features por batch. Si un dominio tiene más de 4 features relacionados, estos deben descomponerse en **cadenas de flujo acotadas** (máx. 4 features por cadena) y ejecutarse secuencialmente. El TSR final debe consolidar todos los batches. |
|
|
63
|
+
| **RO-8** | **CONGRUENCIA MODO-FEATURES**: El modo seleccionado debe ser congruente con el número de features en el input. Si el usuario selecciona "completo" pero el input contiene **menos de 2 features**, el prompt debe **rechazar la ejecución** y solicitar explícitamente más features o cambiar a "feature". Si el usuario selecciona "feature" pero el input contiene **más de 1 feature**, el prompt debe **advertir** que solo el feature seleccionado será diseñado y los demás serán ignorados (a menos que el usuario confirme explícitamente cambiar a Modo Completo). |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
# [INPUT]
|
|
21
68
|
|
|
22
|
-
# [INPUT]:
|
|
23
69
|
- **PROYECTO**: [Nombre del Proyecto]
|
|
24
|
-
-
|
|
70
|
+
- **ÉPICAS / HISTORIAS DE USUARIO**: [Lista de historias con sus respectivos criterios de aceptación]
|
|
25
71
|
- **METAS DE NEGOCIO (PRD)**: [Metas estratégicas / Objetivos de negocio]
|
|
26
72
|
- **STACK TECNOLÓGICO**: [Tecnologías involucradas]
|
|
27
73
|
|
|
28
74
|
---
|
|
29
75
|
|
|
76
|
+
# MARCO DE NIVELES DE PRUEBA (REFERENCIA OBLIGATORIA)
|
|
77
|
+
|
|
78
|
+
Antes de iniciar el diseño, interioriza esta taxonomía. La distribución mínima por
|
|
79
|
+
feature se especifica en la Fase 4.1. Los niveles INT-X y E2E-X solo aplican en
|
|
80
|
+
**Modo Completo**.
|
|
81
|
+
|
|
82
|
+
| Nivel | Código | Definición | Aplica en |
|
|
83
|
+
| :--- | :--- | :--- | :--- |
|
|
84
|
+
| **Funcional Unitario** | `FU` | Valida una sola regla de negocio, campo o condición de forma aislada. Técnicas: BVA, Tablas de Decisión, Transición de Estados. Solo aplica para transiciones de estado inválidas, combinaciones no triviales de condiciones de negocio o valores límite de alto impacto. | Solo Modo Feature |
|
|
85
|
+
| **Integración intra-feature** | `INT` | Valida la interacción entre componentes, módulos o servicios **dentro del mismo feature**. Incluye contratos de API, servicios externos y consistencia entre capas del feature. | Ambos modos |
|
|
86
|
+
| **Integración entre features** | `INT-X` | Valida la interacción correcta **entre dos o más features distintos**: estados compartidos, saldos, pedidos, eventos asíncronos u orquestación de procesos entre módulos. | Solo Modo Completo |
|
|
87
|
+
| **End-to-End intra-feature** | `E2E` | Valida un flujo completo dentro de un único feature, desde el punto de entrada hasta el resultado de negocio final. | Ambos modos |
|
|
88
|
+
| **End-to-End multi-feature** | `E2E-X` | Valida un flujo de negocio completo que cruza **múltiples features**, representando el recorrido real de un usuario o proceso de principio a fin. | Solo Modo Completo |
|
|
89
|
+
| **Regresión** | `REG` | Valida que funcionalidades previamente estables no se vean afectadas por cambios en el feature actual. En Modo Feature se limita a features adyacentes directamente dependientes; en Modo Completo es exhaustiva. | Ambos modos |
|
|
90
|
+
| **Edge Cases / Puntos Ciegos** | `EC` | Cubre condiciones extremas, concurrencia, secuencias fuera de orden y puntos ciegos detectados en la Fase 3. | Ambos modos |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
# FASE 0: DECISIÓN INTERACTIVA DE MODO Y ÁMBITO
|
|
95
|
+
|
|
96
|
+
> ⚠️ **OBLIGATORIO**: Antes de ejecutar ninguna de las fases siguientes (1 a 6),
|
|
97
|
+
> el Arquitecto QA debe completar todos los pasos de la Fase 0 y esperar las
|
|
98
|
+
> respuestas del usuario. La ejecución de fases posteriores sin completar la
|
|
99
|
+
> Fase 0 es una violación de las Reglas de Oro.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 📋 Paso 0.1 — Pregunta de modo obligatoria
|
|
104
|
+
|
|
105
|
+
> **¿En qué modo deseas ejecutar el diseño de pruebas?**
|
|
106
|
+
>
|
|
107
|
+
> | Modo | Descripción |
|
|
108
|
+
> | :--- | :--- |
|
|
109
|
+
> | **Feature** | Pruebas para un feature individual con aislamiento total. No incluye integración entre features distintos (INT-X) ni flujos E2E-X multi-feature. |
|
|
110
|
+
> | **Completo** | Pruebas de integración entre features, regresión amplia y flujos críticos que cruzan múltiples features. Requiere al mínimo 2 features relacionados. |
|
|
111
|
+
>
|
|
112
|
+
> **Responde con:** `Feature` o `Completo`
|
|
113
|
+
|
|
114
|
+
**Espera la respuesta del usuario antes de continuar al Paso 0.1.5.**
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 📋 Paso 0.1.5 — Validación de congruencia Modo-Features *(NUEVO — RO-8)*
|
|
119
|
+
|
|
120
|
+
> ⚠️ **Ejecutar inmediatamente después del Paso 0.1, antes de continuar a 0.2 o 0.3**
|
|
121
|
+
|
|
122
|
+
### 🔍 Detección automática de features en el input
|
|
123
|
+
|
|
124
|
+
Antes de validar, el prompt debe **analizar el input** y determinar:
|
|
125
|
+
- **Número total de features** presentes en el campo ÉPICAS / HISTORIAS DE USUARIO
|
|
126
|
+
- **Lista de nombres de features** identificados
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### Caso A: Modo "completo" con < 2 features
|
|
131
|
+
|
|
132
|
+
**Si el usuario seleccionó "completo" pero el input contiene menos de 2 features:**
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## ❌ INCONGRUENCIA DETECTADA
|
|
136
|
+
|
|
137
|
+
| Parámetro | Valor |
|
|
138
|
+
| :--- | :--- |
|
|
139
|
+
| Modo seleccionado | **completo** |
|
|
140
|
+
| Features en input | **[1]** |
|
|
141
|
+
| Requisito del modo | Mínimo **2 features** (RO-2 y RO-8) |
|
|
142
|
+
|
|
143
|
+
### ❌ No es posible ejecutar en Modo Completo con un solo feature porque:
|
|
144
|
+
- El nivel INT-X requiere **integración entre features distintos** (mínimo 2 features)
|
|
145
|
+
- El nivel E2E-X requiere flujos que **crucen múltiples features** (mínimo 2 features)
|
|
146
|
+
- La regla RO-2 establece: "Obligatorio: INT-X, E2E-X multi-feature"
|
|
147
|
+
- La regla RO-8 establece la congruencia obligatoria
|
|
148
|
+
|
|
149
|
+
### 📋 ¿Cómo deseas corregir?
|
|
150
|
+
|
|
151
|
+
| Opción | Descripción |
|
|
152
|
+
| :--- | :--- |
|
|
153
|
+
| **A. Cambiar a Modo Feature** | Reconfiguro la ejecución a Modo Feature para el feature existente. Se generarán FU, INT, E2E, REG, EC (sin INT-X ni E2E-X). |
|
|
154
|
+
| **B. Agregar más features** | Proporciona al menos 2 features en total para ejecutar en Modo Completo. Puedes agregarlos ahora. |
|
|
155
|
+
| **C. Cancelar ejecución** | Termino el proceso sin generar casos. |
|
|
156
|
+
|
|
157
|
+
**Responde con:** `A`, `B` o `C`
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
- Si el usuario responde **A**: Reconfigurar automáticamente a Modo Feature y continuar al **Paso 0.2**.
|
|
161
|
+
- Si el usuario responde **B**: Esperar a que el usuario proporcione los features adicionales. Volver a validar.
|
|
162
|
+
- Si el usuario responde **C**: Terminar ejecución con mensaje: *"Ejecución cancelada por incongruencia modo-features."*
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### Caso B: Modo "feature" con > 1 feature
|
|
167
|
+
|
|
168
|
+
**Si el usuario seleccionó "feature" pero el input contiene más de 1 feature:**
|
|
169
|
+
|
|
170
|
+
```markdown
|
|
171
|
+
## ⚠️ ADVERTENCIA DE CONGRUENCIA
|
|
172
|
+
|
|
173
|
+
| Parámetro | Valor |
|
|
174
|
+
| :--- | :--- |
|
|
175
|
+
| Modo seleccionado | **feature** |
|
|
176
|
+
| Features en input | **[N] donde N > 1** |
|
|
177
|
+
| Regla aplicable | RO-1: "Prohibido: E2E-X multi-feature, INT-X, contexto heredado de otras features" |
|
|
178
|
+
| Regla aplicable | RO-8: "El modo seleccionado debe ser congruente con el número de features" |
|
|
179
|
+
|
|
180
|
+
### ⚠️ En Modo Feature, las pruebas se diseñan para **UN SOLO FEATURE** de forma aislada.
|
|
181
|
+
|
|
182
|
+
Las dependencias entre features NO serán probadas en esta ejecución porque:
|
|
183
|
+
- INT-X (integración entre features) está **prohibido** en Modo Feature
|
|
184
|
+
- E2E-X (flujos multi-feature) está **prohibido** en Modo Feature
|
|
185
|
+
- El contexto heredado de otros features está **prohibido**
|
|
186
|
+
|
|
187
|
+
### 📋 ¿Cuál feature debe ser diseñado?
|
|
188
|
+
|
|
189
|
+
| Opción | Descripción |
|
|
190
|
+
| :--- | :--- |
|
|
191
|
+
| **A. Diseñar solo el primer feature** | Tomo el primer feature de la lista como el feature activo. Los demás se ignoran en esta ejecución. |
|
|
192
|
+
| **B. Diseñar un feature específico** | Indícame cuál de los [N] features quieres diseñar (ej. "Feature X"). |
|
|
193
|
+
| **C. Cambiar a Modo Completo** | Reconfiguro la ejecución a Modo Completo para diseñar **todos** los features con INT-X y E2E-X. |
|
|
194
|
+
| **D. Cancelar ejecución** | Termino el proceso sin generar casos. |
|
|
195
|
+
|
|
196
|
+
**Responde con:** `A`, `B`, `C` o `D`
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
- Si el usuario responde **A** o **B**: Continuar con el feature seleccionado en Modo Feature, ignorando explícitamente los demás features (documentar en TSR qué features fueron excluidos).
|
|
200
|
+
- Si el usuario responde **C**: Reconfigurar automáticamente a Modo Completo. Si N > 4, activar **Paso 0.4** (macro-dominios). Si N ≤ 4, continuar al **Paso 0.3**.
|
|
201
|
+
- Si el usuario responde **D**: Terminar ejecución.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
### Caso C: Modo "feature" con exactamente 1 feature *(válido)*
|
|
206
|
+
|
|
207
|
+
✅ Continuar normalmente al **Paso 0.2**.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
### Caso D: Modo "completo" con ≥ 2 features *(válido)*
|
|
212
|
+
|
|
213
|
+
✅ Continuar normalmente.
|
|
214
|
+
- Si **N > 4**, continuar al **Paso 0.4** (macro-dominios)
|
|
215
|
+
- Si **N ≤ 4**, continuar al **Paso 0.3**
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 📋 Paso 0.2 — Solo si el modo activo es "feature" después del Paso 0.1.5
|
|
220
|
+
|
|
221
|
+
> **¿La feature seleccionada incluye frontend o es solo backend?**
|
|
222
|
+
>
|
|
223
|
+
> | Opción | Descripción |
|
|
224
|
+
> | :--- | :--- |
|
|
225
|
+
> | **Con frontend** | La feature tiene interfaz gráfica de usuario (React, Angular, formularios, modales, navegación por menús). |
|
|
226
|
+
> | **Sin frontend** | La feature es solo backend (API REST/GraphQL, microservicio, proceso batch, job asíncrono). |
|
|
227
|
+
>
|
|
228
|
+
> **Responde con:** `Con frontend` o `Sin frontend`
|
|
229
|
+
|
|
230
|
+
**Espera la respuesta del usuario. Registra la respuesta como el Tipo de Interfaz
|
|
231
|
+
activo para toda la ejecución.**
|
|
232
|
+
|
|
233
|
+
### Reglas según el Tipo de Interfaz seleccionado
|
|
234
|
+
|
|
235
|
+
#### 🔹 Tipo de Interfaz: "Sin frontend" — Reglas obligatorias
|
|
236
|
+
|
|
237
|
+
- **PROHIBIDO** generar casos que incluyan navegación por menús, clics en botones
|
|
238
|
+
o validaciones de UI.
|
|
239
|
+
- **PROHIBIDO** usar formulaciones como "ingresar al menú", "hacer clic en",
|
|
240
|
+
"seleccionar de la lista" o cualquier referencia a elementos visuales.
|
|
241
|
+
- **OBLIGATORIO** redactar todos los casos a nivel de **API**:
|
|
242
|
+
- Enviar solicitud al endpoint específico (método HTTP + URL completa)
|
|
243
|
+
- Validar código de respuesta HTTP (200, 201, 400, 401, 403, 404, 409, 422, 500, etc.)
|
|
244
|
+
- Verificar estructura del response (campos esperados, tipos de datos, valores exactos)
|
|
245
|
+
- Validar contratos OpenAPI / esquemas definidos
|
|
246
|
+
- Verificar headers, mensajes de error, payloads de respuesta
|
|
247
|
+
|
|
248
|
+
**Formato obligatorio para pasos (sin frontend):**
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
"Enviar solicitud [MÉTODO] a [endpoint completo] con [payload o descripción de datos],
|
|
252
|
+
esperar código [XXX] y validar que [condición específica y verificable]."
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Ejemplo válido (sin frontend):**
|
|
256
|
+
> "Enviar solicitud `POST` a `/api/v1/inventory/inventory-exits` con datos válidos de
|
|
257
|
+
> cabecera (warehouseId, date, reason), esperar código `201` y validar que el response
|
|
258
|
+
> contiene `state: 'DRAFT'` y un `id` de tipo UUID válido."
|
|
259
|
+
|
|
260
|
+
**Ejemplo inválido — NO USAR:**
|
|
261
|
+
> ❌ "Ingresar al menú de inventario, hacer clic en 'Nueva Salida', llenar el formulario
|
|
262
|
+
> y guardar."
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
#### 🔹 Tipo de Interfaz: "Con frontend" — Reglas obligatorias
|
|
267
|
+
|
|
268
|
+
- **PERMITIDO** generar pruebas funcionales desde la interfaz de usuario.
|
|
269
|
+
- **PRIORIZAR** pruebas de caja negra sobre integración directa de componentes.
|
|
270
|
+
- **OBLIGATORIO** incluir validaciones de:
|
|
271
|
+
- Componentes visibles en pantalla (textos, etiquetas, botones, íconos)
|
|
272
|
+
- Navegación entre pantallas y flujos de menú
|
|
273
|
+
- Mensajes de confirmación, error o advertencia visibles al usuario
|
|
274
|
+
- Comportamiento de modales, dropdowns, tabs y elementos interactivos
|
|
275
|
+
- Estados de habilitado/deshabilitado de controles según contexto
|
|
276
|
+
- Para funcionalidades que también tienen API subyacente, puede complementarse
|
|
277
|
+
con una validación del contrato de API, pero el paso principal debe estar en
|
|
278
|
+
términos de UI.
|
|
279
|
+
|
|
280
|
+
**Formato obligatorio para pasos (con frontend):**
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
"Ingresar al menú [ruta completa], realizar [acción específica con datos concretos],
|
|
284
|
+
esperar [resultado visible en UI con descripción exacta del comportamiento esperado]."
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**Ejemplo válido (con frontend):**
|
|
288
|
+
> "Ingresar al menú 'Inventario → Salidas Directas', hacer clic en 'Nueva Salida',
|
|
289
|
+
> completar el formulario de cabecera (almacén: 'CALI-01', fecha: hoy, motivo: 'Consumo
|
|
290
|
+
> interno'), hacer clic en 'Guardar', esperar que el sistema muestre el mensaje
|
|
291
|
+
> 'Documento creado exitosamente' y redirija a la pantalla de edición del documento
|
|
292
|
+
> con estado 'BORRADOR'."
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## 📋 Paso 0.3 — Solo si el usuario seleccionó "completo" con ≤ 4 features
|
|
297
|
+
|
|
298
|
+
> ⚠️ **Este paso solo se ejecuta si el modo activo es "completo", N ≤ 4 features, y se superó el Paso 0.1.5**
|
|
299
|
+
|
|
300
|
+
Una vez confirmado el modo y la validez, aplica las siguientes reglas antes de continuar.
|
|
301
|
+
|
|
302
|
+
### Reglas obligatorias para Modo Completo (batch ≤ 4 features)
|
|
303
|
+
|
|
304
|
+
1. **Identifica y lista los features relacionados** que serán diseñados en esta ejecución
|
|
305
|
+
(mínimo 2, **máximo 4 por batch** según RO-7).
|
|
306
|
+
2. **Documenta las dependencias entre features** antes de generar casos (ej.: control
|
|
307
|
+
de estados compartidos, saldos, pedidos, eventos asíncronos).
|
|
308
|
+
3. **Genera obligatoriamente** casos INT-X (integración entre features distintos).
|
|
309
|
+
4. **Genera obligatoriamente** casos E2E-X (flujos end-to-end que cruzan múltiples features).
|
|
310
|
+
5. **Incluye regresión completa** sobre flujos críticos de todos los features del grupo.
|
|
311
|
+
6. **Prioriza los casos por criticidad** (Alta, Media, Baja). No generes todos los casos
|
|
312
|
+
posibles; enfócate en cobertura de riesgo.
|
|
313
|
+
|
|
314
|
+
### Estructura de presentación para Modo Completo (previa a la Fase 1)
|
|
315
|
+
|
|
316
|
+
Presenta esta estructura al usuario y espera confirmación antes de iniciar la Fase 1:
|
|
317
|
+
|
|
318
|
+
```markdown
|
|
319
|
+
## Features agrupados para esta ejecución (batch de ≤ 4 features):
|
|
320
|
+
1. [Feature A] — [Propósito resumido]
|
|
321
|
+
2. [Feature B] — [Propósito resumido]
|
|
322
|
+
3. [Feature C] — [Propósito resumido]
|
|
323
|
+
|
|
324
|
+
## Dependencias identificadas:
|
|
325
|
+
- [Feature A] → [Feature B]: [descripción de la dependencia]
|
|
326
|
+
- [Feature B] → [Feature C]: [descripción de la dependencia]
|
|
327
|
+
|
|
328
|
+
## Matriz de priorización por feature:
|
|
329
|
+
| Feature | Criticidad | Justificación |
|
|
330
|
+
| :--- | :--- | :--- |
|
|
331
|
+
|
|
332
|
+
## Casos adicionales que se generarán (exclusivos de Modo Completo):
|
|
333
|
+
- INT-X: integración entre [Feature A] y [Feature B]
|
|
334
|
+
- E2E-X: flujo completo [Feature A → Feature B → Feature C]
|
|
335
|
+
- REG: regresión completa sobre features adyacentes
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
**Espera confirmación del usuario antes de continuar a la Fase 1.**
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## 📋 Paso 0.4 — Macro-dominios: Detección y descomposición automática *(NUEVO — RO-7)*
|
|
343
|
+
|
|
344
|
+
> ⚠️ **Este paso solo se ejecuta si el modo activo es "completo" y el número total de features en el input > 4**
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
### 📊 Paso 0.4.1 — Análisis de volumen
|
|
349
|
+
|
|
350
|
+
Calcula y presenta al usuario:
|
|
351
|
+
|
|
352
|
+
```markdown
|
|
353
|
+
## 📊 Análisis de volumen detectado
|
|
354
|
+
|
|
355
|
+
| Métrica | Valor |
|
|
356
|
+
| :--- | :--- |
|
|
357
|
+
| Total de features en input | [N] |
|
|
358
|
+
| Límite máximo por batch (RO-7) | 4 |
|
|
359
|
+
| Batches necesarios (mínimo teórico) | [ceil(N/4)] |
|
|
360
|
+
| Complejidad estimada | [Baja / Media / Alta / Muy Alta] |
|
|
361
|
+
|
|
362
|
+
### ⚠️ El diseño no puede ejecutarse en una sola iteración porque:
|
|
363
|
+
- [Razón 1: Combinaciones INT-X exceden capacidad de análisis]
|
|
364
|
+
- [Razón 2: Token overflow estimado]
|
|
365
|
+
- [Razón 3: Pérdida de coherencia en dependencias cruzadas]
|
|
366
|
+
- [Razón 4: La regla RO-7 establece límite máximo de 4 features por batch]
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
### 📊 Paso 0.4.2 — Agrupación por cadenas de flujo *(no aleatoria)*
|
|
372
|
+
|
|
373
|
+
Analiza las dependencias reales entre features y agrupa siguiendo este algoritmo:
|
|
374
|
+
|
|
375
|
+
**Algoritmo de descomposición:**
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
1. Identificar todos los features y sus dependencias declaradas
|
|
379
|
+
2. Construir grafo dirigido: Feature A → Feature B (si A produce datos que B consume)
|
|
380
|
+
3. Detectar cadenas lineales (A → B → C → D)
|
|
381
|
+
4. Para cadenas > 4 features, partir en sub-cadenas de máximo 4
|
|
382
|
+
5. Para features sin dependencias claras, agrupar por dominio semántico
|
|
383
|
+
6. Validar que cada grupo tenga sentido de negocio por sí mismo
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**Presenta las cadenas identificadas:**
|
|
387
|
+
|
|
388
|
+
```markdown
|
|
389
|
+
## 🗂️ Cadenas de flujo identificadas (agrupación por dependencias reales)
|
|
390
|
+
|
|
391
|
+
| Cadena | Features | Longitud | Tipo de relación | Prioridad sugerida |
|
|
392
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
393
|
+
| **Cadena A: [Nombre]** | [F1] → [F2] → [F3] → [F4] | 4 | Flujo principal | Alta |
|
|
394
|
+
| **Cadena B: [Nombre]** | [F5] → [F6] → [F7] | 3 | Flujo secundario | Media |
|
|
395
|
+
| **Cadena C: [Nombre]** | [F8] → [F9] → [F10] → [F11] | 4 | Flujo alternativo | Media |
|
|
396
|
+
| **Cadena D: [Nombre]** | [F12] → [F13] | 2 | Flujo independiente | Baja |
|
|
397
|
+
|
|
398
|
+
### 📋 Justificación de agrupación:
|
|
399
|
+
- [Explicar por qué estas cadenas y no otras]
|
|
400
|
+
- [Mencionar si algún feature quedó fuera y por qué]
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
### 📊 Paso 0.4.3 — Matriz de priorización por cadena
|
|
406
|
+
|
|
407
|
+
Evalúa cada cadena según criterios de negocio:
|
|
408
|
+
|
|
409
|
+
| Criterio | Peso | Descripción |
|
|
410
|
+
| :--- | :--- | :--- |
|
|
411
|
+
| **Valor de negocio** | 40% | ¿Qué impacto tiene esta cadena en los objetivos del sprint? |
|
|
412
|
+
| **Riesgo técnico** | 30% | ¿Qué tan compleja es la integración entre estos features? |
|
|
413
|
+
| **Dependencia externa** | 20% | ¿Esta cadena es prerequisito para otras? |
|
|
414
|
+
| **Cobertura de regresión** | 10% | ¿Protege flujos ya estabilizados? |
|
|
415
|
+
|
|
416
|
+
**Presenta la matriz:**
|
|
417
|
+
|
|
418
|
+
```markdown
|
|
419
|
+
## 📊 Priorización de cadenas para el sprint actual
|
|
420
|
+
|
|
421
|
+
| Cadena | Valor negocio (1-5) | Riesgo técnico (1-5) | Dependencia externa (1-5) | Cobertura REG (1-5) | Puntaje total | Prioridad |
|
|
422
|
+
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
423
|
+
| Cadena A | 5 | 4 | 5 | 3 | **4.3** | **P0 (Alta)** |
|
|
424
|
+
| Cadena B | 4 | 3 | 3 | 4 | **3.5** | **P1 (Media-Alta)** |
|
|
425
|
+
| Cadena C | 3 | 4 | 2 | 2 | **2.9** | **P2 (Media)** |
|
|
426
|
+
| Cadena D | 2 | 2 | 1 | 1 | **1.6** | **P3 (Baja)** |
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
> **Fórmula de puntaje total**: (Valor×0.40) + (Riesgo×0.30) + (Dependencia×0.20) + (Cobertura×0.10)
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
### 📊 Paso 0.4.4 — Oferta de estrategia de ejecución
|
|
434
|
+
|
|
435
|
+
Presenta las opciones al usuario:
|
|
436
|
+
|
|
437
|
+
```markdown
|
|
438
|
+
## 📋 ¿Cómo deseas proceder con estas [N] cadenas?
|
|
439
|
+
|
|
440
|
+
| Opción | Descripción | Entregables | Esfuerzo estimado |
|
|
441
|
+
| :--- | :--- | :--- | :--- |
|
|
442
|
+
| **A. Batch secuencial completo (recomendado)** | Ejecuto el diseño cadena por cadena, en orden de prioridad. Entrego un TSR parcial por cada batch y un TSR consolidado al final. | TSR Batch 1, TSR Batch 2, ..., TSR Consolidado | [N] iteraciones del prompt |
|
|
443
|
+
| **B. Solo cadenas de alta prioridad** | Diseño exclusivamente las cadenas con prioridad P0 y P1. Las de P2/P3 se excluyen de este sprint. | TSR de cadenas priorizadas | [M] iteraciones |
|
|
444
|
+
| **C. Primera cadena solo** | Diseño solo la cadena de mayor prioridad (Cadena A). Las demás se postergan. | TSR Batch 1 | 1 iteración |
|
|
445
|
+
| **D. Forzar todo en una ejecución** | ⚠️ **NO RECOMENDADO**. Intento generar todo en una sola ejecución. Riesgo de token overflow (>100k tokens) y pérdida de coherencia en dependencias. | TSR único (potencialmente incompleto) | 1 iteración (con advertencia) |
|
|
446
|
+
|
|
447
|
+
**Responde con:** `A`, `B`, `C` o `D`
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
**Espera la respuesta del usuario.**
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
### 📊 Paso 0.4.5 — Configuración del batch actual
|
|
455
|
+
|
|
456
|
+
Si el usuario seleccionó **A**, **B** o **C**, identifica qué cadena(s) se diseñarán en **esta ejecución**:
|
|
457
|
+
|
|
458
|
+
```markdown
|
|
459
|
+
## ✅ Configuración para esta ejecución
|
|
460
|
+
|
|
461
|
+
| Parámetro | Valor |
|
|
462
|
+
| :--- | :--- |
|
|
463
|
+
| Modo | Completo |
|
|
464
|
+
| Batch actual | [1 / 2 / ... / N] |
|
|
465
|
+
| Cadenas en este batch | [Lista de cadenas] |
|
|
466
|
+
| Features en scope | [Lista de features, máximo 4] |
|
|
467
|
+
| Batches restantes | [Lista de cadenas pendientes] |
|
|
468
|
+
|
|
469
|
+
### 📌 Instrucciones post-ejecución:
|
|
470
|
+
|
|
471
|
+
Al finalizar esta ejecución (Fase 6), el TSR debe incluir:
|
|
472
|
+
1. Los resultados de este batch
|
|
473
|
+
2. Un resumen de pendientes: "Pendiente de diseñar: [lista de cadenas pendientes]"
|
|
474
|
+
3. Una invitación a ejecutar el siguiente batch con el mismo prompt
|
|
475
|
+
|
|
476
|
+
**¿Confirmas la configuración?** Responde `CONFIRMO` para continuar a la Fase 1.
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
### 📊 Paso 0.4.6 — Caso especial: Macro-dominio homogéneo *(ej. 10+ features de un solo dominio)*
|
|
482
|
+
|
|
483
|
+
Si todas las features pertenecen al **mismo dominio funcional** (ej. 10 features de Ventas, 12 de Compras, etc.):
|
|
484
|
+
|
|
485
|
+
```markdown
|
|
486
|
+
## 🚨 Macro-dominio homogéneo detectado
|
|
487
|
+
|
|
488
|
+
| Métrica | Valor |
|
|
489
|
+
| :--- | :--- |
|
|
490
|
+
| Dominio | [Ventas / Compras / Inventarios / etc.] |
|
|
491
|
+
| Features | [Lista completa] |
|
|
492
|
+
| Característica | Todas pertenecen a la misma cadena de valor |
|
|
493
|
+
|
|
494
|
+
### ❌ La agrupación por cadenas de flujo es OBLIGATORIA
|
|
495
|
+
|
|
496
|
+
No es posible diseñar [N] features del mismo dominio en paralelo porque:
|
|
497
|
+
- El flujo E2E-X podría atravesar [N] features (caso gigante de [N×3-4] pasos)
|
|
498
|
+
- Las combinaciones INT-X ([N×(N-1)/2] pares) exceden capacidad de análisis
|
|
499
|
+
- La salida estimada superaría [N×10,000] tokens
|
|
500
|
+
- La regla RO-7 establece límite máximo de 4 features por batch
|
|
501
|
+
|
|
502
|
+
### ✅ Estrategia obligatoria: Descomposición en sub-cadenas del dominio
|
|
503
|
+
|
|
504
|
+
| Sub-cadena | Features | Longitud | Descripción del flujo |
|
|
505
|
+
| :--- | :--- | :--- | :--- |
|
|
506
|
+
| **Sub-cadena 1** | [F1] → [F2] → [F3] → [F4] | 4 | [Flujo principal del dominio] |
|
|
507
|
+
| **Sub-cadena 2** | [F4] → [F5] → [F6] → [F7] | 4 | [Flujo de continuación] |
|
|
508
|
+
| **Sub-cadena 3** | [F8] → [F9] → [F10] | 3 | [Flujo de cierre] |
|
|
509
|
+
|
|
510
|
+
**¿Continuamos con la descomposición en sub-cadenas?** Responde `SI` o `NO`
|
|
511
|
+
|
|
512
|
+
- Si responde `SI`: Continuar al Paso 0.4.4 con las sub-cadenas identificadas.
|
|
513
|
+
- Si responde `NO`: Terminar ejecución con mensaje: *"Ejecución cancelada. No es posible diseñar un macro-dominio homogéneo sin descomposición en sub-cadenas (RO-7)."*
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
30
518
|
# FASE 1: GATEKEEPER GRANULAR Y LIMPIEZA DE BACKLOG
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- **
|
|
34
|
-
|
|
519
|
+
|
|
520
|
+
1. **Confirmar los Features en Scope**:
|
|
521
|
+
- En **Modo Feature**: el feature activo es el confirmado en la Fase 0 (Paso 0.2 o selección en Paso 0.1.5)
|
|
522
|
+
- En **Modo Completo**: los features en scope son los del batch confirmado en el Paso 0.3 o Paso 0.4.5 (máximo 4 features)
|
|
523
|
+
- No se incorporan features adicionales en esta fase.
|
|
524
|
+
2. **Filtrado por Ítem (Granular)**: Analiza cada historia individualmente dentro de su
|
|
525
|
+
funcionalidad agrupada (feature).
|
|
526
|
+
- **Clasificación**: Separa "Lógica de Negocio" (Funcional) de "Ruido Técnico"
|
|
527
|
+
(Infraestructura/Configuración).
|
|
528
|
+
3. **Visualización**: Genera la tabla "I. REPORTE DEL GATEKEEPER (GRANULAR)". Incluye
|
|
529
|
+
una columna para justificar la clasificación de "Ruido Técnico".
|
|
530
|
+
|
|
531
|
+
---
|
|
35
532
|
|
|
36
533
|
# FASE 2: EL ESCALÓN DE CRITERIOS (FAC)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
534
|
+
|
|
535
|
+
1. **Análisis de ACs Originales**: Analiza los criterios de aceptación de cada épica
|
|
536
|
+
e historia dentro del feature o grupo de features del batch actual.
|
|
537
|
+
2. **Redactar FAC (Feature Acceptance Criteria)**: Genera criterios de aceptación
|
|
538
|
+
**Funcionales** y **No Funcionales** utilizando estrictamente el **formato GHERKIN**
|
|
539
|
+
(Given/When/Then).
|
|
540
|
+
3. **Trazabilidad**: Todo el diseño de pruebas se basará en estos FAC, relacionando
|
|
541
|
+
siempre las épicas e historias que los originan.
|
|
542
|
+
4. **FAC por Nivel**: Etiqueta cada FAC con el nivel al que pertenece. En **Modo Feature**
|
|
543
|
+
los niveles válidos son: FU (con criterio de validez QA), INT, E2E, REG y EC. En
|
|
544
|
+
**Modo Completo** los niveles válidos son: INT, INT-X, E2E, E2E-X, REG y EC.
|
|
545
|
+
**FU no aplica en Modo Completo.** Esta clasificación guía la distribución de casos
|
|
546
|
+
en la Fase 4.
|
|
547
|
+
|
|
548
|
+
---
|
|
40
549
|
|
|
41
550
|
# FASE 3: DETECCIÓN DE PUNTOS CIEGOS (SIMULACIÓN UNIVERSAL)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
551
|
+
|
|
552
|
+
Analiza cada feature simulando los siguientes arquetipos para encontrar riesgos no
|
|
553
|
+
escritos en los criterios de aceptación:
|
|
554
|
+
|
|
555
|
+
- **Usuario Inexperto (Naive User)**: ¿Qué hace un usuario que no conoce las reglas
|
|
556
|
+
del negocio ni el orden esperado del flujo?
|
|
557
|
+
- **Usuario Malintencionado**: ¿Qué intenta explotar un actor con acceso parcial pero
|
|
558
|
+
intenciones de escalar privilegios, inyectar datos o corromper el sistema?
|
|
559
|
+
- **Perfil de Integración (APIs)**: ¿Qué ocurre cuando un sistema consumidor envía
|
|
560
|
+
payloads fuera de contrato, versiones desactualizadas o llamadas concurrentes?
|
|
561
|
+
- **Entorno Hostil (Infraestructura)**: ¿Qué pasa ante latencia, caída de servicios
|
|
562
|
+
dependientes, pérdida de red o reinicio inesperado del proceso?
|
|
563
|
+
- **Usuario de Consulta / Reportería**: ¿El sistema produce datos consistentes y
|
|
564
|
+
correctos en reportes, exportaciones y consultas de auditoría?
|
|
565
|
+
- **Auditor de Procesos**: ¿Los logs, trazas y registros de auditoría son completos,
|
|
566
|
+
inalterables y trazables al usuario correcto?
|
|
567
|
+
- **Arquetipos de Negocio (Específicos del Dominio)**: Identifica arquetipos adicionales
|
|
568
|
+
extraídos directamente de las épicas analizadas (ej. "Supervisor de aprobación
|
|
569
|
+
multinivel", "Agente de carga masiva", "Integrador ERP").
|
|
570
|
+
|
|
571
|
+
Para cada arquetipo y cada feature, documenta:
|
|
572
|
+
|
|
573
|
+
```
|
|
574
|
+
[Arquetipo] → [Riesgo Detectado] → [Consecuencia para el Negocio] → [Nivel sugerido: FU (solo Modo Feature) / INT / INT-X / E2E / E2E-X / REG / EC]
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
> **Nota Modo Completo**: Al analizar arquetipos en presencia de múltiples features,
|
|
578
|
+
> identifica explícitamente los riesgos que solo emergen de la **interacción entre features**
|
|
579
|
+
> (candidatos directos a INT-X y E2E-X).
|
|
580
|
+
|
|
581
|
+
---
|
|
45
582
|
|
|
46
583
|
# FASE 4: INGENIERÍA DE DISEÑO (ISO 29119-4) Y CALCULADORA DE RIESGO BMAD
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
584
|
+
|
|
585
|
+
## 4.1 — Distribución Mínima Obligatoria por Feature
|
|
586
|
+
|
|
587
|
+
Para cada feature, la matriz de pruebas **debe** respetar la siguiente distribución
|
|
588
|
+
mínima. Si un nivel no aplica por la naturaleza del feature, justificarlo explícitamente
|
|
589
|
+
en el TSR.
|
|
590
|
+
|
|
591
|
+
### Distribución para Modo Feature:
|
|
592
|
+
|
|
593
|
+
| Nivel | Código | Distribución Mínima |
|
|
594
|
+
| :--- | :--- | :--- |
|
|
595
|
+
| Funcional Unitario | FU | 10–15% |
|
|
596
|
+
| Integración intra-feature | INT | 30% |
|
|
597
|
+
| End-to-End intra-feature | E2E | 30% |
|
|
598
|
+
| Regresión (features adyacentes directos) | REG | 15% |
|
|
599
|
+
| Edge Cases / Puntos Ciegos | EC | 10–15% |
|
|
600
|
+
|
|
601
|
+
> **Criterio de validez QA para casos FU**: Un caso FU es válido en este diseño
|
|
602
|
+
> únicamente si cumple al menos una de estas condiciones:
|
|
603
|
+
> (a) cubre una **transición de estado inválida** (ej. intentar aprobar sin haber guardado),
|
|
604
|
+
> (b) cubre una **combinación no trivial de condiciones de negocio** mediante tabla de
|
|
605
|
+
> decisión (múltiples variables con resultado diferenciado), o
|
|
606
|
+
> (c) cubre un **valor límite en un campo de alto impacto de negocio** (montos, fechas
|
|
607
|
+
> de corte, umbrales de crédito).
|
|
608
|
+
> Las validaciones de campo aislado con regla simple se asumen cubiertas por pruebas
|
|
609
|
+
> unitarias del desarrollador y **no deben duplicarse** en este diseño.
|
|
610
|
+
|
|
611
|
+
### Distribución para Modo Completo (sobre el total del batch de features):
|
|
612
|
+
|
|
613
|
+
| Nivel | Código | Distribución Mínima |
|
|
614
|
+
| :--- | :--- | :--- |
|
|
615
|
+
| Integración intra-feature | INT | 15% |
|
|
616
|
+
| Integración entre features | INT-X | 27–30% |
|
|
617
|
+
| End-to-End intra-feature | E2E | 10% |
|
|
618
|
+
| End-to-End multi-feature | E2E-X | 27–30% |
|
|
619
|
+
| Regresión completa | REG | 10% |
|
|
620
|
+
| Edge Cases / Puntos Ciegos | EC | 10% |
|
|
621
|
+
|
|
622
|
+
> **¿Por qué no hay FU en Modo Completo?**
|
|
623
|
+
> Los casos FU relevantes para QA se generan exclusivamente en **Modo Feature**, donde
|
|
624
|
+
> el foco es el comportamiento interno del feature. En Modo Completo se asume que esa
|
|
625
|
+
> cobertura ya existe; regenerar FU aquí sería duplicación sin valor adicional.
|
|
626
|
+
> El riesgo real en un entorno multi-feature reside en las interfaces entre módulos
|
|
627
|
+
> (INT-X) y en los flujos de negocio transversales (E2E-X), no en las reglas internas
|
|
628
|
+
> de cada feature. El peso liberado se redistribuye íntegramente a esos dos niveles.
|
|
629
|
+
|
|
630
|
+
> **Nota crítica sobre E2E / E2E-X**: En Modo Feature, cada feature debe tener al
|
|
631
|
+
> menos un flujo E2E del "camino feliz" y uno del "camino alternativo". En Modo
|
|
632
|
+
> Completo, cada batch debe tener al menos un flujo E2E-X que encadene todos los
|
|
633
|
+
> features del batch de principio a fin.
|
|
55
634
|
|
|
56
635
|
---
|
|
57
636
|
|
|
58
|
-
|
|
637
|
+
## 4.2 — Técnicas de Diseño por Nivel
|
|
638
|
+
|
|
639
|
+
Aplica las siguientes técnicas según el nivel del caso. No limites el diseño a una
|
|
640
|
+
sola técnica por feature.
|
|
641
|
+
|
|
642
|
+
**Para casos FU — Funcional Unitario *(solo Modo Feature)*:**
|
|
643
|
+
- **Valores Límite (BVA)**: Para campos numéricos, fechas y rangos de alto impacto de negocio.
|
|
644
|
+
Cubre el valor exactamente en el límite inferior, inferior+1, superior-1, superior exacto,
|
|
645
|
+
y fuera de rango en cada extremo.
|
|
646
|
+
- **Tablas de Decisión**: Para reglas de negocio que combinan múltiples condiciones no triviales.
|
|
647
|
+
Cubre las combinaciones válidas e inválidas con resultado diferenciado entre sí.
|
|
648
|
+
- **Transición de Estados**: Para flujos de proceso y ciclos de vida de documentos.
|
|
649
|
+
Cubre cada transición válida, cada transición inválida y los estados trampa.
|
|
650
|
+
|
|
651
|
+
> Recuerda aplicar el criterio de validez QA definido en la Fase 4.1: solo se generan
|
|
652
|
+
> casos FU para transiciones de estado inválidas, combinaciones no triviales o valores
|
|
653
|
+
> límite de alto impacto. Las validaciones simples de campo son responsabilidad del desarrollador.
|
|
654
|
+
|
|
655
|
+
**Para casos INT (Integración intra-feature):**
|
|
656
|
+
- **Contrato de API**: Valida request/response completo incluyendo headers, códigos
|
|
657
|
+
HTTP, estructura del payload y manejo de errores entre componentes del feature.
|
|
658
|
+
- **Consistencia de datos**: Verifica que los cambios persistan correctamente en todos
|
|
659
|
+
los componentes involucrados (BD, caché, servicios downstream del feature).
|
|
660
|
+
- **Manejo de fallos de integración**: Simula la no-disponibilidad del servicio
|
|
661
|
+
dependiente y verifica el comportamiento de degradación (retry, fallback, error
|
|
662
|
+
claro al usuario).
|
|
663
|
+
|
|
664
|
+
**Para casos INT-X (Integración entre features — solo Modo Completo):**
|
|
665
|
+
- **Contrato entre módulos**: Valida que el output del Feature A es un input válido
|
|
666
|
+
para el Feature B, incluyendo transformaciones de datos y mapeos de campos.
|
|
667
|
+
- **Estados compartidos**: Verifica que los cambios de estado producidos en un feature
|
|
668
|
+
sean correctamente reflejados en los features dependientes.
|
|
669
|
+
- **Eventos y mensajería**: Si los features se comunican mediante colas o eventos,
|
|
670
|
+
verifica que los mensajes publicados sean correctamente consumidos y procesados.
|
|
671
|
+
- **Concurrencia entre features**: Simula operaciones simultáneas en features diferentes
|
|
672
|
+
que afecten al mismo recurso compartido.
|
|
673
|
+
|
|
674
|
+
**Para casos E2E (End-to-End intra-feature):**
|
|
675
|
+
- **Flujo de negocio completo del feature**: Pasos que representan el recorrido real
|
|
676
|
+
de un actor de negocio dentro del feature, no una secuencia técnica de llamadas.
|
|
677
|
+
- **Datos encadenados**: Los datos producidos en un paso son consumidos en el siguiente.
|
|
678
|
+
El resultado esperado se expresa en términos de valor de negocio.
|
|
679
|
+
- **Roles y permisos**: Si el flujo involucra múltiples roles, cada actor debe estar
|
|
680
|
+
explícitamente representado.
|
|
681
|
+
|
|
682
|
+
**Para casos E2E-X (End-to-End multi-feature — solo Modo Completo):**
|
|
683
|
+
- **Flujo de negocio transversal**: El recorrido debe cruzar al menos 2 features del
|
|
684
|
+
batch confirmado en la Fase 0. Ejemplo: Registro de pedido (Feature A) → Aprobación
|
|
685
|
+
de crédito (Feature B) → Generación de despacho (Feature C) → Facturación (Feature D).
|
|
686
|
+
- **Actor de negocio real**: Los pasos representan lo que un usuario o proceso real
|
|
687
|
+
haría, no una secuencia técnica.
|
|
688
|
+
- **Punto de inicio y fin de negocio**: El flujo comienza desde el primer evento de
|
|
689
|
+
negocio y termina con el resultado de negocio final verificable.
|
|
690
|
+
|
|
691
|
+
**Para casos REG (Regresión):**
|
|
692
|
+
- **Selección basada en impacto**: Elige flujos críticos de features adyacentes que
|
|
693
|
+
comparten componentes, entidades o APIs con el feature actual.
|
|
694
|
+
- **Smoke test de features vecinos**: Al menos un caso por feature adyacente
|
|
695
|
+
potencialmente afectado, enfocado en el flujo de mayor valor de negocio.
|
|
696
|
+
|
|
697
|
+
**Para Edge Cases / Puntos Ciegos:**
|
|
698
|
+
- **Valores extremos**: Nulos, vacíos, cadenas de longitud máxima+1, enteros en límite
|
|
699
|
+
de overflow, fechas inválidas (ej. 29-feb en año no bisiesto).
|
|
700
|
+
- **Concurrencia**: Dos o más sesiones ejecutando la misma operación simultáneamente
|
|
701
|
+
sobre el mismo recurso.
|
|
702
|
+
- **Secuencia fuera de orden**: Acciones que omiten pasos previos obligatorios del
|
|
703
|
+
flujo (ej. intentar aprobar sin haber guardado).
|
|
704
|
+
- **Caracteres especiales y encoding**: SQL injection patterns, XSS payloads, emojis,
|
|
705
|
+
caracteres RTL, longitudes de byte vs. longitud de carácter.
|
|
706
|
+
|
|
707
|
+
---
|
|
708
|
+
|
|
709
|
+
## 4.3 — Contrato de Detalle Obligatorio por Caso
|
|
710
|
+
|
|
711
|
+
> ⚠️ Los pasos deben ser descriptivos y detallados para su fácil comprensión y ejecución.
|
|
712
|
+
> Los resultados no pueden ser incompletos ni ambiguos. Cada caso debe cumplir todos
|
|
713
|
+
> los campos de este contrato.
|
|
714
|
+
|
|
715
|
+
### Campo: Escenario
|
|
716
|
+
|
|
717
|
+
Debe responder: ¿Qué condición de negocio o técnica se está verificando? ¿Cuál es
|
|
718
|
+
el comportamiento esperado del sistema ante esa condición específica? **Mínimo 2 oraciones.**
|
|
719
|
+
|
|
720
|
+
Ejemplo correcto: *"Verificar que el sistema rechaza la creación de una orden de compra
|
|
721
|
+
cuando el monto total supera el límite de crédito aprobado para el proveedor en el
|
|
722
|
+
período fiscal vigente. El sistema debe retornar un error descriptivo que incluya el
|
|
723
|
+
límite disponible y el monto solicitado."*
|
|
724
|
+
|
|
725
|
+
### Campo: Precondiciones
|
|
726
|
+
|
|
727
|
+
Debe especificar el estado o condición exacta del sistema antes de ejecutar el caso:
|
|
728
|
+
- Entidades que deben existir con sus estados (maestros, registros, documentos)
|
|
729
|
+
- Permisos y roles del actor que ejecuta la prueba
|
|
730
|
+
- Configuraciones o parámetros del sistema relevantes
|
|
731
|
+
- Dependencias de otros casos (si aplica)
|
|
732
|
+
|
|
733
|
+
### Campo: Pasos
|
|
734
|
+
|
|
735
|
+
Cada paso debe ser una instrucción funcional precisa y ejecutable. El lenguaje y
|
|
736
|
+
formato dependen del Tipo de Interfaz definido en la Fase 0:
|
|
737
|
+
|
|
738
|
+
**Para pruebas de interfaz de usuario (Tipo de Interfaz: con frontend):**
|
|
739
|
+
- Ruta de navegación completa (ej. "Menú principal → Compras → Órdenes → Nueva Orden")
|
|
740
|
+
- Campos a completar con valores concretos
|
|
741
|
+
- Acciones específicas (clic, selección, ingreso de datos)
|
|
742
|
+
- Si el paso implica esperar una respuesta del sistema, indicarlo explícitamente
|
|
743
|
+
|
|
744
|
+
**Para pruebas de API (Tipo de Interfaz: sin frontend):**
|
|
745
|
+
- Método HTTP y URL completa del endpoint
|
|
746
|
+
- Headers requeridos (Content-Type, Authorization, etc.)
|
|
747
|
+
- Body completo con tipos explícitos y valores de ejemplo concretos
|
|
748
|
+
- Si el caso es de integración, indicar qué sistema realiza la llamada y bajo qué condición
|
|
749
|
+
|
|
750
|
+
**Para casos INT-X y E2E-X (Modo Completo):**
|
|
751
|
+
- Identificar explícitamente en cada paso a qué feature pertenece la acción
|
|
752
|
+
- Señalar los puntos de transferencia entre features (ej. "El ID generado en el paso 3
|
|
753
|
+
[Feature A] se utiliza como input del paso 4 [Feature B]")
|
|
754
|
+
|
|
755
|
+
### Campo: Resultado Esperado
|
|
756
|
+
|
|
757
|
+
Debe ser verificable, específico, descriptivo y completo. Incluir **todos** los
|
|
758
|
+
elementos que apliquen según el tipo de caso:
|
|
759
|
+
|
|
760
|
+
- **Respuesta del sistema**: mensaje exacto, código HTTP o estado visible en UI
|
|
761
|
+
- **Cambios en la interfaz de usuario**: badges de estado, elementos que aparecen o
|
|
762
|
+
desaparecen, mensajes de confirmación o error visibles al usuario
|
|
763
|
+
- **Cambios en base de datos**: entidad creada/modificada/eliminada con los valores
|
|
764
|
+
esperados en los campos clave
|
|
765
|
+
- **Eventos publicados o mensajes generados**: nombre del evento, campos del payload
|
|
766
|
+
esperado (para sistemas con colas de mensajería o eventos de dominio)
|
|
767
|
+
- **Estado del sistema después de la operación**: ¿qué queda diferente respecto al
|
|
768
|
+
estado inicial definido en las precondiciones?
|
|
769
|
+
|
|
770
|
+
---
|
|
771
|
+
|
|
772
|
+
## 4.4 — Calculadora de Riesgo BMAD
|
|
773
|
+
|
|
774
|
+
$$Riesgo = Impacto\ (1\text{-}5) \times Probabilidad\ (1\text{-}5)$$
|
|
775
|
+
|
|
776
|
+
| Rango | Prioridad | Descripción |
|
|
777
|
+
| :--- | :--- | :--- |
|
|
778
|
+
| 16–25 | **P0 — Crítico** | Bloquea el negocio, pérdida de datos o falla de seguridad |
|
|
779
|
+
| 10–15 | **P1 — Alto** | Degrada funcionalidad principal o impacta múltiples usuarios |
|
|
780
|
+
| 5–9 | **P2 — Medio** | Afecta flujos secundarios o casos de borde conocidos |
|
|
781
|
+
| <5 | **P3 — Bajo** | Impacto cosmético o escenario de muy baja probabilidad |
|
|
782
|
+
|
|
783
|
+
---
|
|
784
|
+
|
|
785
|
+
# FORMATO DE SALIDA (ESTRICTO)
|
|
786
|
+
|
|
787
|
+
---
|
|
59
788
|
|
|
60
789
|
### I. REPORTE DEL GATEKEEPER (GRANULAR)
|
|
61
|
-
|
|
62
|
-
|
|
|
790
|
+
|
|
791
|
+
| ID Historia | Nombre / Épica | Feature Asociado | Clasificación | Justificación / Explicación de Ruido Técnico |
|
|
792
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
793
|
+
|
|
794
|
+
---
|
|
63
795
|
|
|
64
796
|
### II. DEFINICIÓN DE FEATURES Y CRITERIOS MAESTROS (FAC) EN GHERKIN
|
|
65
|
-
|
|
797
|
+
|
|
798
|
+
*(Repetir este bloque por cada Feature identificado en el **batch** actual. En Modo Completo, presentar todos los features del **batch** confirmado en la Fase 0.)*
|
|
799
|
+
|
|
66
800
|
- **Feature**: [Nombre de la Funcionalidad]
|
|
67
|
-
- **
|
|
68
|
-
- **
|
|
69
|
-
-
|
|
70
|
-
|
|
801
|
+
- **Modo Activo**: [Feature / Completo]
|
|
802
|
+
- **Tipo de Interfaz**: [Con frontend / Sin frontend] *(solo Modo Feature)*
|
|
803
|
+
- **Épicas/Historias Asociadas**: [Lista de IDs]
|
|
804
|
+
|
|
805
|
+
**FAC Funcionales (Gherkin) — con etiqueta de nivel:**
|
|
806
|
+
|
|
807
|
+
```gherkin
|
|
808
|
+
# Nivel: FU | INT | INT-X | E2E | E2E-X | REG | EC
|
|
809
|
+
# Modo Aplica: Feature | Completo | Ambos
|
|
810
|
+
Scenario: [Nombre descriptivo del criterio]
|
|
811
|
+
Given [estado inicial del sistema con datos concretos]
|
|
812
|
+
When [acción específica del actor con datos concretos]
|
|
813
|
+
Then [resultado verificable con valores esperados exactos]
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
**FAC No Funcionales (Gherkin):**
|
|
817
|
+
|
|
818
|
+
```gherkin
|
|
819
|
+
# Nivel: INT | E2E — Tipo: Rendimiento | Seguridad | Disponibilidad
|
|
820
|
+
Scenario: [Nombre descriptivo]
|
|
821
|
+
Given [condición de carga o contexto de seguridad]
|
|
822
|
+
When [operación ejecutada bajo esa condición]
|
|
823
|
+
Then [umbral o comportamiento esperado con valor numérico]
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
- **Dependencias del Feature**: [Componentes técnicos requeridos]
|
|
827
|
+
- **Dependencias hacia otros Features (Modo Completo)**: [Features que consumen o producen datos para este feature]
|
|
828
|
+
- **Features Adyacentes Potencialmente Afectados**: [Lista — insumo para casos REG]
|
|
829
|
+
|
|
830
|
+
---
|
|
71
831
|
|
|
72
832
|
### III. PUNTOS CIEGOS DETECTADOS POR FEATURE
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
833
|
+
|
|
834
|
+
| Feature | Arquetipo | Riesgo Detectado | Consecuencia para el Negocio | Nivel Sugerido | Modo |
|
|
835
|
+
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
836
|
+
|
|
837
|
+
---
|
|
838
|
+
|
|
839
|
+
### IV. DEPENDENCIAS ENTRE FEATURES *(Solo Modo Completo)*
|
|
840
|
+
|
|
841
|
+
| Feature Origen | Feature Destino | Tipo de Dependencia | Dato / Estado Compartido | Riesgo si Falla |
|
|
842
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
843
|
+
|
|
844
|
+
> *Omitir esta sección en Modo Feature.*
|
|
845
|
+
|
|
846
|
+
---
|
|
847
|
+
|
|
848
|
+
### V. MATRIZ INTEGRAL DE PRUEBAS (DISEÑO 360°)
|
|
849
|
+
|
|
850
|
+
> **Instrucción de llenado**: Presentar la totalidad de los casos. Respetar la
|
|
851
|
+
> distribución mínima según el modo activo (Fase 4.1). Aplicar el Contrato de Detalle
|
|
852
|
+
> de la Fase 4.3 sin excepción. Está prohibido dejar campos en blanco o con valores
|
|
853
|
+
> genéricos. El lenguaje de los casos debe seguir las reglas del Tipo de Interfaz
|
|
854
|
+
> definido en la Fase 0.
|
|
855
|
+
|
|
856
|
+
| ID | Feature | Épicas Asociadas | Modo | Nivel (FU/INT/INT-X/E2E/E2E-X/REG/EC) | Tipo Interfaz | Técnica | Escenario | Precondiciones | Pasos | Resultado Esperado | Riesgo (IxP) | Prioridad |
|
|
857
|
+
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
858
|
+
|
|
859
|
+
**Convención de IDs**: `[FEATURE_CODE]-[NIVEL]-[NNN]`
|
|
860
|
+
|
|
861
|
+
Ejemplos:
|
|
862
|
+
- `VNT-FU-001` — Funcional Unitario, Feature Ventas
|
|
863
|
+
- `VNT-INT-001` — Integración intra-feature
|
|
864
|
+
- `INV-INTX-001` — Integración entre features (VNT → INV)
|
|
865
|
+
- `VNT-E2E-001` — End-to-End intra-feature
|
|
866
|
+
- `VNT-E2EX-001` — End-to-End multi-feature (Modo Completo)
|
|
867
|
+
- `VNT-REG-001` — Regresión
|
|
868
|
+
- `VNT-EC-001` — Edge Case
|
|
869
|
+
|
|
870
|
+
---
|
|
871
|
+
|
|
872
|
+
### VI. INFORME TSR (TEST SUMMARY REPORT)
|
|
873
|
+
|
|
874
|
+
**1. Configuración de Ejecución**
|
|
875
|
+
|
|
876
|
+
| Parámetro | Valor |
|
|
877
|
+
| :--- | :--- |
|
|
878
|
+
| Modo de Ejecución | [Feature / Completo] |
|
|
879
|
+
| Tipo de Interfaz | [Con frontend / Sin frontend / N/A — Modo Completo] |
|
|
880
|
+
| Features en Scope | [Lista de features del batch actual] |
|
|
881
|
+
| Batch Info *(solo si aplica macro-dominios)* | Batch [X] de [Total], Pendientes: [lista] |
|
|
882
|
+
|
|
883
|
+
**2. Métricas de Diseño General**
|
|
884
|
+
|
|
885
|
+
| Métrica | Valor |
|
|
886
|
+
| :--- | :--- |
|
|
887
|
+
| Features Identificados | |
|
|
888
|
+
| Épicas Totales Analizadas | |
|
|
889
|
+
| Historias de Ruido Técnico (excluidas) | |
|
|
890
|
+
| Total de Casos de Prueba Generados | |
|
|
891
|
+
| Casos P0 (Críticos) | |
|
|
892
|
+
| Casos P1 (Altos) | |
|
|
893
|
+
| Casos P2/P3 (Medios/Bajos) | |
|
|
894
|
+
|
|
895
|
+
**3. Distribución por Nivel de Prueba**
|
|
896
|
+
|
|
897
|
+
*Para Modo Feature:*
|
|
898
|
+
|
|
899
|
+
| Nivel | Casos Generados | % del Total | Mínimo Requerido | ¿Cumple? |
|
|
900
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
901
|
+
| Funcional Unitario (FU) | | | 10–15% | |
|
|
902
|
+
| Integración intra-feature (INT) | | | 30% | |
|
|
903
|
+
| End-to-End intra-feature (E2E) | | | 30% | |
|
|
904
|
+
| Regresión (REG) | | | 15% | |
|
|
905
|
+
| Edge Cases / Puntos Ciegos (EC) | | | 10–15% | |
|
|
906
|
+
|
|
907
|
+
*Para Modo Completo:*
|
|
908
|
+
|
|
909
|
+
| Nivel | Casos Generados | % del Total | Mínimo Requerido | ¿Cumple? |
|
|
910
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
911
|
+
| Integración intra-feature (INT) | | | 15% | |
|
|
912
|
+
| Integración entre features (INT-X) | | | 27–30% | |
|
|
913
|
+
| End-to-End intra-feature (E2E) | | | 10% | |
|
|
914
|
+
| End-to-End multi-feature (E2E-X) | | | 27–30% | |
|
|
915
|
+
| Regresión (REG) | | | 10% | |
|
|
916
|
+
| Edge Cases / Puntos Ciegos (EC) | | | 10% | |
|
|
917
|
+
|
|
918
|
+
> Si algún nivel no alcanza el mínimo, documentar la justificación aquí.
|
|
919
|
+
|
|
920
|
+
**4. Riesgos Críticos P0**
|
|
921
|
+
|
|
922
|
+
Lista detallada de todos los riesgos con puntaje 16–25: ID del caso, Feature,
|
|
923
|
+
consecuencia de negocio y estrategia de mitigación recomendada.
|
|
924
|
+
|
|
925
|
+
**5. Cobertura P0**: Porcentaje de riesgos críticos cubiertos por al menos un caso P0.
|
|
926
|
+
|
|
927
|
+
**6. Tablas de Cobertura Específicas**
|
|
928
|
+
|
|
929
|
+
*Cobertura por Feature*
|
|
930
|
+
|
|
931
|
+
| Feature | Casos FU *(solo Modo Feature)* | Casos INT | Casos INT-X | Casos E2E | Casos E2E-X | Casos REG | Casos EC | Total | P0 |
|
|
932
|
+
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
933
|
+
|
|
934
|
+
*Cobertura de Seguridad*
|
|
935
|
+
|
|
936
|
+
| Riesgo de Seguridad | Arquetipo Origen | ID(s) de Caso(s) | Nivel | Prioridad |
|
|
937
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
938
|
+
|
|
939
|
+
*Cobertura de Performance*
|
|
940
|
+
|
|
941
|
+
| Escenario de Carga | SLA / Umbral Esperado | ID(s) de Caso(s) | Nivel | Prioridad |
|
|
942
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
943
|
+
|
|
944
|
+
*Cobertura de Integraciones*
|
|
945
|
+
|
|
946
|
+
| Integración / Servicio | Tipo de Validación | ID(s) de Caso(s) | Nivel | Prioridad |
|
|
947
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
948
|
+
|
|
949
|
+
*Cobertura de Regresión*
|
|
950
|
+
|
|
951
|
+
| Feature Adyacente Cubierto | Flujo Crítico Verificado | ID(s) de Caso(s) REG | Justificación |
|
|
952
|
+
| :--- | :--- | :--- | :--- |
|
|
953
|
+
|
|
954
|
+
*Cobertura de Integración entre Features (Solo Modo Completo)*
|
|
955
|
+
|
|
956
|
+
| Features Integrados | Dependencia Cubierta | ID(s) de Caso(s) INT-X / E2E-X | Prioridad |
|
|
957
|
+
| :--- | :--- | :--- | :--- |
|
|
958
|
+
|
|
959
|
+
*[Otras tablas de cobertura técnica relevantes según el dominio del proyecto]*
|
|
960
|
+
|
|
961
|
+
---
|
|
962
|
+
|
|
963
|
+
**7. Resumen de Pendientes** *(solo si aplica macro-dominios con múltiples batches)*
|
|
964
|
+
|
|
965
|
+
| Cadena/Batch Pendiente | Features | Prioridad | Estado |
|
|
966
|
+
| :--- | :--- | :--- | :--- |
|
|
967
|
+
| Batch 2: Cadena B | [F5, F6, F7] | Media-Alta | Pendiente de diseñar |
|
|
968
|
+
| Batch 3: Cadena C | [F8, F9, F10, F11] | Media | Pendiente de diseñar |
|
|
969
|
+
|
|
970
|
+
> **Próximo paso**: Ejecutar nuevamente este prompt con el mismo input pero seleccionando "completo" y confirmando el siguiente batch.
|
|
971
|
+
|
|
972
|
+
---
|
|
93
973
|
|
|
94
974
|
### APÉNDICE: MATRIZ DE TRAZABILIDAD
|
|
95
|
-
|
|
975
|
+
|
|
976
|
+
**Jerarquía**: Funcionalidad → FAC → Épicas/Historias → Casos de Prueba por Nivel
|
|
977
|
+
|
|
978
|
+
```
|
|
979
|
+
[FEATURE: Nombre del Feature]
|
|
980
|
+
├── FAC-001: [Criterio de aceptación]
|
|
981
|
+
│ ├── Épicas/HU: [IDs]
|
|
982
|
+
│ ├── FU: [VNT-FU-001, ...] ← Solo Modo Feature
|
|
983
|
+
│ ├── INT: [VNT-INT-001, ...]
|
|
984
|
+
│ ├── INT-X: [INV-INTX-001, ...] ← Solo Modo Completo
|
|
985
|
+
│ ├── E2E: [VNT-E2E-001, ...]
|
|
986
|
+
│ ├── E2E-X: [VNT-E2EX-001, ...] ← Solo Modo Completo
|
|
987
|
+
│ └── REG: [VNT-REG-001, ...]
|
|
988
|
+
├── FAC-002: [Criterio de aceptación]
|
|
989
|
+
│ └── ...
|
|
990
|
+
└── Puntos Ciegos sin FAC explícito:
|
|
991
|
+
└── EC: [VNT-EC-001, ...]
|
|
992
|
+
```
|
|
993
|
+
|
|
994
|
+
---
|
|
995
|
+
|
|
996
|
+
### VII. EXPORTACIÓN ESTRUCTURADA (YAML)
|
|
997
|
+
|
|
998
|
+
Además de la Matriz Integral en Markdown (Sección V), genera un archivo
|
|
999
|
+
`test-design-{modulo}.yml` con la siguiente estructura:
|
|
1000
|
+
|
|
1001
|
+
**Estructura del YAML:**
|
|
1002
|
+
|
|
1003
|
+
1. `metadata` — workflow, phase, methodology, project, mode, features_in_scope, batch_info
|
|
1004
|
+
2. `gatekeeper` — clasificación de historias (Lógica de Negocio vs Ruido Técnico)
|
|
1005
|
+
3. `features` — FAC Gherkin + blind_spots por feature
|
|
1006
|
+
4. `dependencies` — relaciones entre features
|
|
1007
|
+
5. `test_matrix` — todos los casos de la Matriz Integral con `steps` como ARRAY:
|
|
1008
|
+
- Campos 1–9 y 11–13: igual que la tabla Markdown
|
|
1009
|
+
- Campo 10 (`steps`): expandir a array de objetos con `paso`, `accion`, `resultado`, `datos`
|
|
1010
|
+
- Regla: 1 paso = 1 acción atómica. NO agrupar múltiples acciones en un paso.
|
|
1011
|
+
6. `tsr` — métricas, distribución por nivel, pending_batches
|
|
1012
|
+
7. `traceability` — mapeo FAC → casos
|
|
1013
|
+
|
|
1014
|
+
**Regla de consistencia:** El YAML debe contener exactamente los mismos casos
|
|
1015
|
+
que la Matriz Markdown. Si la matriz tiene N filas, el YAML tiene N entries
|
|
1016
|
+
en `test_matrix`. Cero desviaciones.
|
|
1017
|
+
|
|
1018
|
+
**Consumidores del YAML:**
|
|
1019
|
+
- AgileTest (`create_agiletest_issues.py`) — crea Test Cases + Test Steps en Jira
|
|
1020
|
+
- Agente Ejecutor E2E — genera `.spec.ts` Playwright desde los pasos
|
|
1021
|
+
- Motor de Datos — lee `datos` por paso para generar seeds en BD
|
|
1022
|
+
|
|
1023
|
+
---
|
|
1024
|
+
|
|
1025
|
+
## 📋 Lista de Verificación del Arquitecto (Auto-revisión antes de entregar)
|
|
1026
|
+
|
|
1027
|
+
Antes de entregar el diseño de pruebas, verifica cada punto:
|
|
1028
|
+
|
|
1029
|
+
### Fase 0 — Configuración
|
|
1030
|
+
- [ ] ¿Se ejecutó la Fase 0 completa antes de iniciar cualquier otra fase?
|
|
1031
|
+
- [ ] ¿El modo activo (Feature / Completo) fue confirmado por el usuario?
|
|
1032
|
+
- [ ] **¿Se validó la congruencia entre el modo y el número de features (Paso 0.1.5)?**
|
|
1033
|
+
- [ ] **¿Se resolvió cualquier incongruencia antes de continuar (Casos A, B, C, D del Paso 0.1.5)?**
|
|
1034
|
+
- [ ] ¿El tipo de interfaz (con frontend / sin frontend) fue confirmado? *(aplica solo a Modo Feature)*
|
|
1035
|
+
- [ ] ¿En Modo Completo con ≤ 4 features, se presentó y confirmó el grupo de features antes de continuar?
|
|
1036
|
+
- [ ] **¿En Modo Completo con > 4 features, se ejecutó el Paso 0.4 (macro-dominios) y se confirmó la estrategia de batches?**
|
|
1037
|
+
- [ ] ¿En Modo Completo, se documentaron las dependencias entre features antes de generar casos?
|
|
1038
|
+
|
|
1039
|
+
### Reglas de Oro
|
|
1040
|
+
- [ ] ¿Ningún caso en Modo Feature incluye INT-X, E2E-X o contexto heredado de otro feature?
|
|
1041
|
+
- [ ] ¿Ningún caso en Modo Feature usa lenguaje de UI si el tipo de interfaz es "sin frontend"?
|
|
1042
|
+
- [ ] ¿Ningún caso en Modo Feature usa lenguaje de API puro si el tipo de interfaz es "con frontend"?
|
|
1043
|
+
- [ ] ¿En Modo Completo, **no existe ningún caso FU**? (prohibido por RO-2; se asume cubierto por Modo Feature)
|
|
1044
|
+
- [ ] ¿En Modo Completo, existen obligatoriamente casos INT-X y E2E-X?
|
|
1045
|
+
- [ ] **¿Se respetó el límite de 4 features por batch (RO-7)?**
|
|
1046
|
+
- [ ] **¿Se validó la congruencia Modo-Features (RO-8) antes de generar casos?**
|
|
1047
|
+
|
|
1048
|
+
### Cobertura y Calidad
|
|
1049
|
+
- [ ] ¿Todos los features identificados tienen casos en los niveles que aplican según el modo?
|
|
1050
|
+
- [ ] ¿Se respetan las distribuciones mínimas del modo activo (Fase 4.1)?
|
|
1051
|
+
- [ ] ¿Cada feature tiene al menos un flujo E2E del "camino feliz" y uno del "camino alternativo"?
|
|
1052
|
+
- [ ] ¿En Modo Completo, hay al menos un flujo E2E-X que encadene todos los features del batch?
|
|
1053
|
+
- [ ] ¿Los casos de Regresión cubren los features adyacentes identificados como dependientes?
|
|
1054
|
+
- [ ] ¿Todos los pasos tienen datos de prueba concretos y realistas del dominio?
|
|
1055
|
+
- [ ] ¿Todos los resultados esperados incluyen mensaje/estructura de respuesta, cambios de estado en UI y/o cambios en BD según corresponda?
|
|
1056
|
+
- [ ] ¿Los escenarios describen claramente la condición de negocio verificada (mínimo 2 oraciones)?
|
|
1057
|
+
- [ ] ¿Las precondiciones especifican el estado exacto del sistema con valores concretos?
|
|
1058
|
+
- [ ] ¿Se cubrieron todos los arquetipos de puntos ciegos incluyendo los específicos del dominio?
|
|
1059
|
+
|
|
1060
|
+
### Trazabilidad y Reportes
|
|
1061
|
+
- [ ] ¿La Matriz de Trazabilidad conecta cada FAC con sus casos de prueba por nivel?
|
|
1062
|
+
- [ ] ¿La tabla de cobertura de Regresión está completa con los features adyacentes?
|
|
1063
|
+
- [ ] ¿En Modo Completo, la tabla de cobertura de integración entre features está completa?
|
|
1064
|
+
- [ ] ¿Existe al menos un caso P0 para cada riesgo crítico identificado en la Calculadora de Riesgo?
|
|
1065
|
+
- [ ] ¿El TSR refleja el modo activo con las tablas de distribución correctas?
|
|
1066
|
+
- [ ] **Si aplica macro-dominios, ¿el TSR incluye resumen de pendientes y próximo paso (Sección 7)?**
|
|
1067
|
+
|
|
1068
|
+
---
|
|
1069
|
+
|
|
1070
|
+
*BMAD V7.8 — Metodología de Ingeniería de Calidad Agéntica*
|
|
1071
|
+
*Basado en ISO 29119-4 | Niveles de prueba: IEEE 829 / ISTQB*
|
|
1072
|
+
*Versión anterior: BMAD V7.7 | V7.8: Macro-dominios, congruencia Modo-Features y batches secuenciales*
|