Laboratório: da especificação ao número conferido
Executar uma análise real em camadas, com contagem de controle em cada uma, e provar que a conferência detecta erro injetado.
Como no laboratório de código, o passo que mais ensina é o último: sabotar a consulta de propósito e ver se as suas conferências percebem.
Use a especificação que você escreveu no módulo 2. Se ela ainda tem pendências de negócio, escolha outra pergunta — o exercício precisa de definições fixadas.
- Peça a camada 1 (universo) com a contagem de controle. Rode.
- Confira a camada 1 contra uma fonte independente: fechamento financeiro, relatório existente, ou alguém do negócio que saiba a ordem de grandeza.
- Só depois de bater, peça a camada 2. Repita até a métrica final.
- Em cada camada, registre o número obtido e o esperado.
- Quebre o resultado por um segmento e confira que a soma dos segmentos bate com o total.
- Agora sabote: troque um
< datapor<= data, ou remova um filtro de status, ou transforme uma junção 1:1 em 1:N. - Rode a trilha de conferência. Alguma verificação precisa acusar.
- Desfaça e registre o resultado.
- A camada 1 bateu com uma fonte que não é a própria consulta.
- Toda junção 1:1 preservou a contagem.
- A soma dos segmentos bate com o total.
- Pelo menos uma conferência acusou a sabotagem.
Se travar: Se nenhuma conferência acusou, é porque elas verificam a consistência interna da consulta, não a correspondência com a realidade. Adicione ao menos um controle que compare com uma fonte externa — é o único que pega filtro faltando.
O documento que acompanha o número. Responde "como você chegou nisso?" antes de alguém perguntar.
# [Título da análise] Especificação: [link] · Executada em [data] · Analista: [você] ## Resultado **[o número]** — [uma frase do que significa] ## Camadas e controles | # | Camada | Resultado | Controle | Bateu? | |---|--------|-----------|----------|--------| | 1 | Universo (pedidos mar/26, status válidos) | 3.412 · R$ 2.108.443 | fechamento financeiro | ✓ | | 2 | + dimensão cliente (1:1) | 3.412 | contagem inalterada | ✓ | | 3 | + itens agregados | 3.412 | contagem inalterada | ✓ | | 4 | Métrica | 55,0% | numerador ≤ denominador | ✓ | | 5 | Recorte por canal | soma = 3.412 | soma dos segmentos | ✓ | ## Prova de detecção - Sabotagem: [o que alterei] - Conferência que acusou: [qual] ## Nulos e exclusões - [coluna]: [n] nulos ([%]) — tratamento: [ignorado / imputado / excluído] - Excluídos: [n] registros por [motivo] ## SQL ```sql [as camadas, comentadas] ``` ## O que este número NÃO diz - [limitação]
Onde guardar: No repositório de análises, ao lado do notebook ou do SQL versionado.
Controles internos (contagem antes/depois de junção, soma de segmentos) pegam duplicação e perda de linha. Nenhum deles pega um filtro de status esquecido — internamente tudo é consistente.
Por isso a camada 1 precisa bater com algo de fora: fechamento contábil, relatório antigo, ou a memória de alguém que conhece a operação.
- Controle interno pega duplicação; só a conferência externa pega filtro esquecido.
Comentários e dúvidas
Inscreva-se grátis para comentar, tirar dúvidas, marcar seu progresso e emitir o certificado ao fim do curso.
Inscrever-se grátis com GoogleAinda não há comentários nesta aula.