Baixe o app para aproveitar ainda mais
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}
Compartilhar