Testar é somente apertar botões?
A apresentação foi feita para demonstrar a importância do testes de software, na construção de um software de qualidade.
2. OBJETIVOS
• Desmistificar o teste de software
• Mostrar a importância do teste, na
construção de um software de qualidade
3. HOJE VAMOS
FALAR SOBRE
1. Quebra-Gelo – Telefone sem fio
2. Principais conceitos e práticas
3. Por que é necessário testar
4. Níveis de testes
5. Regulamentação
6. Automação de testes
7. Teste ágil
8. Carreira
9. Dinâmica - Jenga Tests
8. O QUE É TESTE SOFTWARE?
GLOSSÁRIO PADRÃO DE TERMOS DE TESTE DE SOFTWARE (ISTQB)
THE ART OF SOFTWARE TESTING - Third Edition (GLENFORD J. MYERS)
9. OBJETIVO DO TESTE DE SOFTWARE
Encontrar
defeitos
Prevenir
defeitos
Confiança
10. FRONTEIRAS DAS ATIVIDADES DO TESTE
Teste Dinâmico
• Planejamento
• Execução
• Controle
Teste Estático
• Revisão
• Inspeção
• Análise
11. PRINCIPAIS ATIVIDADES DO TESTE
Planejamento
• Objetivos
• Escopo
• Cronograma
• Recursos
• Estimativas
• Critérios de conclusão
Condições de teste
• Definição de cenários e
condições
Modelagem
• Criação dos casos de
teste
Execução
• Execução dos casos de
teste
Verificação
• Averiguação dos
resultados
Avaliação dos critérios
de conclusão
• Avaliar os resultados do
teste
Relatar sobre o processo
• Relatar o ocorrido
Atividades de
encerramento
• Encerramento do projeto
e emissão de relatórios
gerenciais
Controle
12. CICLO DE VIDA DO DESENVOLVIMENTO DE SOFTWARE
Testes
Desenvolvimentode
Software
Análise de Requisitos Especificação Funcional Especificação Técnica Construção Testes
Início
Levantamento
de Requisitos
Especificação
Funcional
Especificação
Técnica
Construção e
Testes
Unitários
Preparar
Plano de
Testes
Preparar
Desenho de
Testes
Preparar
Desenho de
Testes
Executar os
Testes
Fim
13. OS SETE PRINCÍPIOS DO TESTE
Teste demonstra a presença de defeitos
Teste exaustivo é impraticável
Teste antecipado
Agrupamento de defeitos
Paradoxo do pesticida
Teste depende do contexto
A ilusão da ausência de erros
25. NÍVEIS DE TESTE
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
26. TESTE DE UNIDADE
• Testa cada unidade do software
• Envolve os desenvolvedores
• Menores partes do software
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
27. TESTE DE COMPONENTE
• Classes, objetos, módulos, etc...
• Envolve os desenvolvedores
• Preparar os testes antes de codificar
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
28. BDD (Behavior Driven Development) & TDD (Test Driven Development)
TESTE DE COMPONENTE
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
Escrever um teste de
aceitação defeituoso
Escrever um teste de
unidade que falhe
Fazer o teste passar
RefatorarRefatorar
30. TESTE DE INTEGRAÇÃO
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
Fonte: UOL Tech Day: Testes de Integração com OpenEJB
31. TESTE DE PERFORMANCE
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
Fonte: http://guts-rs.blogspot.com.br/
Alessandra Paz
32. TESTE DE SEGURANÇA
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
Fonte: https://www.mamsys.com/quality-assurance/security-testing/
Teste de
penetração
Verificadores de
integridade do
arquivo
Cracking de
Senhas
Marcação de
Guerra
Detecção de
vírus
Cracking de
Senhas
Varredura de
Vulnerabilidade
Digitalização em
rede
Verificação do
registro
33. TESTE DE SISTEMA
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
Analise de
requisitos
Planejamento de
testes
Design do
caso de
teste
Matriz de
rastreabilidade
Execução
de teste
Gerenciamento
de defeitos
Análise de
cobertura do
código
Fonte: https://www.testree.com/services/functional-testing
34. TESTE DE ACEITAÇÃO
Teste de aceitação
Teste de sistema
Teste de segurança
Teste de performance
Teste de integração
Teste de componente
Teste de unidade
Alfa
• Ambiente da empresa
• Ambiente controlado
Beta
• Versões lançadas a grupos de
usuários
• Para grande público
• Mais de uma instalação do
cliente
• Ambiente não controlado
38. NORMAS E PADRÕES
• Define um glossário de termos
para teste de software
BS 7925-1
• Define um padrão para
processo de teste de software
BS 7925-2
• Define normas para o processo
de teste e qualidade do produto
IEEE 829
• Define as características da
qualidade de software
ISO 9126-1
56. JENGA TESTS
• Construa uma torre com pelo menos três
andares de altura e use todos os blocos.
• O testador recebe quatro números de "blocos
problemáticos" que devem ser removidos.
• O testador no final da construção, deverá
retirar os blocos.
Rodada 1
57. JENGA TESTS
• Construa uma torre com pelo menos três
andares de altura e use todos os blocos.
• Desta vez, o desenvolvedor pode perguntar
ao testador a cada 5 peças inseridas na
torre, se aquela peça é um problema.
• Se tiver mais de uma peça para o testador
retirar, aguardar a segunda rodada de
pergunta.
Rodada 2
58. JENGA TESTS
• Os requisitos são como antes, e os blocos
são feitos nos três lotes novamente.
• Desta vez o desenvolvedor poderá perguntar
ao testador, quais são as peças com
problema a cada peça a ser colocada.
• Quando a peça de uma pessoa cair quando o
testador retirar, passa para a próxima
pessoa.
Rodada 3
A área de teste de software assumindo a postura de “Último Defensor da Qualidade”
Restrições no gerenciamento de mudanças
Preparação detalhada e planejamento acima de tudo
Conjunto de documentação pesado para a terceirização dos esforços de teste
Critérios de entrada e saída rigorosos com aprovações
Automatização de testes pesada com foco nas regressões
Tentativas de execução do processo
ATDD - Captura os critérios de aceitação. Prove feedback sobre a conclusão da tarefa. Demonstrando a clara visão do progresso.
É identificado e levantado quando a equipe de teste interage com o negócio, compreendendo sua real necessidade.
Complementa à prática de TDD, que visa garantir que as funcionalidades bases da aplicação sejam desenvolvidas em conformidade com a arquitetura e projeto.