O documento discute os testes de software, explicando que eles são usados para encontrar bugs, evitar perdas financeiras e danos à reputação. Ele descreve os principais tipos de testes, incluindo testes unitários, de integração e de sistema, e destaca a importância dos testes unitários para garantir o funcionamento correto do código e facilitar a manutenção.
3. OBJETIVOS DO HANGOUT
Ter uma visão geral sobre vários tipos de teste
Entender a importância dos testes unitários
durante o desenvolvimento
Entender o que são testes de software
8. Caixa Branca
◦ Acesso ao código
fonte
◦ Projetado de
acordo com
estrutura do
componente
TIPOS DE TESTE
Caixa Preta
◦ Sem acesso ao
código fonte
◦ Baseado nos
requisitos
funcionais
9. TIPOS DE TESTE
Unitário (Teste de Unidade)
◦ Caixa branca
◦ Unidades inviduais de código (classes e métodos)
Integração
◦ Caixa branca / caixa preta
◦ Integração de componentes do sistema
◦ Identifica erros de interface entre módulos
Sistema
◦ Caixa preta
◦ Baseado nos requisitos do sistema
◦ Segue roteiros definidos em planos de teste
10. TESTES DE SISTEMA
Garantem que o sistema funciona como um todo.
Alguns dos mais conhecidos entre desenvolvedores:
Aceitação
Utilizado em equipes ágeis.
Donos do produto aceitam ou não
alguma funcionalidade
implementada.
Funcionais
Testam os casos de uso.
Baseados nas especificações de
negócio.
Performance
Testes de carga, stress, estabilidade e
inclusive o fuzz testing (teste do
macaco louco)
Segurança
Garante que os dados sejam acessados
de maneira segura somente por quem é
autorizado.
Pen testing.
14. TESTES UNITÁRIOS
Quais vantagens isso me traz?
◦ Manutenção mais fácil do código
◦ Refatoração sem medo
◦ Obriga melhor aplicação da programação
orientada a objetos
◦ Serve como documentação
15. TESTES UNITÁRIOS
Erros mais comuns
◦ Comunicação com banco de dados
◦ Utilizar recursos de rede
◦ Utilizar sistema de arquivos
◦ Necessitar de alterações no ambiente
16. TESTES UNITÁRIOS
Boas Práticas
◦ Cada teste verifica só um comportamento
◦ Um teste não deve depender do resultado de
outro
◦ Testar apenas métodos públicos
◦ Usar testes parametrizados sempre que possível
◦ Indicar no nome do teste o que está sendo testado
e o resultado esperado
só uma introdução
Para quem não conhece muito sobre testes
se você não se preocupa com testes
ENCONTRAR = testar provocando erros, não só buscando o caminho feliz
se o produto sai com bug, pega mal e dá mais trabalho para refazer
caixa branca = vendo código
caixa preta = sem ver código
BDD codificado = caixa preta