Você está na página 1de 7

Universidade Federal de Sergipe – Campus São Cristóvão

Avaliação 2 – Engenharia de Software para SI II


Nome: _______________________________________________
Curso: Sistemas de Informação Data: 21/02/2018
Professora Dra. Adicinéia A. de Oliveira

Instruções:
→ A prova é individual e sem consulta. Questões discursivas e de múltipla escolha devem ser
respondidas à caneta.
→ Responda com clareza e objetividade as questões discursivas. Cuidado com a ortografia e
caligrafia, bem como a utilização da notação UML, quando for o caso. Se necessário utilize o
verso.
→ Leia atentamente as questões. Coloque o nome em todas as folhas. O grampo pode ser
retirado.
Boa Prova!!!

Questões de Múltipla Escolha – Para cada questão existem 5 alternativas e apenas uma alternativa é
correta. (Vale 0,25 ponto cada questão). Questões Discursivas e Diagramas – O valor está indicado na
questão e o espaço para resposta disponível.

Dica: Quando terminar passe as respostas à caneta e verifique se todas foram respondidas!

1.1) A verificação de software é um processo mais abrangente que o processo de validação de software.
PORQUE
O objetivo da validação é assegurar que o sistema atenda às expectativas do cliente, enquanto que a
verificação envolve testes de correção do produto.
Analisando-se as afirmações acima, conclui-se que:
(A) as duas afirmações são verdadeiras, e a segunda justifica a primeira.
(B) as duas afirmações são verdadeiras, e a segunda não justifica a primeira.
(C) a primeira afirmação é verdadeira, e a segunda é falsa.
(D) a primeira afirmação é falsa, e a segunda é verdadeira.
(E) as duas afirmações são falsas.

1.2) Com relação à biblioteca de boas práticas na oferta de serviços de tecnologia da informação denominada
ITIL (Information Technology Infrastructure Library), visualize o seguinte cenário de ciclo de vida de
incidente:
Considere:
MTTR = Mean Time to Repair (Tempo médio para reparo)
MTBF = Mean Time Between Failures (Tempo médio entre falhas)

Neste caso, qual das alternativas abaixo é a correta, levando em consideração os períodos A (tempo entre
o incidente e sua restauração) e B (tempo entre a restauração e o próximo incidente)?
(A) MTTR = B; MTBF = A; DISPONIBILIDAE = B – A
(B) MTTR = A; MTBF = B; DISPONIBILIDADE = A / B
(C) MTTR = B; MTBF = A; DISPONIBILIDADE = B / A
(D) MTTR = A; MTBF = B; DISPONIBILIDADE = B/ (B + A)
(E) MTTR = A; MTBF = B; DISPONIBILIDADE = A/ (B + A)

1.3) O Gerenciamento de versões e releases objetiva assegurar que procedimentos e ferramentas de


gerenciamento das versões sejam adequadamente aplicados. Os principais conceitos envolvidos são:
I. Versão é uma instância de um sistema que é funcionalmente distinta, de alguma maneira, de outras
instâncias de um sistema.
II. Variante é uma instância de um sistema que é funcionalmente idêntica, mas não funcionalmente distinta
de outras instâncias de um sistema.
III. Release é uma instância de um sistema distribuída para os usuários da equipe de desenvolvimento.
IV. Os procedimentos para identificação de versões devem definir uma maneira ambígua de identificação
de versões de componentes.
Universidade Federal de Sergipe – Campus São Cristóvão
Avaliação 2 – Engenharia de Software para SI II
Nome: _______________________________________________
Curso: Sistemas de Informação Data: 21/02/2018
Professora Dra. Adicinéia A. de Oliveira
V. Existem três técnicas básicas para identificação de componentes: numeração de
versões; identificação baseada em atributos; e, identificação orientada a mudanças.
Julgue os conceitos apresentados.
(A) C-C-C-E-E.
(B) C-C-E-E-C.
(C) C-E-E-C-C.
(D) E-C-E-C-E.
(E) E-E-E-C-E.

