101
Victor Hugo Germano Teste de Software CTAI SENAISC Aula - 01

Ctai Teste De Software Aula 1

Embed Size (px)

DESCRIPTION

Victor Hugo Germano apresenta, na casa CTAI Senai SC um curso de formação entitulado: Teste de Software.Chamando para uma discussão a respeito de nosso papel dentro do desenvolvimento de software, são apresentados conceitos relacionados à area de teste de software, assim como apresentada sua visão de como um modelo de testes deve estar vinculado ao desenvolvimento.

Citation preview

Page 1: Ctai Teste De Software Aula 1

Victor Hugo GermanoTeste de Software

CTAI SENAISC

Aula - 01

Page 2: Ctai Teste De Software Aula 1
Page 3: Ctai Teste De Software Aula 1

Eu? Quem?

Page 4: Ctai Teste De Software Aula 1

Victor Hugo Germano

http://malditacomedia.blogspot.com

Page 5: Ctai Teste De Software Aula 1

Por que testar?

Page 6: Ctai Teste De Software Aula 1

Apresentação do Curso

Page 7: Ctai Teste De Software Aula 1

Apresentação do Curso

Teste! Teste! Teste! Teste!

Page 8: Ctai Teste De Software Aula 1

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Page 9: Ctai Teste De Software Aula 1

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Metodos e Processos

Page 10: Ctai Teste De Software Aula 1

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Metodos e Processos

Exercícios de Fixação

Page 11: Ctai Teste De Software Aula 1

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Metodos e Processos

Exercícios de Fixação

Profissionalismo

Page 12: Ctai Teste De Software Aula 1

Objetivos

• Discutir nosso papel

• Apresentar os princípios

• Descrever estratégias de Planejamento

• Entender a automação de testes

Page 13: Ctai Teste De Software Aula 1

Teste de Software

Page 14: Ctai Teste De Software Aula 1
Page 15: Ctai Teste De Software Aula 1

IEEE Standard 829 for Software Test Documentation

• Plano de Testes

• Especificação de Arquitetura de Teste

• Especificação de Casos de Teste • Identificadores para Especificação de Casos de Teste

• Itens a serem testados

• Especificação de Entrada

• Especificação de Saída

• Necessidades de Ambiente

• Requisitos especiais de processos

• Dependências internas para casos de Uso

• Especificação do Procedimento de Testes

• Relatório de Comunicação de Item testado

• Log de Teste

Page 16: Ctai Teste De Software Aula 1

Vale a Pena?

Page 17: Ctai Teste De Software Aula 1

Teste de Software

Page 18: Ctai Teste De Software Aula 1

Teste de Software

Percepção de Valor não imediata

Page 19: Ctai Teste De Software Aula 1

Teste de Software

Percepção de Valor não imediata

Não garante Qualidade Total

Page 20: Ctai Teste De Software Aula 1

Documentação de Teste

Page 21: Ctai Teste De Software Aula 1

Documentação de Teste

Qual o custo de Manutenção?

Page 22: Ctai Teste De Software Aula 1

Documentação de Teste

Qual o custo de Manutenção?

Qual o impacto na velocidade?

Page 23: Ctai Teste De Software Aula 1

Documentação de Teste

Qual o custo de Manutenção?

Qual o impacto na velocidade?

Quanta inércia será gerada?

Page 24: Ctai Teste De Software Aula 1

Documentação de Teste

Qual o custo de Manutenção?

Qual o impacto na velocidade?

Quanta inércia será gerada?

Stakeholders concordam?

Page 25: Ctai Teste De Software Aula 1

O que fazer?

Page 26: Ctai Teste De Software Aula 1

O que fazer?

Questionar-se

Page 27: Ctai Teste De Software Aula 1

Documentação de Testes

Page 28: Ctai Teste De Software Aula 1

Documentação de Testes

Produto ou Ferramenta?

Page 29: Ctai Teste De Software Aula 1

Documentação de Testes

Produto ou Ferramenta?

Qual a dinâmica do mercado?

Page 30: Ctai Teste De Software Aula 1

Documentação de Testes

Produto ou Ferramenta?

Qual a dinâmica do mercado?

Encontrar defeitos ouevitar que eles ocorram?

Page 31: Ctai Teste De Software Aula 1

Qualidade

Page 32: Ctai Teste De Software Aula 1

Reduzir Riscos

Page 33: Ctai Teste De Software Aula 1

Reduzir Riscos

Evitar que erros ocorram!

Page 34: Ctai Teste De Software Aula 1

Reduzir Custos

Page 35: Ctai Teste De Software Aula 1

Reduzir Custos

Eliminar Desperdícios!

Page 36: Ctai Teste De Software Aula 1
Page 37: Ctai Teste De Software Aula 1
Page 38: Ctai Teste De Software Aula 1

Exercício 1

Grupos de 2 - 3 pessoas

Quais são os seus desafios na adoção de Políticas de qualidade

e Testes de software?

Page 39: Ctai Teste De Software Aula 1

