Revisão e Testes de
Software
Edson Orivaldo Lessa Junior
O papel dos testes na qualidade de software
• Detectar defeitos antes da entrega
• Reduzir riscos e retrabalho
• Garantir conformidade com os requisitos
• Confiabilidade e satisfação do usuário
Testes como garantia de qualidade
• Integram o processo de desenvolvimento
• Aumentam a confiança na entrega final
• Permitem evolução contínua do produto
• Promovem a cultura de melhoria contínua
Revisões e inspeções de código
• Detecção precoce de erros
• Revisão por pares: colaboração e aprendizado
• Inspeções formais e walkthroughs
• Melhoria na legibilidade e manutenibilidade
Técnicas de revisão
• Inspeção: processo formal, documentado
• Walkthrough: apresentação informal do código
• Pair programming: dois programadores por tarefa
• Benefícios: prevenção, padronização, qualidade
Técnicas de teste: Visão geral
• Testes unitários
• Testes de integração
• Testes de sistema
• Testes de aceitação
Testes unitários
• Verificam funcionalidades individuais
• Feitos por desenvolvedores
• Executados frequentemente
• Base para testes automatizados
Testes de integração
• Testam comunicação entre módulos
• Identificam falhas de interface
• Simulam interações reais
• Essenciais em arquiteturas distribuídas
Testes de sistema
• Avaliação completa do software
• Verificam requisitos funcionais e não funcionais
• Executados em ambiente de homologação
• Feitos por equipe de QA
Testes de aceitação
• Realizados pelo cliente/usuário
• Validam requisitos do negócio
• Última etapa antes da produção
• Critério de aceite do sistema
Testes funcionais
• Verificam o comportamento do sistema
• Validam funcionalidades específicas
• Simulam ações do usuário
• Baseados nos requisitos funcionais
Testes não funcionais
• Avaliam desempenho, usabilidade, segurança
• Verificam requisitos de qualidade
• Exemplos: testes de carga, stress, compatibilidade
• Importantes para experiência do usuário
Automação de testes
• Reduz esforço manual
• Aumenta a cobertura de testes
• Possibilita execuções frequentes
• Fundamental em integração contínua
Ferramentas de automação
• JUnit: testes unitários em Java
• Selenium: testes de interface web
• Postman: testes de APIs
• Cypress: testes end-to-end
Impacto da automação na qualidade
• Redução de falhas em produção
• Detecção precoce de regressões
• Maior agilidade nas entregas
• Confiabilidade nos builds automatizados
Como medir a eficácia dos testes
• Cobertura de código (coverage)
• Número de defeitos encontrados
• Defeitos pós-produção
• Tempo médio de correção de erros
Indicadores de qualidade
• Taxa de falhas
• Densidade de defeitos
• Velocidade de execução dos testes
• Taxa de sucesso dos testes automatizados