Вы находитесь на странице: 1из 101

Teste de Software

Victor Hugo Germano

Aula - 01

CTAI SENAISC

Eu? Quem?

Victor Hugo Germano http://malditacomedia.blogspot.com

Por que testar?

Apresentao do Curso

Teste! Teste! Teste! Teste!

Apresentao do Curso

Teste! Teste! Teste! Teste! Ferramentas de Teste

Apresentao do Curso

Teste! Teste! Teste! Teste! Ferramentas de Teste Metodos e Processos

Apresentao do Curso

Teste! Teste! Teste! Teste! Ferramentas de Teste Metodos e Processos Exerccios de Fixao

Apresentao do Curso

Teste! Teste! Teste! Teste! Ferramentas de Teste Metodos e Processos Exerccios de Fixao Prossionalismo

Apresentao do Curso

Objetivos

Discutir nosso papel Apresentar os princpios Descrever estratgias de Planejamento Entender a automao de testes

Teste de Software

IEEE Standard 829 for Software Test Documentation

Plano de Testes Especicao de Arquitetura de Teste Especicao de Casos de Teste


Identicadores para Especicao de Casos de Teste Itens a serem testados Especicao de Entrada Especicao de Sada Necessidades de Ambiente Requisitos especiais de processos Dependncias internas para casos de Uso

Especicao do Procedimento de Testes Relatrio de Comunicao de Item testado Log de Teste

Vale a Pena?

Teste de Software

Teste de Software Percepo de Valor no imediata

Teste de Software Percepo de Valor no imediata No garante Qualidade Total

Documentao de Teste

Documentao de Teste Qual o custo de Manuteno?

Documentao de Teste Qual o custo de Manuteno? Qual o impacto na velocidade?

Documentao de Teste Qual o custo de Manuteno? Qual o impacto na velocidade? Quanta inrcia ser gerada?

Documentao de Teste Qual o custo de Manuteno? Qual o impacto na velocidade? Quanta inrcia ser gerada? Stakeholders concordam?

O que fazer?

O que fazer?

Questionar-se

Documentao de Testes

Documentao de Testes Produto ou Ferramenta?

Documentao de Testes Produto ou Ferramenta? Qual a dinmica do mercado?

Documentao de Testes Produto ou Ferramenta? Qual a dinmica do mercado? Encontrar defeitos ou evitar que eles ocorram?

Qualidade

Reduzir Riscos

Reduzir Riscos

Evitar que erros ocorram!

Reduzir Custos

Reduzir Custos

Eliminar Desperdcios!

Exerccio 1 Grupos de 2 - 3 pessoas Quais so os seus desaos na adoo de Polticas de qualidade e Testes de software?

Exerccio 1I Sistema de Avaliao de Alunos Objetivo Criar um conjunto de testes

Execcio 1I
Durante o semestre so dadas trs notas; A nota nal obtida pela mdia aritmtica das notas dadas durante o curso; considerado aprovado o aluno que obtiver a nota nal superior ou igual a 60 e que tiver comparecido a um mnimo de 40% das aulas. Deve ser possvel para este sistema: Calcular a nota nal de cada aluno, a maior e a menor nota da turma, bem como a mdia da turma. Calcular o total de alunos reprovados Calcular a porcentagem de alunos reprovados por freqncia

Testar para encontrar defeitos?

Processo Evolucionrio

Processo Evolucionrio
Desde o incio do desenvolvimento

Processo Evolucionrio
Desde o incio do desenvolvimento Evoluo dos testes ligada evoluo do Sistema

Processo Evolucionrio
Desde o incio do desenvolvimento Evoluo dos testes ligada evoluo do Sistema Adaptvel e Incremental

Tipos de Teste

Caixa Branca

Testes Unitrios

Testes Unitrios
Testam um nico componente Todos os demais so simulados

Testes Unitrios
Testam um nico componente Todos os demais so simulados

JUnit / JMock / Easymock

Testes Unitrios
public void addValor(int valor) { this.saldo += valor } public void getSaldo() { return this.saldo; } @Test public void verificaCalculoDoSaldo() { Conta conta = new Conta(200); conta.addValor(100); assertEquals(300, conta.getSaldo()); }

Testes de Integrao

Testes de Integrao
Testam integrao entre componentes

Testes de Integrao
Testam integrao entre componentes Codigo+BD / Codigo+Web