1.4) A disponibilidade é a capacidade de um componente ou sistema estar em condições de executar uma certa
função em um dado instante ou durante um intervalo de tempo levando em conta a confiabilidade,
manutenabilidade, entre outros. Analise e resolva a seguinte situação: uma aplicação na área da saúde
deve estar disponível por um longo período de tempo, em plena condição de uso de maneira a garantir a
segurança do paciente. Estando a disponibilidade desta aplicação sendo monitorada por um analista, foi
verificado que o MTTF (Mean Time To Failure) possui o valor de 5000 horas e que o MTTR (Mean Time To
Repair) possui o valor de 100 horas. A disponibilidade (%) então é de, aproximadamente:
(A) 96,08.
(B) 97,00.
(C) 98,00.
(D) 98,04.
(E) 98,08.

(Vale 0,5) Justifique sua resposta, apresentando os cálculos efetuados.


R.: 5000/(100+5000)*100= 98,04

1.5) Os testes de caixa preta (CP) e os testes de caixa branca (CB) apresentam as seguintes características:
I. Referem-se a testes que são conduzidos na interface do software. Examinam algum aspecto
fundamental do sistema, sem se preocupar com a estrutura lógica interna do software.
II. Testes exaustivos podem ser impraticáveis, mas podem ser aplicados testes que examinam caminhos
lógicos importantes e estruturas de dados essenciais podem ser submetidas à prova quanto à sua
validade.
III. São baseados em um exame rigoroso do detalhe procedimental. Caminhos lógicos internos ao software
e colaborações entre componentes são testados, definindo-se casos de teste que exercitam conjuntos
específicos de condições e/ou ciclos.
IV. Focalizam os requisitos funcionais do software, permitindo ao engenheiro de testes derivar conjuntos de
condições de entrada que vão exercitar plenamente todos os requisitos funcionais de um programa.
V. Tentam encontrar erros: em funções incorretas ou omitidas, de interface, de comportamento ou
desempenho, de iniciação e término.
VI. Ao usá-los, o engenheiro de testes pode derivar casos de teste que garantam que todos os caminhos
independentes de um módulo tenham sido exercitados pelo menos uma vez.

A associação dos tipos de teste de CP ou testes de CB com as características de I a VI é apresentada, correta


e respectivamente, em:
(A) CP - CB - CB - CP - CP - CB.
(B) CP - CB - CB - CB - CP - CP.
(C) CB - CP - CP - CB - CB - CP.
Universidade Federal de Sergipe – Campus São Cristóvão
Avaliação 2 – Engenharia de Software para SI II
Nome: _______________________________________________
Curso: Sistemas de Informação Data: 21/02/2018
Professora Dra. Adicinéia A. de Oliveira
(D) CB - CP - CP - CP - CB - CP.
(E) CB - CB - CP - CB - CP - CB.

1.6) Na especificação de requisitos de um software há os requisitos funcionais e os não funcionais. A


confiabilidade representa um tipo de requisito não funcional, e como os demais requisitos desse tipo, há
diversas métricas que auxiliam em sua medição. Um tipo de métrica aplicada na medição da confiabilidade
é:
(A) o número de manutenções preventivas.
(B) o tempo de treinamento do sistema.
(C) a taxa de ocorrência de falhas.
(D) o número de usuários simultâneos.
(E) o tempo entre as falhas.

1.7) Assinale a alternativa que corresponde às três estratégias de depuração de software.


(A) Estratégia da força bruta, estratégia do esforço e estratégia ascendente.
(B) Estratégia do rastreamento, estratégia de integração e estratégia ascendente.
(C) Estratégia do esforço, estratégia de integração e estratégia da eliminação da causa.
(D) Estratégia da força bruta, estratégia do rastreamento e estratégia da eliminação da
causa.
(E) Estratégia do rastreamento, estratégia de integração e estratégia da eliminação da
causa.

