Click here to edit title

Click here to edit subtitle

Blog

Aprendendo a Testar

Posted by JJ on September 7, 2014 at 11:05 AM Comments comments (0)

Desde o início do ano venho trabalhando em alguns exercícios para ajudar o pessoal que está iniciando nos testes, exercícios práticos também que qualquer um possa fazer, até os mais experiêntes para que possam "brincar".


Então surgiu o site:


Foi onde resolvi disponibilizar também um Guia, para os novatos terem um norte, saberem como iniciar e o que é legal de se aprender. Voltado principalmente para a Base que um testador deve conhecer, teoria junto aos exercícios práticos.


O site também, pode servir de apoio à todos que estão na area e recebem gente nova na empresa, um local democrático(eu aceito todas as sugestões para melhoria) em quem você pode indicar ao novato que leia os passos do Guia e siga até iniciar os trabalhos. 


Também é bom continuar sempre se reciclando e relembrando a base para não perdermos o foco. 


Espero que gostem, um abraço.


#Exercicio3 Testando Entrada e Saída

Posted by JJ on April 1, 2014 at 12:20 AM Comments comments (0)

No nosso 3° exercício, vamos estudar algo que está no dia a dia do Testador, além, do trabalho, em toda sua vida. A premissa: "Você tem que dar, para receber"



 



Basicamente, você sempre passa alguma coisa e te devolvem alguma coisa, certo? Vejamos na nossa vida.

 

Para você comprar aquele IPhone tão desejado, você necessita ter dinheiro, certo?

Tirando a parte de como você vai obter esse dinheiro, para adquirir este produto tão sonhado, você necessita passar por um processo. Vamos entender o porquê:


 

 

" Você realiza uma pesquisa de preços, para ver se consegue pagar(ou você tem muita grana e não ta nem ai, assim, vai no primeiro lugar que achar). Chega na loja, pede ao vendedor que te mostre o produto, escolhe a cor que deseja, solicita aquele produto naquela cor, faz a requisição de compra, paga e assina o termo de compra(canhoto, nota fiscal etc.) e sai da loja feliz da vida com seu novo Iphone."



Nessa história temos um processo para realizar a compra contendo nesteverdadeiros critérios de entrada e saída.

 

Mas antes de analisarmos estes critérios vamos aos estudos

 


O Syllabus que é: "Este syllabus forma a base deconhecimento para a Qualificação Internacional de Teste de Software no nível Foundation." Palavras do Próprio.

 

Explica os critérios de entrada e saída:

 


5.2.3 Critério de Entrada 

Os critérios de entrada definem quando começar um teste, no início de um nível de teste ou quando um conjunto de testes está pronto para execução.


Os critérios de entrada podem ser constituídos de:

  • Disponibilidade do ambiente de teste.
  • Preparação da ferramenta de no ambiente de teste.
  • Disponibilidade de código a ser testado.
  • Disponibilidade dos dados de teste.

 

5.2.4 Critério de Saída 

Os critérios de saída definem quando parar de testar, no final de um nível de teste ou quando um conjunto de testes realizados atingiu um objetivo específico.


Os critérios de encerramento podem ser constituídos de:

  • Métricas como a cobertura de código, riscos ou funcionalidades.
  • Estimativa da densidade de defeitos ou segurança nas medições.
  • Custos.
  • Riscos residuais, como defeitos não solucionados ou falta de cobertura de teste em algumas áreas.
  • Cronograma, baseado na data de entrega do produto.



Nossa pesquisa pela Web mostrou uma apresentação de Eduardo Figueiredo que traz um modelo de entrada e saída.

http://homepages.dcc.ufmg.br/~figueiredo/disciplinas/aulas/testes-software_v01.pdf.

 






Então:

 

O que podemos entender como Entrada e Saída?

 

Simplesmente podemos utilizá-las em todo o ciclo de Testes, de Qualidade de Software e sim, de Desenvolvimento de Software. Deixando um pouco de lado o conceito em Processos de Entrada e Saída(Documento de requisitos -> Sistema). Voltando aos testes, podemos dividir em duas macro partes. Nos testes de Caixa Branca e nos testes de Caixa Preta.




Nos testes de Caixa Branca, entende-se que podemos inserir o mais limpoe mais baixo nível dos testes de Entrada e Saída:

 

Dado:

 

         Temos um sistema de notafiscal e retirada de compras, que buscam os códigos dos produtos informados,trazendo seus valores e somam os valores para mostrar o resultado final dacompra.

 

