Baixe o app para aproveitar ainda mais
Prévia do material em texto
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á relacionadocom 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. UniversidadeFederal 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 >= 1000; B >1000 e <10000; C > 10000) A B C A B C 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
Compartilhar