1.8) Na gestão de risco de proteção, o registro da debilidade no sistema atual de proteção em relação a todas
as ameaças em potencial, é realizado durante a atividade de análise:
(A) de proteção.
(B) de vulnerabilidade dos ativos.
(C) de perdas.
(D) e avaliação dos ativos.
(E) de custo-benefício.

1.9) A falha de muitos sistemas controlados por software causa inconveniência, por isso todos os aspectos da
confiança podem ser importantes. Um desses aspectos está relacionado com a probabilidade de o sistema,
em determinado instante, ser operacional e capaz de fornecer os serviços requeridos. O aspecto citado é
denominado:
(A) disponibilidade.
(B) confidencialidade.
(C) segurança.
(D) confiabilidade.
(E) usabilidade.

1.10) Sistemas de software podem ser testados em diferentes granularidades. Nas granularidades mais altas,
pode-se ter o teste de entradas e saídas de uma função. Em granularidades mais baixas pode-se testar até
interações complexas de todo um sistema com o usuário. Das alternativas seguintes, qual delas ordena, da
esquerda para direita, da granularidade mais alta para a mais baixa, os diferentes tipos de testes?
(A) Teste de unidade, teste de sistema, teste de integração.
(B) Teste de integração, teste de sistema, teste de unidade.
(C) Teste de sistema, teste de integração, teste de unidade.
(D) Teste de unidade, teste de integração, teste de sistema.
(E) Teste de integração, teste de unidade, teste de sistema.

1.11) Durante um treinamento para as equipes de desenvolvimento e de testes, um analista transmitiu as


seguintes orientações:
I - Para isolar a causa de um erro de software, os desenvolvedores deveriam utilizar a estratégia de depuração
força bruta por ser o método mais eficiente, e, para grandes programas, utilizar a abordagem de rastreamento.
II - Para os testes de integração em sistemas orientados a objetos, poderiam ser utilizadas as estratégias de
teste com base no caminho de execução e no uso.
III - Em sistemas orientados a objetos, o teste de sensibilidade poderia ser utilizado para tentar descobrir
combinações de dados, dentro das classes de entrada válidas, que poderiam causar instabilidade ou
processamento inadequado do sistema.
Universidade Federal de Sergipe – Campus São Cristóvão
Avaliação 2 – Engenharia de Software para SI II
Nome: _______________________________________________
Curso: Sistemas de Informação Data: 21/02/2018
Professora Dra. Adicinéia A. de Oliveira
Constitui(em) prática(s) adequada(s) de estratégias de testes de software a(s)
orientação(ões):
(A) I, apenas.
(B) II, apenas.
(C) I e II, apenas.
(D) II e III, apenas.
(E) I, II e III.

1.12) Gerência de Configuração de Software é um conjunto de atividades de apoio, que permite a absorção
controlada das mudanças, inerentes ao desenvolvimento de software, mantendo a estabilidade na evolução
do projeto. Podemos dividir o Gerenciamento de Configuração de Software em três níveis:

Tomando por base a figura acima, assinale a alternativa que define, corretamente, cada nível do Gerenciamento
de Configuração de Software.
(A) Controle de versão: identifica em qual versão está o software e quais as características de cada versão.
Controle de mudanças: tem como característica testar as mudanças, assim que são realizadas. Integração
contínua: identifica quais foram as mudanças, efetuadas na versão.
(B) Controle de versão: identifica quais foram as mudanças, efetuadas na versão. Controle de mudanças: tem
como característica testar as mudanças, assim que são realizadas. Integração contínua: identifica em qual
versão está o software e quais as características de cada versão.
(C) Controle de versão: identifica os usuários dos sistemas. Controle de mudanças: tem como característica
testar as mudanças, assim que são realizadas. Integração contínua: identifica em qual versão está o software
e quais as características de cada versão.
(D) Controle de versão: identifica os usuários dos sistemas. Controle de mudanças: tem como característica
testar as mudanças, assim que são realizadas. Integração contínua: identifica as aplicações do software.
(E) Controle de versão: identifica em qual versão está o software e quais as características de cada versão.
Controle de mudanças: identifica quais foram as mudanças, efetuadas na versão. Integração contínua: tem
como características testar as mudanças, assim que são realizadas.