Exercício 1I

Sistema de Avaliação de Alunos

ObjetivoCriar um conjunto de testes

Page 40: Ctai Teste De Software Aula 1

• Durante o semestre são dadas três notas; • A nota final é obtida pela média aritmética das notas dadas

durante o curso; • É considerado aprovado o aluno que obtiver a nota final

superior ou igual a 60 e que tiver comparecido a um mínimo de 40% das aulas. • Deve ser possível para este sistema: • Calcular a nota final de cada aluno, a maior e a menor nota da

turma, bem como a média da turma. • Calcular o total de alunos reprovados • Calcular a porcentagem de alunos reprovados por freqüência

Execício 1I

Page 41: Ctai Teste De Software Aula 1

Testar para encontrar defeitos?

Page 42: Ctai Teste De Software Aula 1
Page 43: Ctai Teste De Software Aula 1

Processo Evolucionário

Page 44: Ctai Teste De Software Aula 1

Processo Evolucionário

Desde o início do desenvolvimento

Page 45: Ctai Teste De Software Aula 1

Processo Evolucionário

Desde o início do desenvolvimento

Evolução dos testesligada à evolução do Sistema

Page 46: Ctai Teste De Software Aula 1

Processo Evolucionário

Desde o início do desenvolvimento

Evolução dos testesligada à evolução do Sistema

Adaptável e Incremental

Page 47: Ctai Teste De Software Aula 1
Page 48: Ctai Teste De Software Aula 1

Tipos de Teste

Page 49: Ctai Teste De Software Aula 1

Caixa Branca

Page 50: Ctai Teste De Software Aula 1

Testes Unitários

Page 51: Ctai Teste De Software Aula 1

Testes Unitários

Testam um único componenteTodos os demais são simulados

Page 52: Ctai Teste De Software Aula 1

Testes Unitários

Testam um único componenteTodos os demais são simulados

JUnit / JMock / Easymock

Page 53: Ctai Teste De Software Aula 1

public void addValor(int valor) {this.saldo += valor

}public void getSaldo() {return this.saldo;

}

@Testpublic void verificaCalculoDoSaldo() {Conta conta = new Conta(200);conta.addValor(100);assertEquals(300, conta.getSaldo());

}

Testes Unitários

Page 54: Ctai Teste De Software Aula 1

Testes de Integração

Page 55: Ctai Teste De Software Aula 1

Testes de Integração

Testam integração entre componentes

Page 56: Ctai Teste De Software Aula 1

Testes de Integração

Testam integração entre componentes

Codigo+BD / Codigo+Web

Page 57: Ctai Teste De Software Aula 1

Testes de Integração

Testam integração entre componentes

JUnit / DBUnit / HsqlDB / Fit

Codigo+BD / Codigo+Web

Page 58: Ctai Teste De Software Aula 1

@Test

public void testAddUsuarios() {

GerenteUsuarios gerente = new GerenteUsuarios();

int numUsuarios = gerente.getNumeroUsuarios();

gerente.addUsuario(new Usuario(“Rocco”));

int novoNumUsuarios = gerente.getNumeroUsuarios();

assertEquals(novoNumUsuarios,(numUsuarios+1));

}

Testes de Integração

Page 59: Ctai Teste De Software Aula 1

Testes de Aceitação

Page 60: Ctai Teste De Software Aula 1

Testam uma funcionalidade, estória ou um caso de uso

Testes de Aceitação

Page 61: Ctai Teste De Software Aula 1

Testam uma funcionalidade, estória ou um caso de uso

JUnit / Selenium

Testes de Aceitação

Page 62: Ctai Teste De Software Aula 1
Page 63: Ctai Teste De Software Aula 1

Caixa Preta

Page 64: Ctai Teste De Software Aula 1

Análise de Valor Limite

Extrapolar os valores máximo e mínimo de uma funcionalidade

NullValores Negativos

Listas Vaziasetc

Page 65: Ctai Teste De Software Aula 1

Transição de Estado

Estado 1 Estado 2Transição

Entrada

Saída

Page 66: Ctai Teste De Software Aula 1

Transição de Estado

Ordem Ação

1 Iniciar Edição de dados do Usuário “xpto”

2 Modificar permissao de acesso para admin

3 Sair do Sistema

4 Entrar no sistema como usuário “xpto”

5 Verificar se menu admin está disponível

Page 67: Ctai Teste De Software Aula 1

Testes de Sintaxe

Campos Numéricos

Entrada de Dados

Campos RG / CPF / CNPJ

Máscaras

Page 68: Ctai Teste De Software Aula 1

Testes de Desempenho

O quão tolerante a falha?

Simular falhas na rede

Excluir objetos

Múltiplos acessos Simultâneos

Page 69: Ctai Teste De Software Aula 1

Testes de Caminho

ObjetivoExecutar todas as possibilidades do sistema

Page 70: Ctai Teste De Software Aula 1

Testes de Integração

No final, se juntar tudo,funciona?

