Você está na página 1de 4

INSTITUTO SUPERIOR DE COMUNICAÇÃO E IMAGEM DE MOÇAMBIQUE

Disciplina: Teste e Qualidade do Software


Exercícios de consolidação

Fernando Nhanice

Métricas para análise do código:


Considerando o padrão de métricas de software IEEE/ANSI, preencha as lacunas nas afirmações
abaixo.
1) ______________ é um lapso humano que resulta em um software incorreto. 2)
_______________é uma condição acidental que provoca uma unidade do sistema a não operar
da forma necessária. 3) ______________é uma anomalia no produto. 4) ______________ ocorre
quando uma unidade funcional de um sistema relacionado a um software não mais consegue
desempenhar as funções necessárias ou deixa de operar dentro dos limites especificados.
As lacunas estão correta e respectivamente preenchidas em:

 A Falta - Erro - Defeito - Falha


 B Erro - Falta - Defeito - Falha
 C Erro - Defeito - Falta - Falha
 D Defeito - Falha - Falta - Erro
 E Falta - Falha - Erro – Defeito

Acerca das métricas e estimativas de software que utilizam a análise por pontos de função, julgue
o item subsequente.

Devido a suas características, uma tela de login pode ser considerada como um exemplo de
consulta externa em uma contagem de pontos de função.

 Certo
 Errado

A métrica de qualidade de código que mede a complexidade estrutural de um programa


computando o número de caminhos linearmente independentes ao longo do código-fonte é
denominada

 A complexidade ciclomática.
 B complexidade de Halstead.
 C contagem de pontos de microfunção ponderados.
 D índice de manutenibilidade.
 E extensibilidade.
Análise estrutural apoiada em ferramentas Inspeção e revisão de código:

1. Quais são os critérios para inspecionar um determinado código aplicado a um sistema?

2. Tipos de Inspeção?

3. Como fazer a revisão?

4. Qual o período máximo para a inspeção e revisão do código?

Refactoring:
Refactoring é o processo que

a) Implementa todas as funcionalidades da camada de model para depois implementar as


camadas de controller e de viewer, nos casos em que a arquitetura MVC é utilizada.

b) Efetua mudanças em um código existente e funcional sem alterar seu comportamento externo,
com o objetivo de aprimorar a estrutura interna do código.

c) Inclui funcionalidades extras no código, com o intuito de aprimorá-lo (rich source-code).

d) Aprimora a extração e o refinamento iterativo dos requisitos do produto ainda na fase de


planejamento do software, sendo considerado um valor na X P (extreme programming).

e) Estabelece os métodos, um após o outro, para depois definir as classes e suas abstrações e
implementar as interfaces.
Em relação à refatoração, assinale com V (verdadeiro) ou F (falso) as afirmações abaixo.
( ) O melhor momento para se refatorar um código é durante os testes de aceitação, pois o cliente
tem interesse em um código de qualidade.
( ) Um dos passos da refatoração é a aplicação dos testes que verificarão sua implementação.
( ) Rotinas muito longas e código duplicado são exem-plos de bad smells.
( ) Refatorações são modificações no código que são simples a ponto de não gerarem nenhum
efeito prático.
( ) Um código que já foi refatorado uma vez não preci-sará ser refatorado no futuro, pois já
atende aos critérios de qualidade exigidos.
( ) A refatoração de um código implica apenas a melhoria de sua qualidade interna e não deve
afetar sua funcionalidade original.
A sequência correta de preenchimento dos parênteses, de cima para baixo, é

a) F – V – F – V – F – V.

b) V – F – V – F – V – F.

c) F – V – V – F – F – V.

d) F – V – F – V – V – F.

e) V – F – V – F – V – V.

Melhore o código abaixo, tendo em conta que foi usada uma programação estruturada:
import javax.swing.*;
public class Calculadora {
public static void main(String[] args) {

String numA = JOptionPane.showInputDialog(null, "Digite o primeiro número:");


String numB = JOptionPane.showInputDialog(null, "Digite o segundo número:");
//transfomando os Strings em Inteiros
double a = Double.parseDouble(numA);
double b = Double.parseDouble(numB);
//calculando
double soma = a + b;
double sub = a - b;
double mult = a * b;
double div = a / b;
//mostrando o resultado das quatro operações básicas
JOptionPane.showMessageDialog(null,
"Soma: " + soma + "\n" +
"Subtração: " + sub + "\n" +
"Multiplicação: " + mult + "\n" +
"Divisão: " + div );
}
}

Você também pode gostar