# Planos de casos de teste

Um arquivo por story: `docs/testes/<ID>-plano.md`. Mesmo motivo das stories
serem arquivo — plano em resposta de chat não sobrevive, e quem executa ou
reporta bug referencia o **ID do caso**, não reexplica o teste.

Os planos são escritos **a partir da story**, não do código: caso de teste
escrito depois de olhar a implementação tende a validar o que foi feito, e não
o que foi pedido.

## Convenção de ID

`<STORY>-<sequencial>` — ex: `PP-5-03`. O ID entra no relatório de execução e
na nota de reabertura de task (`reaberta — falhou PP-5-03`).

## Estado

| Story | Plano | Casos | Execução |
| ----- | ----- | ----- | -------- |
| `AC-1` | [AC-1-plano.md](AC-1-plano.md) | 12 | ✅ [12/12](AC-1-execucao.md) |
| `AC-2` | [AC-2-plano.md](AC-2-plano.md) | 10 | ✅ [10/10](AC-2-execucao.md) |
| `AC-3` | [AC-3-plano.md](AC-3-plano.md) | 12 | ✅ [12/12](AC-3-execucao.md) |
| `PP-1` | [PP-1-plano.md](PP-1-plano.md) | 13 | ✅ [13/13](PP-1-execucao.md) |
| `PP-2` | [PP-2-plano.md](PP-2-plano.md) | 9 | ✅ [9/9](PP-2-execucao.md) |
| `PP-3` | [PP-3-plano.md](PP-3-plano.md) | 11 | ✅ [11/11](PP-3-execucao.md) — 1 caso verificado em device |
| `PP-6` | [PP-6-plano.md](PP-6-plano.md) | 11 | ✅ [10/10](PP-6-execucao.md) — 1 bug alto corrigido |
| `PP-8` | [PP-8-plano.md](PP-8-plano.md) | 12 | ⏸ 9 cobertos · 3 presos ao FCM |
| `PP-9` | [PP-9-plano.md](PP-9-plano.md) | 9 | ✅ [9/9](PP-9-execucao.md) |
| `PP-10` | [PP-10-plano.md](PP-10-plano.md) | 11 | ✅ [11/11](PP-10-execucao.md) — os 2 bloqueados foram executados em 07/08 com o token |
| `PP-4` | [PP-4-plano.md](PP-4-plano.md) | 12 | ✅ [12/12](PP-4-execucao.md) |
| `PP-5` | [PP-5-plano.md](PP-5-plano.md) | 11 | ✅ [11/11](PP-5-execucao.md) |
| `PP-7` | [PP-7-plano.md](PP-7-plano.md) | 10 | ✅ [10/10](PP-7-execucao.md) |
| `PR-1` | [PR-1-plano.md](PR-1-plano.md) | 14 | ✅ [14/14](PR-1-execucao.md) |
| `PR-2` | [PR-2-plano.md](PR-2-plano.md) | 11 | ✅ [11/11](PR-2-execucao.md) |
| `PR-3` | [PR-3-plano.md](PR-3-plano.md) | 12 | ✅ [12/12](PR-3-execucao.md) |
| `PR-4` | [PR-4-plano.md](PR-4-plano.md) | 10 | ✅ [10/10](PR-4-execucao.md) |
| `PR-5` | [PR-5-plano.md](PR-5-plano.md) | 11 | ✅ [11/11](PR-5-execucao.md) — 1 bug corrigido |
| `PR-6` | [PR-6-plano.md](PR-6-plano.md) | 10 | ✅ [10/10](PR-6-execucao.md) |
| `PR-7` | [PR-7-plano.md](PR-7-plano.md) | 10 | ⚠️ [9/10](PR-7-execucao.md) — 1 bug corrigido · 1 não aplicável |
| `PR-10` | [PR-10-plano.md](PR-10-plano.md) | 12 | ✅ [12/12](PR-10-execucao.md) |
| `CC-1` | [CC-1-plano.md](CC-1-plano.md) | 14 | ✅ [14/14](CC-1-execucao.md) — 1 lacuna de critério implementada · `CC-1-14` em [fonte real](CC-1-execucao-fonte-real.md) |
| `CC-2` | [CC-2-plano.md](CC-2-plano.md) | 11 | ✅ [11/11](CC-2-execucao.md) — 1 bug corrigido |
| `CC-3` | [CC-3-plano.md](CC-3-plano.md) | 9 | ✅ [9/9](CC-3-execucao.md) |
| `CC-4` | [CC-4-plano.md](CC-4-plano.md) | 14 | ✅ [14/14](CC-4-execucao.md) — 1 bug alto corrigido |
| `CC-5` | [CC-5-plano.md](CC-5-plano.md) | 12 | ✅ [12/12](CC-5-execucao.md) — 4 bugs corrigidos |
| `CC-6` | [CC-6-plano.md](CC-6-plano.md) | 12 | ✅ [12/12](CC-6-execucao.md) |
| `CC-7` | [CC-7-plano.md](CC-7-plano.md) | 9 | ✅ [9/9](CC-7-execucao.md) — 1 bug corrigido · 1 caso cancelado |
| `CC-8` | [CC-8-plano.md](CC-8-plano.md) | 12 | ✅ [12/12](CC-8-execucao.md) |
| `CC-9` | [CC-9-plano.md](CC-9-plano.md) | 12 | ✅ [12/12](CC-9-execucao.md) |
| `CV-1` | [CV-1-plano.md](CV-1-plano.md) | 10 | ✅ [10/10](CV-1-execucao.md) — 1 bug corrigido |
| `CV-2` | [CV-2-plano.md](CV-2-plano.md) | 9 | ✅ [9/9](CV-2-execucao.md) |
| `CV-3` | [CV-3-plano.md](CV-3-plano.md) | 9 | ✅ [9/9](CV-3-execucao.md) |
| `CV-4` | [CV-4-plano.md](CV-4-plano.md) | 11 | ✅ [11/11](CV-4-execucao.md) |
| `CV-5` | [CV-5-plano.md](CV-5-plano.md) | 10 | ✅ [10/10](CV-5-execucao.md) |
| `CV-6` | [CV-6-plano.md](CV-6-plano.md) | 10 | ✅ [10/10](CV-6-execucao.md) |
| `CV-7` | [CV-7-plano.md](CV-7-plano.md) | 11 | ✅ [11/11](CV-7-execucao.md) |
| `CC-10` | [CC-10-plano.md](CC-10-plano.md) | 12 | ✅ [12/12](CC-10-execucao.md) |
| `MG-1` | [MG-1-plano.md](MG-1-plano.md) | 10 | ✅ [10/10](MG-1-execucao.md) — 2 bugs de script corrigidos |
| `MG-2` | [MG-2-plano.md](MG-2-plano.md) | 28 | ✅ [28/28](MG-2-execucao.md) — 2 correções de desenho |
| `MG-3` | [MG-3-plano.md](MG-3-plano.md) | 34 | ✅ [34/34](MG-3-execucao.md) — rules não são filtros |
| `MG-4` | — (execução parcial) | 4 | ⚠️ [4/4 servidor](MG-4-execucao.md) — 🔴 Auth quebra `AC-2-02` |
| `MG-5` | — (execução parcial) | 7 + 33 portados | ⚠️ [5/8 backend](MG-5-execucao.md) |
| `MG-6` | — (execução parcial) | 9 + 13 portados | ⚠️ [4/6 backend](MG-6-execucao.md) |
| `MG-7` | [plano](MG-7-plano.md) | 84 | ✅ [servidor, app e device](MG-7-execucao.md) |
| `MG-8` | [mapa](MG-8-mapa-de-cobertura.md) | 130 portados + custo | ✅ 0 a verificar em 420 |
| restantes | — | — | — |

As stories sem plano estão listadas para não parecer que a cobertura é
completa. Ver `docs/CONTROLE.md` para o avanço por PRD.
