#Exercicio3 Testando Entrada e Saída
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