ctai teste de software aula 1

Post on 29-Nov-2014

22.428 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

Victor Hugo GermanoTeste de Software

CTAI SENAISC

Aula - 01

Eu? Quem?

Victor Hugo Germano

http://malditacomedia.blogspot.com

Por que testar?

Apresentação do Curso

Apresentação do Curso

Teste! Teste! Teste! Teste!

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Metodos e Processos

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Metodos e Processos

Exercícios de Fixação

Apresentação do Curso

Teste! Teste! Teste! Teste!

Ferramentas de Teste

Metodos e Processos

Exercícios de Fixação

Profissionalismo

Objetivos

• Discutir nosso papel

• Apresentar os princípios

• Descrever estratégias de Planejamento

• Entender a automação de testes

Teste de Software

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

Vale a Pena?

Teste de Software

Teste de Software

Percepção de Valor não imediata

Teste de Software

Percepção de Valor não imediata

Não garante Qualidade Total

Documentação de Teste

Documentação de Teste

Qual o custo de Manutenção?

Documentação de Teste

Qual o custo de Manutenção?

Qual o impacto na velocidade?

Documentação de Teste

Qual o custo de Manutenção?

Qual o impacto na velocidade?

Quanta inércia será gerada?

Documentação de Teste

Qual o custo de Manutenção?

Qual o impacto na velocidade?

Quanta inércia será gerada?

Stakeholders concordam?

O que fazer?

O que fazer?

Questionar-se

Documentação de Testes

Documentação de Testes

Produto ou Ferramenta?

Documentação de Testes

Produto ou Ferramenta?

Qual a dinâmica do mercado?

Documentação de Testes

Produto ou Ferramenta?

Qual a dinâmica do mercado?

Encontrar defeitos ouevitar que eles ocorram?

Qualidade

Reduzir Riscos

Reduzir Riscos

Evitar que erros ocorram!

Reduzir Custos

Reduzir Custos

Eliminar Desperdícios!

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?

Exercício 1I

Sistema de Avaliação de Alunos

ObjetivoCriar um conjunto de testes

• 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

Testar para encontrar defeitos?

Processo Evolucionário

Processo Evolucionário

Desde o início do desenvolvimento

Processo Evolucionário

Desde o início do desenvolvimento

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

Processo Evolucionário

Desde o início do desenvolvimento

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

Adaptável e Incremental

Tipos de Teste

Caixa Branca

Testes Unitários

Testes Unitários

Testam um único componenteTodos os demais são simulados

Testes Unitários

Testam um único componenteTodos os demais são simulados

JUnit / JMock / Easymock

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

Testes de Integração

Testes de Integração

Testam integração entre componentes

Testes de Integração

Testam integração entre componentes

Codigo+BD / Codigo+Web

Testes de Integração

Testam integração entre componentes

JUnit / DBUnit / HsqlDB / Fit

Codigo+BD / Codigo+Web

@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

Testes de Aceitação

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

Testes de Aceitação

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

JUnit / Selenium

Testes de Aceitação

Caixa Preta

Análise de Valor Limite

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

NullValores Negativos

Listas Vaziasetc

Transição de Estado

Estado 1 Estado 2Transição

Entrada

Saída

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

Testes de Sintaxe

Campos Numéricos

Entrada de Dados

Campos RG / CPF / CNPJ

Máscaras

Testes de Desempenho

O quão tolerante a falha?

Simular falhas na rede

Excluir objetos

Múltiplos acessos Simultâneos

Testes de Caminho

ObjetivoExecutar todas as possibilidades do sistema

Testes de Integração

No final, se juntar tudo,funciona?

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

Exercício III

Matrícula Online

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)

Testes Unitários

Testes Unitários

Não será Teste Unitário se:

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

Testes Unitários

Testes Unitários

Objetivos: Um único cenário testado

Testes Unitários

Objetivos: Um único cenário testado

Independentes

Testes Unitários

Objetivos: Um único cenário testado

Independentes

Contidos: Não afetam outros testes

Testes Unitários

Objetivos: Um único cenário testado

Independentes

Contidos: Não afetam outros testes

Rápidos: Execução instantânea

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

Testes Unitários

Crie uma listaAdicione um Valor

Verifique se o valor está contido na lista

Exercícios

Testes Unitários

Organização

Testes Unitários

Organização

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

Em pacotes separados

Testes Unitários

Deve ser possível sacar valores de uma Conta

Exercícios

Testes Unitários

Removendo Duplicações nos testes

@Before

@After

Exercício IV

Sistema de controle de Estoque

ObjetivoCriar testes unitários para o sistema

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

Benefícios

TDD

3 Leis do TDD

3 Leis do TDD

Escreva um teste que falhe

3 Leis do TDD

Escreva um teste que falhe

Faça o teste passar

3 Leis do TDD

Escreva um teste que falhe

Faça o teste passar

Refatore

Motivação

Motivação

Confiabilidade

Motivação

Testabilidade do Sistema

Confiabilidade

Motivação

Testabilidade do Sistema

Confiabilidade

Dificuldade em adicionar mudanças

Exemplo Prático

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

top related