Verificação, validação e testes
Evidência estática e dinâmica, revisões, níveis de teste, casos, fronteiras, cobertura e defeitos.
Verificação, validação e técnicas
- Verificação: conformidade do artefacto com a especificação. Validação: adequação às necessidades e uso pretendidos. Passar uma especificação sem cancelamento não resolve a necessidade de corrigir uma reserva.
- Técnicas estáticas analisam sem executar: revisão, inspeção, análise estática e verificação formal. Dinâmicas executam sistema/modelo: testes e simulação. Ambas podem apoiar avaliações antes do produto final.
- Uma inspeção estrutura preparação, papéis, critérios e registo de defeitos; um walkthrough percorre um artefacto ou cenário. Checklists não substituem raciocínio.
Casos e níveis de teste
Um caso de teste define entradas, condições e resultados esperados. O oráculo justifica a expectativa independentemente da implementação. O script concretiza os passos de execução.
| Nível | Objeto |
|---|---|
| Unidade/componente | Unidade isolada ou pequeno grupo relacionado |
| Integração | Interações entre componentes ou sistemas |
| Sistema | Sistema completo contra requisitos |
| Aceitação | Critérios acordados para aceitar o resultado |
Desempenho e segurança podem ser testados em vários níveis. Começa pelos casos derivados da especificação e acrescenta depois os necessários para cobrir o código. Serviços simulados não provam integração real. Testes de caixa preta derivam da especificação; os de caixa branca usam a estrutura interna. Esta distinção não equivale a manual/automático.
Um test double substitui uma dependência para isolar uma dúvida. Um ecrã testado com um serviço que devolve sempre sucesso não demonstra integração real, concordância entre mensagens nem compreensão pelo utilizador. Escolhe evidência correspondente a cada risco.
Partições, fronteiras e intervalos
Para minutos inteiros válidos entre 30 e 120 inclusive, as partições são abaixo de 30, de 30 a 120 e acima de 120. Fronteiras com três pontos por limite: 29, 30, 31, 119, 120 e 121. Recusa apenas 29 e 121; adapta o passo se a precisão não for inteira.
Para intervalos válidos de duração positiva, semiabertos e , há sobreposição se:
-
14h–15h e 15h–16h são adjacentes, sem sobreposição; 14h30–14h45 está contido e sobrepõe-se. 15h–15h é inválido antes da comparação.
-
Aqui isolamos sobreposição; outros limites de duração são verificados separadamente.
-
Para concorrência, executa duas criações simultâneas e confere respostas e dados. Testes sequenciais não exercitam a corrida.
Cobertura e defeitos
Numa função com if (minutos < 30) e depois if (minutos > 120), os testes 29, 60 e 121 cobrem os quatro ramos. Mesmo assim, não detetam trocar > 120 por >= 120: falta testar 120, com aceitação esperada.
- Cobertura de instruções: instruções executadas; de ramos: saídas das decisões executadas. Mede execução, não correção do oráculo nem ausência de defeitos.
- Defeito: problema num artefacto; falha: comportamento observado contrário ao esperado. Severidade é impacto; prioridade é urgência.
- Um registo reproduzível inclui versão/ambiente, estado inicial, passos, esperado e observado. Após corrigir, repete o caso falhado e verificações dos comportamentos afetados para detetar regressões.