Dentro dessa expectativa, temos alguns testes, porém o mostrado aquiseria a somatória dos valores do produto para apresentar o valor da compra.

 

Mais ou menos seria isso:

 

         int produto1 = 59,90;
         int produto2 = 22,00;
         int resultado = 81,90;

         se( produto1 + produto2 =resultado){
                   print("Ocalculo está correto");

         }senão{
                   print("Aconteceualgo errado com o cálculo       );

         }

 

Onde:

 

 public class Calculadora {  
      public int somar(int x , int y){  
           return x+y;  
      }  
      public int subtrair(int x,int y){  
           return x-y;  
      }  
      public int multiplicar(int x, int y){  
           return x*y;  
      }  
      public int dividir (int x, int y){  
           return x/y;  
      }  
 }  


Então teríamos:

 

 @Test  
     public void somar() {  
         assertEquals("Passou com sucesso", 4, calculadora.somar(2, 2));  
     }  
     @Test  
     public void subtrair() {  
        assertEquals("Passou com sucesso", 0, calculadora.subtrair(2, 2));  
     }  
     @Test  
     public void multiplicar() {  
        assertEquals("Passou com sucesso", 4, calculadora.multiplicar(2, 2));  
     }  
     @Test  
     public void dividir() {  
        assertEquals("Passou com sucesso", 1 , calculadora.dividir(2, 2));  
     }  


Assim teríamos um teste de Entrada e Saída nos testes de Caixa Branca, informando uma entrada especifica dentro do código, e requisitando a saída correta.

 

É meio lógico um teste desse dar certo. Porém no nosso dia a dia veríamos que se o código do nosso programador estivesse assim:

 

      public int subtrair(int x,int y){  
           return x+y;  


Nosso teste daria erro, pois nossa Entrada seria 2+2, e a saída seria 0:

 

     @Test  
     public void subtrair() {  
        assertEquals("Passou com sucesso", 0, calculadora.subtrair(2, 2));  
     }  


 

Nos testes de Caixa Preta, não vemos o código, somente a interface jápronta. Assim, utilizaremos o sistema como se fossemos o usuário final. Informandodados reais e esperando os resultados corretos a partir dos dados informados.Testando o seu real funcionamento.

 

O Testlink trabalha com entradas e saídas, as entradas são ações à serealizar para se obter as saídas esperadas.

 

No nosso Software Gestor de Testes Testlink, nós utilizamos osconceitos de Entrada e Saída para executar os Casos(Cenários) de Testes.

 


Ações do passo seria o que nós entraríamos no sistema, Resultados Esperados seria o que o sistema responderia.

 

Dado:

 

         Temos um sistema de nota fiscal e retirada de compras, que buscam os códigos dos produtos informados, trazendo seus valores e somam os valores para mostrar o resultado final da compra.

 

Nessa expectativa, temos um teste:

Onde:

        Entrada:

         Informar um produto x; Este produto x, tem o valor x;

         Informar um produto y; Este produto y, tem o valor y;

 

        Saída:

         O Sistema retorna a somados produtos x e y;

         O resultado da soma deve ser correto;

 

Não entre em pânico caso o resultado do seu teste for como esse:

 


 

 


Voltando ao exemplo citado no início do artigo, teríamos além de váriasformas o seguinte Cenário de Teste como exemplo:

 

Pré requisitos:

Realizar uma pesquisa de preços;

Ter um resultado dessa pesquisa de preços;

Ir à loja de sua preferência;

Loja ter o produto em estoque.

 

Passo 1:

Entrada:

Requisitar ao vendedor o Produto

 

Saída:

Vendedor mostra o produto

 

Passo 2:

Entrada:

Escolher a cor do produto

 

Saída:

Vendedor mostra as cores disponíveis

 

Passo 3:

Entrada:

Escolhe o produto

Solicita a ordem de compra

 

Saída:

Vendedor tira a ordem de compra

Vendedor destina a ordem para o caixa

 

Passo 4:

Entrada:

Realiza o pagamento

 

Saída:

Caixa entrega nota de compra

 

Passo 5:

Entrada:

Assina nota fiscal

Retira produto

 

Saída:

Entrega produto com sucesso.

 



Desafio: Teste de Entrada e Saída, cadastre o usário e confira o cadastro no Relatório, faça isso para vários clientes.

Informe o nome, confira o nome.

Informe o animal, confira o animal e o dono correto.

Informe datas de nascimento diferentes. Entre outros.

 

 

 

 

Leitura do dia:

 

- Caixa Branca

- Caixa Preta

- Testlink

- Cenários de Testes

 

 

Post descritivo ao teste do exercício 3 - Testando Cadastro Veterinário Desktop

 



#Exercicio2 Testando os Valores Limites

Posted by JJ on March 12, 2014 at 1:45 PM Comments comments (0)

O exercício de hoje, será direcionado. No primeiro exercício você teve livre escolha para encontrar os defeitos e falhas no sistema.


Os campos respeitam seus limites?


Os mais experientes sabem que um problema sério e que não conseguimos fugir hoje no cenário brasileiro de testes, são os valores limites. Esses valores que deveriam ser testados na fase de Teste Unitário, porém, chegam sistemas em que você tem de testar os valores limites sim. E é isso que iremos fazer nesse exercício.


 

Não vou explicar o que é, pois temos 3 links que fazem isso melhor do que qualquer explicação são esses


 

Analise do Valor Limite - Wikipédia

http://pt.wikipedia.org/wiki/An%C3%A1lise_do_valor_limite


 

Analise do Valor Limite - Blog da Sarah Pimentel

http://ensaiosdeqa.blogspot.com.br/2010/03/analise-de-valor-limite.html


 

Trabalho feito por: Auri Marcelo Rizzo Vincenzi e Gilcimar Divino de Deus para a UFG.

http://www.inf.ufg.br/~auri/curso/arquivos/funcional03.pdf


Então vamos aos requisitos ocultos do Projeto. Temos 2 cadastros:


 

Dados do Cliente, contém os campos:

 


Nome do campo: Nome
Tipo de dados: Texto
Tamanho: 255

 

Nome do campo: Telefone
Tipo de dados: Texto
Tamanho: 255

 

 


Dados do Animal, contém os campos:

 

Nome do campo: Nome
Tipo de dados: Texto
Tamanho: 255

 

Nome do campo: Espécie
Tipo de dados: Texto
Tamanho: 255

 

Nome do campo: Raça
Tipo de dados: Texto
Tamanho: 255

 

Nome do campo: Data de Nascimento
Tipo de dados: Data Curta
Tamanho: 8

 


Desafio: Teste os valores limite dos campos dos cadastros.

 

 


Leitura do dia:

 

- Teste Unitário

- Defeito

- Falha

- Tipos de dados


Post descritivo ao teste do exercício 2 - Testando Cadastro Veterinário Desktop

 

 

#Exercicio1 Testando Sistema de Cadastros Desktop

Posted by JJ on March 10, 2014 at 9:35 AM Comments comments (3)

Exercício 1 para quem está começando testar ou para quem quer treinar suas habilidades nos testes de software.

O sistema que iremos testar é o seguinte:

 

 

Projeto

 

O Veterinário Vinicius Cândido contactou a empresa EngSoftUdi para a geração de um sistema de cadastro de Clientes para seu consultório veterinário. Solicitou que o sistema tivesse as seguintes funcionalidades:


 

  • Cadastrar Clientes
  • Cadastrar Animais
  • Editar Clientes
  • Editar Animais
  • Relatório de Clientes e seus animais.

 

O sistema proposto pela empresa foi feito em Access, com a seguinte estrutura.

Dados do Cliente, contém os campos:

Nome
Telefone


Dados do Animal, contém os campos:

Nome
Espécie
Raça
Data de Nascimento


 

Relatório de Clientes e seus animais, mostra os dados dos clientes e de seus animais, para facilitar a busca de um animal e um cliente.

 

 


Desafio: Testar este sistema.

São 08h00. Encontre o máximo de falhas que conseguir e envie o relatório de não conformidades.

Você tem 4 horas para realizar os testes e encontrar o máximo de defeitos possível, pois a entrega para o cliente será amanha. A parte da tarde será para corrigir estes defeitos encontrados e no final para retestar o sistem.


Post descritivo ao teste do exercício 1 - Testando Cadastro Veterinário Desktop

Como baixar os repositorios do GitHub

Posted by JJ on March 7, 2014 at 8:35 AM Comments comments (1)

Estou migrando aos poucos meus arquivos o GitHub.

Então, para baixar arquivos dos downloads, exercicios basta seguir os seguintes passos:


Para baixar os arquivos dos exercícios, basta acessar aminha página do Github: https://github.com/testejoaojunior


 

Na página principal acessar à aba Repositórios:


 

Digitar o nome do exercício no campo de busca;

E clicar no repositório desejado;


 

 

Serão apresentados todos os arquivos do repositório, clique em download zip para baixar os arquivos.

 

 


Pronto agora é só estudar e aprendender mais e mais.