1.13) São axiomas em risco:


(A) É impossível testar um programa completamente. Teste de software é um exercício baseado em certezas.
Quanto menos bugs forem encontrados, mais bugs existirão.
(B) É impossível testar um programa completamente. Teste de software é um exercício baseado em risco.
Quanto mais bugs forem encontrados, mais bugs existirão.
(C) É impossível testar um programa que tenha riscos. Teste de software deve ser feito pelos seus
desenvolvedores. Todos os bugs encontrados serão consertados.
(D) É possível testar um programa completamente. Teste de software não pode ter riscos. Quanto mais breaks
forem encontrados, mais breaks existirão.
(E) É impossível testar um programa parcialmente. Teste de software aplica-se unicamente a ambientes sem
risco. Quanto mais bugs forem encontrados, menos bugs existirão.

1.14) Sobre a documentação de teste de software, podem-se destacar os seguintes documentos:


I. Plano de Teste: descreve o escopo dos testes a serem realizados, a abordagem e os recursos que serão
utilizados como ferramenta de apoio. O documento contempla a elaboração de um cronograma contendo todas
as atividades e responsáveis por sua execução.
II. Especificação do Projeto ou Desenho do Teste: especifica os detalhes da abordagem do teste e identifica as
características a serem testadas, incluindo os aspectos funcionais e não funcionais relacionados com o software
e classes de equivalência e valores-limite.
III. Especificação de Casos de Teste: define o conjunto de casos de teste a serem realizados, itens a serem
testados, especificação das entradas e saídas esperadas, premissas e restrições do ambiente onde o teste
deverá ocorrer.
IV. Especificação de Procedimento de Teste: especifica os passos para execução do caso de teste, basicamente
os passos utilizados para analisar os recursos do software e avaliação de suas características.

É correto o que se afirma em:


(A) I, III e IV, somente.
Universidade Federal de Sergipe – Campus São Cristóvão
Avaliação 2 – Engenharia de Software para SI II
Nome: _______________________________________________
Curso: Sistemas de Informação Data: 21/02/2018
Professora Dra. Adicinéia A. de Oliveira
(B) III, somente.
(C) II e IV, somente.
(D) II, III e IV, somente.
(E) I, II, III e IV.

1.15) No que diz respeito aos sistemas de software, teste é um conjunto de atividades que podem ser
planejadas antecipadamente e conduzidas sistematicamente. Um tipo I de teste se refere ao conjunto de
atividades que garante que o software implementa corretamente uma função específica, associado à
construção do produto de forma correta ou não, enquanto um tipo II se refere a um conjunto de atividades
diferente que garante que o software construído corresponde aos requisitos do cliente, associado à
construção do produto certo. Esses testes do tipo I e II são denominados, respectivamente:
(A) depuração e homologação.
(B) homologação e aceitação.
(C) verificação e validação.
(D) aceitação e verificação.
(E) validação e depuração.

1.16) Analise os seguintes critérios de qualidade:


I. Os usuários reconhecem que o software é apropriado para suas necessidades.
II. Os usuários facilmente entendem os conceitos chave do software e, assim, tornam-se competentes no seu
uso.
III. O software é fácil de usar e controlar e foi projetado para evitar que o usuário cometa erros.
IV. A interface do usuário proporciona prazer e uma interação satisfatória.

Os itens I, II, III e IV estão associados à:


(A) acessibilidade.
(B) conformidade.
(C) navegabilidade.
(D) compatibilidade.
(E) usabilidade.