Page 71: Ctai Teste De Software Aula 1

teste da instalação

teste da implantação

teste de desempenho

teste de compatibilidade com outros sistemas

teste de conversão

teste da documentação

teste do backup

teste da recuperação

Page 72: Ctai Teste De Software Aula 1

Exercício III

Matrícula Online

Page 73: Ctai Teste De Software Aula 1

Execício III • O Aluno acessa o Site do Curso com seu usuário e senha • Ao acesso a sessão especial de "Pedido de Matrícula", ele

pode iniciar o processo de solicitacao • Ele entao seleciona as disciplinas. Como cada uma das

disciplinas possui pré-requisitos, ele deve ser impedido de matricular-se numa disciplina que não possua pré-requisitos necessários • Todo aluno deve possuir, no máximo, 30 créditos • Disciplinas podem ter entre 1 e 8 créditos • Após fazer a solicitação, um comprovante é apresentado ao

usuário contendo um boleto bancário para o pagamento das taxas de matrículas referentes às disciplinas solicitadas. (Cada disciplina custa R$ 10,00)

Page 74: Ctai Teste De Software Aula 1

Testes Unitários

Page 75: Ctai Teste De Software Aula 1

Testes Unitários

Não será Teste Unitário se:

Page 76: Ctai Teste De Software Aula 1

Testes Unitários

Não será Teste Unitário se:

• Se conecta a um banco de Dados

• Utiliza a rede

• Utiliza o sistema de arquivos

• Não é executável individualmente

• Precisa de uma configuração do Ambiente

Page 77: Ctai Teste De Software Aula 1

Testes Unitários

Page 78: Ctai Teste De Software Aula 1

Testes Unitários

Objetivos: Um único cenário testado

Page 79: Ctai Teste De Software Aula 1

Testes Unitários

Objetivos: Um único cenário testado

Independentes

Page 80: Ctai Teste De Software Aula 1

Testes Unitários

Objetivos: Um único cenário testado

Independentes

Contidos: Não afetam outros testes

Page 81: Ctai Teste De Software Aula 1

Testes Unitários

Objetivos: Um único cenário testado

Independentes

Contidos: Não afetam outros testes

Rápidos: Execução instantânea

Page 82: Ctai Teste De Software Aula 1

A forma básica para testes é a seguinte:

• Crie um objeto e coloque-o em um estado conhecido

• Invoque um método, o qual retorne um resultado real

• Crie um objeto representando o resultado esperado

• Invoque assertEquals(resultadoEsperado, resultadoReal)

para confirmar se a implementação está correta.

Testes Unitários

Page 83: Ctai Teste De Software Aula 1

Testes Unitários

Crie uma listaAdicione um Valor

Verifique se o valor está contido na lista

Exercícios

Page 84: Ctai Teste De Software Aula 1

Testes Unitários

Organização

Page 85: Ctai Teste De Software Aula 1

Testes Unitários

Organização

Separados do Código de ProduçãoJuntos ao código

Em pacotes separados

Page 86: Ctai Teste De Software Aula 1

Testes Unitários

Deve ser possível sacar valores de uma Conta

Exercícios

Page 87: Ctai Teste De Software Aula 1

Testes Unitários

Removendo Duplicações nos testes

@Before

@After

Page 88: Ctai Teste De Software Aula 1

Exercício IV

Sistema de controle de Estoque

ObjetivoCriar testes unitários para o sistema

Page 89: Ctai Teste De Software Aula 1

Adicione Itens ao Estoque ( nome)

Remova Itens do Estoque

Liste Itens em Estoque

Itens não devem estar repetidos (lançar exceção)

Controle de Estoque

Page 90: Ctai Teste De Software Aula 1

Benefícios

Page 91: Ctai Teste De Software Aula 1

TDD

Page 92: Ctai Teste De Software Aula 1

3 Leis do TDD

Page 93: Ctai Teste De Software Aula 1

3 Leis do TDD

Escreva um teste que falhe

Page 94: Ctai Teste De Software Aula 1

3 Leis do TDD

Escreva um teste que falhe

Faça o teste passar

Page 95: Ctai Teste De Software Aula 1

3 Leis do TDD

Escreva um teste que falhe

Faça o teste passar

Refatore

Page 96: Ctai Teste De Software Aula 1

Motivação

Page 97: Ctai Teste De Software Aula 1

Motivação

Confiabilidade

Page 98: Ctai Teste De Software Aula 1

Motivação

Testabilidade do Sistema

Confiabilidade

Page 99: Ctai Teste De Software Aula 1

Motivação

Testabilidade do Sistema

Confiabilidade

Dificuldade em adicionar mudanças

Page 100: Ctai Teste De Software Aula 1

Exemplo Prático

Page 101: Ctai Teste De Software Aula 1

Encontrar o número de dias entre um dado Dia e a data atual:

Hoje: 22/04/2009

20/04/2009: “2 dias atrás”8/04/2009: “2 semanas atrás”

http://dojofloripa.wordpress.com