Please enable JavaScript.
Coggle requires JavaScript to display documents.
Verificação & Validação - Coggle Diagram
Verificação & Validação
-
Inspeções e Testes
Testes de Software
🔹 Avaliam o comportamento do sistema em execução (verificação dinâmica).
🔹 O software é executado com dados de teste para observar se responde corretamente.
Estágios de teste:
🔹 Teste de Desenvolvimento
Realizado durante a construção do sistema para identificar falhas enquanto ele ainda está sendo criado.
🔹 Teste de Release
Feito por uma equipe separada, avaliando a versão final do sistema antes da entrega. Baseia-se nos requisitos definidos pelos stakeholders.
🔹 Teste de Usuário (ou de Aceitação)
Os próprios usuários testam o sistema em seu ambiente real, verificando se ele atende às suas necessidades.
Testes de desenvolvimento incluem todas as atividades de testes que são realizadas pela equipe de desenvolvimento do sistema.
🔹 Teste de Unidade
Avalia métodos ou classes isoladamente.
Foco: garantir que cada unidade funcione como esperado.
🔹 Teste de Componente
Testa a integração de várias unidades formando um módulo.
Foco: verificar se as interfaces entre as unidades funcionam corretamente.
🔹Teste de Sistema
Testa o sistema completo ou grandes partes dele integradas.
Foco: avaliar a interação entre os componentes como um todo.
🔹 Teste Alfa
Usuários testam o sistema junto com os desenvolvedores, no ambiente da equipe de desenvolvimento.
🔹 Teste Beta
O software é liberado para os usuários finais, que usam e reportam problemas aos desenvolvedores.
🔹Teste de Aceitação
Clientes avaliam se o sistema atende aos requisitos antes da entrega final.
Usado especialmente em projetos sob encomenda.
Testes automatizados
🔹 Automação dos Testes de Unidade
Sempre que possível, testes de unidade devem ser automatizados para evitar a verificação manual.
🔹 Uso de Frameworks
Ferramentas como JUnit permitem escrever e executar testes automaticamente, facilitando a detecção de erros de forma rápida e constante.
Estratégias de teste
🔹 Testes de Partição
Identificam grupos de entradas com características semelhantes que devem ser tratadas igual.
Seleciona-se casos de teste representativos de cada grupo.
🔹Testes Baseados em Diretrizes
Utilizam orientações baseadas em experiências anteriores para escolher casos de teste.
Essas diretrizes focam nos erros comuns que os desenvolvedores costumam cometer.
🔹 Teste Caixa-Branca (ou Estrutural)
Baseia-se na estrutura interna do código para criar os casos de teste.
🔹 Objetivos principais:
1 - Cobrir todos os caminhos independentes do código.
2 - Testar decisões lógicas nos dois resultados: verdadeiro e falso.
3 - Executar laços (loops) nos limites e dentro da faixa esperada.
4 - Verificar estruturas internas de dados para garantir consistência.
🔹 Teste Caixa-Preta (ou Funcional / Comportamental)
Foca no que o software deve fazer, com base nos requisitos funcionais.
🔹 Como funciona
Cria entradas para testar todas as funcionalidades esperadas, sem considerar o código interno.
🔹 Complementar ao teste caixa-branca
Detecta tipos diferentes de erros, sendo útil junto com o teste estrutural.
🔹 Erros que busca identificar:
1 - Funcionalidades ausentes ou incorretas
2 - Erros em estruturas de dados ou bancos externos
3 - Problemas de interface
4 - Falhas de desempenho ou comportamento
5 - Problemas de inicialização ou finalização
Inspeções de Software
🔹Focam na análise estática do sistema (sem executá-lo), buscando falhas em documentos e código.
🔹Podem usar ferramentas para revisar artefatos e trechos de código.
-
Vantagens das inspeções:
🔹 Erros ocultos em testes:
Durante os testes, um erro pode esconder outros, dificultando a identificação completa dos problemas.
🔹 Inspeções são estáticas:
Como não envolvem execução, não sofrem com interações entre erros, isso facilita a detecção isolada de falhas.
🔹 Inspeção de versões incompletas:
Mesmo sistemas ainda não finalizados podem ser inspecionados com a utilização de drivers e stubs.
🔹 Inspeção vai além de defeitos:
Também analisa atributos de qualidade como conformidade com padrões, portabilidade e facilidade de manutenção.
-
Verificação: Garante que o software executa corretamente uma função específica.
🔹“Estamos criando o produto corretamente?”
Validação: Garante que o software atende aos requisitos do cliente.
🔹“Estamos criando o produto certo?”
-