II – Questões Discursivas e Práticas


2.1) (Vale 1,0) Uma uma série de fatores devem ser levados em consideração na elaboração de um projeto de
interface de usuário. Quais são os fatores humanos a serem considerados em um bom projeto. Explique e
exemplifique cada fator identificado.
R.: Será avaliada cada resposta individualmente quanto aos exemplos.
Universidade Federal de Sergipe – Campus São Cristóvão
Avaliação 2 – Engenharia de Software para SI II
Nome: _______________________________________________
Curso: Sistemas de Informação Data: 21/02/2018
Professora Dra. Adicinéia A. de Oliveira

2.2) (Vale 1,0) Explique e exemplifique por que um sistema de software usado em um ambiente real deve mudar
ou tornar-se progressivamente menos útil.
R.: Será avaliada cada resposta individualmente.

2.3) (Vale 1,5) Considere o seguinte exemplo de código fonte (não preste atenção nos detalhes, pois é apenas
um "loren ipsum"):

public class TesteCiclo {


public double calcular (int parametro1, int parametro2) {
double retorno = 0.0d;
if (parametro1 <= 7) {
retorno = parametro1 * 1.5;
if (parametro2 > parametro1) {
retorno = retorno * 0.75;
if (parametro2 == 1) {
retorno = -1.0d;
}
}
}
return retorno;
}
}

2.3.1) Desenhe o grafo de fluxo.


2.3.2) Quantas regiões existem?
2.3.3) Qual a complexidade ciclomática (apresente o resultado segundo as 3 formas)?
2.3.4) Qual o conjunto base?
2.3.5) Defina os casos de testes.

Resposta:

Considerando o código, podemos transformar este trecho de código em um grafo, de maneira simples:
Universidade Federal de Sergipe – Campus São Cristóvão
Avaliação 2 – Engenharia de Software para SI II
Nome: _______________________________________________
Curso: Sistemas de Informação Data: 21/02/2018
Professora Dra. Adicinéia A. de Oliveira

A entrada no método "calcular()" conta como um caminho básico. Depois, para cada nó que cria um desvio de
fluxo, somamos mais 1 (nós em preto).

Logo, pela fórmula simplificada de McCabe (*) temos:

V(G) = P + 1

Onde: P = nós predicados.

(*) http://www.mccabe.com/pdf/mccabe-nist235r.pdf

Neste caso, temos o valor 4, que é o limite máximo para criação de casos de teste, necessários para cobrir todo
o código.

2.4) (Vale 2,0) A tabela de decisão é uma ferramenta importante quando um conjunto complexo de condições e
ações é encontrado em um componente de software. Elabore uma Tabela de Decisão (completa) considerando
o trecho seguinte, extraído de uma narrativa de processamento para um processo de negócio a saber:

Uma loja de eletroeletrônicos oferece descontos aos seus clientes com base nos seus pontos do cartão-fidelidade
e no valor da compra realizada. Se o cliente não possui cartão fidelidade e gasta até R$ 1.000,00, recebe 5% de
desconto. Nas compras entre R$ 1.000,00 e R$ 10.000 o desconto é de 10% e nas compras acima de R$ 10.000,00
o desconto é de 15%. Se o cliente possui cartão fidelidade, nas compras até R$1.000,00, recebe 10% de desconto.
Entre R$1.000, 00 e R$ 10.000,00, recebe 10% mais um valor x calculado com base em sua pontuação. Nas
compras acima de R$ 10.000,00, recebe 15%, mais o dobro de x.

Condição R1 R2 R3 R4 R5 R6
Cartão fidelidade (S/N) S S S N N N
Valor da compra (A >= A B C A B C
1000; B >1000 e <10000;
C > 10000)
Ação
Conceder desconto 5% X
Conceder desconto 10% X X X
Conceder desconto 15% X X
Desconto valor (x) X
Desconto valor (x*2) X

Você também pode gostar