Testes de Integrao
Testam integrao entre componentes Codigo+BD / Codigo+Web

JUnit / DBUnit / HsqlDB / Fit

Testes de Integrao
@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 Aceitao

Testes de Aceitao
Testam uma funcionalidade, estria ou um caso de uso

Testes de Aceitao
Testam uma funcionalidade, estria ou um caso de uso

JUnit / Selenium

Caixa Preta

Anlise de Valor Limite


Extrapolar os valores mximo e mnimo de uma funcionalidade

Null Valores Negativos Listas Vazias etc

Transio de Estado Entrada

Estado 1

Transio

Estado 2

Sada

Transio de Estado
Ordem 1 2 3 4 5 Ao Iniciar Edio de dados do Usurio xpto Modicar permissao de acesso para admin Sair do Sistema Entrar no sistema como usurio xpto Vericar se menu admin est disponvel

Testes de Sintaxe Entrada de Dados


Campos Numricos Campos RG / CPF / CNPJ Mscaras

Testes de Desempenho O quo tolerante a falha?


Simular falhas na rede Excluir objetos Mltiplos acessos Simultneos

Testes de Caminho
Objetivo Executar todas as possibilidades do sistema

Testes de Integrao

No nal, se juntar tudo, funciona?

teste da instalao teste da implantao teste de desempenho teste de compatibilidade com outros sistemas teste de converso teste da documentao teste do backup teste da recuperao

Exerccio III

Matrcula Online

Execcio III
O Aluno acessa o Site do Curso com seu usurio e senha Ao acesso a sesso especial de "Pedido de Matrcula", 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 no possua pr-requisitos necessrios Todo aluno deve possuir, no mximo, 30 crditos Disciplinas podem ter entre 1 e 8 crditos Aps fazer a solicitao, um comprovante apresentado ao usurio contendo um boleto bancrio para o pagamento das taxas de matrculas referentes s disciplinas solicitadas. (Cada disciplina custa R$ 10,00)

Testes Unitrios

Testes Unitrios
No ser Teste Unitrio se:

Testes Unitrios
No ser Teste Unitrio se:

Se conecta a um banco de Dados Utiliza a rede Utiliza o sistema de arquivos No executvel individualmente Precisa de uma congurao do Ambiente

Testes Unitrios

Testes Unitrios
Objetivos: Um nico cenrio testado

Testes Unitrios
Objetivos: Um nico cenrio testado Independentes

Testes Unitrios
Objetivos: Um nico cenrio testado Independentes Contidos: No afetam outros testes

Testes Unitrios
Objetivos: Um nico cenrio testado Independentes Contidos: No afetam outros testes Rpidos: Execuo instantnea

Testes Unitrios
A forma bsica para testes a seguinte:
Crie um objeto e coloque-o em um estado conhecido Invoque um mtodo, o qual retorne um resultado real Crie um objeto representando o resultado esperado Invoque assertEquals(resultadoEsperado, resultadoReal)
para conrmar se a implementao est correta.

Testes Unitrios
Exerccios
Crie uma lista Adicione um Valor Verique se o valor est contido na lista

Testes Unitrios
Organizao

Testes Unitrios
Organizao
Separados do Cdigo de Produo Juntos ao cdigo Em pacotes separados

Testes Unitrios
Exerccios
Deve ser possvel sacar valores de uma Conta

Testes Unitrios
Removendo Duplicaes nos testes
@Before @After

Exerccio IV
Sistema de controle de Estoque
Objetivo Criar testes unitrios para o sistema

Controle de Estoque
Adicione Itens ao Estoque ( nome) Remova Itens do Estoque Liste Itens em Estoque Itens no devem estar repetidos (lanar exceo)

Benefcios

TDD

3 Leis do TDD

3 Leis do TDD

Escreva um teste que falhe

3 Leis do TDD

Escreva um teste que falhe Faa o teste passar

3 Leis do TDD

Escreva um teste que falhe Faa o teste passar Refatore

Motivao

Motivao

Conabilidade

Motivao

Conabilidade Testabilidade do Sistema

Motivao

Conabilidade Testabilidade do Sistema Diculdade em adicionar mudanas

Exemplo Prtico

Encontrar o nmero de dias entre um dado Dia e a data atual: Hoje: 22/04/2009 20/04/2009: 2 dias atrs 8/04/2009: 2 semanas atrs
http://dojooripa.wordpress.com

Вам также может понравиться