Buscar

2016 02 TesteDeSoftware avaliacao01 parte1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Avaliação 01 – Teste de Software (Parte 1)
Prof. André Takeshi Endo
RA: _______ NOME: _______________________________ASSINATURA: _________________
Considerações iniciais
• Todas as questões práticas devem ser desenvolvidas usando a linguagem de programação
Java. Certifique-se de que suas classes estejam compilando sem erros de sintaxe e
semântica. Tais problemas podem implicar na perca de pontos ou anulação da questão.
• As questões teóricas podem ser respondidas em um arquivo de texto.
• As questões devem ser enviadas como um arquivo único (zip). Verifique se o arquivo foi
corretamente enviado. O acesso a Internet só será permitido durante o envio das questões.
Chamar o professor no momento do envio da avaliação.
• Materiais offline e escritos podem ser consultados.
• Seguir as diretrizes para implementação dadas em sala de aula.
(Questão 1) (1) Responda as questões abaixo:
(a) Qual o principal objetivo do teste de software?
(b) O que é um caso de teste?
(c) Quais os níveis de teste? E quais são as etapas do teste?
(d) Qual a ideia principal do teste exploratório? Em qual nível é principalmente aplicado?
(Questão 2) (2) Considere a classe abaixo:
import java.util.Random;
public class Aleatorio {
 /** O metodo deve receber dois inteiros que representam o inicio e o fim de um intervalo e 
 * retornar um numero aleatorio que se encontra dentro do intervalo estabelecido, 
 * ou seja, [inicio, fim]. Caso o inicio do intervalo ou o fim do intervalo sejam 
 * menor que zero, o metodo deve retornar -1. O metodo tambem retorna -1 quando o inteiro 
 * representando o inicio do intervalo for maior ou igual ao inteiro representando o 
 * fim do intervalo. **/
 public int gerarNumeroAleatorio(int inicio, int fim) {
 if (inicio < 0 || fim < 0) {
 return -1;
 }
 
 if (inicio >= fim) {
 return -1;
 }
 int diff = fim - inicio + 1;
 Random random = new Random();
 
 int tInt = random.nextInt(diff); //esse método retorna um número aleatorio 
 //entre 0 e diff [ 0, diff [
 return inicio + tInt;
 }
}
Implemente casos de teste em JUnit para o método “gerarNumeroAleatorio(..)” da classe anterior
que verifique as seguintes situações:
• o início do intervalo é um valor negativo;
• o fim do intervalo é um valor negativo;
• o início do intervalo é igual ao fim do intervalo; e
• um intervalo válido [200, 3000] é fornecido. 
(Questão 3) (2) Considere as três classes abaixo: 
MathOps.java
public interface MathOps {
 public int fatorial(int n);
}
Primo.java
public interface Primo {
 public boolean ehPrimo(int n);
}
Somatoria.java
public class Somatoria {
 MathOps mathOps;
 public Somatoria(MathOps mathOps) {
 this.mathOps = mathOps;
 }
 /**
 * @param numeros
 * @return a somatoria do fatorial de cada inteiro no array numeros que nao eh primo
 */
 public int somaDeFatoriais(int numeros[], Primo p) {
 int soma = 0;
 for (int i = 0; i < numeros.length; i++) {
 int numero = numeros[i];
 if(! p.ehPrimo(numero)) {
 soma += numero;
 }
 }
 return 0;
 }
}
Implemente casos de teste em JUnit para o método “somaDeFatoriais(..)” da classe “Somatoria”.
Use o Mockito para simular e verificar interações com as classes “MathOps” e “Primo”.
Implemente os casos de teste, considerando os vetores abaixo como entrada:
• {5, 10};
• {3, 4, 4, 5}

Continue navegando