MC626 - Prova

Planilha de notas (definitiva).

Enunciado (após correções).

Gabarito

Questão 1

  1. grafo de fluxo de controle
  2. Todas as instruções: a=2, a=3, a=102, a=103.
  3. Todos os ramos: a=2, a=3, a=102, a=103.

Questão 2

Na seção de "CAUSA", as células vazias contém "F".

CAUSA








Cliente A V V V





Cliente B


V V V


Cliente C





V V V
Qtde 0-9 V

V

V

Qtde 10-99
V

V

V
Qtde 100-1000

V

V

V
EFEITO








Desc. 0% X




X

Desc. 5%
X
X




Desc. 10%

X
X



Desc. 20%




X
X
Desc. 30%







X

Questão 3

grafo de fluxo de dados

Def(01-03) = {comeco, fim, achou}
Def(05) = {meio}
Def(07) = {comeco}
Def(09-10) = {achou, onde}
Def(11) = {fim}
c-uso(01-03) = {tamanho_tabela}
c-uso(05) = {comeco, fim}
c-uso(07) = {meio}
c-uso(09-10) = {meio}
c-uso(11) = {meio}
p-uso(04a,04b) = {comeco, fim}
p-uso(04a,fim) = {comeco, fim}
p-uso(04b,05) = {achou}
p-uso(04b,fim) = {achou}
p-uso(06,07) = {chave, tabela, meio}
p-uso(06,08) = {chave, tabela, meio }
p-uso(08,09-10) = {chave, tabela, meio}
p-uso(08,11) = {chave, tabela, meio }

Questão 4

Na figura abaixo, T1, T2 e T3 são a primeira tela, segunda tela e terceira tela, respectivamente.

grafo de fluxo de dados

Questão 5

A informação sobre quem vai realizar os testes e quais métricas serão colhidas está no Plano de Testes, pois este documento visa responder às seguintes questões:

O Critério de Teste determina um conjunto finito de elementos do modelo de teste que devem ser exercitados durante os testes.

Questão 6

  1. Qualidade de software pode ser entendida como o conjunto de características que devem ser alcançadas em um determinado grau para que o produto atenda às necessidades de seus usuários.
  2. Fatores de qualidade:
    correção: o quanto um programa satisfaz a sua especificação e cumpre os objetivos visados pelo cliente;
    confiabilidade: o quanto um programa executa a função pretendida com a precisão exigida;
    eficiência: a quantidade de recursos computacionais e de código exigida para que um programa execute sua função;
    integridade: o quanto o acesso ao sw ou aos dados por pessoas não autorizadas pode ser controlado;
    usabilidade: o quanto de esforço é necessário para aprender, preparar a entrada e interpretar a saída de um programa;
    manutenibilidade: o quanto de esforço é necessário para localizar e eliminar erros em um programa;
    flexibilidade: o quanto de esforço é necessário para modificar um programa;
    testabilidade: o quanto de esforço é necessário para testar um programa a fim de garantir que ele execute a função pretendida;
    portabilidade: o quanto de esforço é necessário para transferir um programa de uma plataforma de hw e/ou sw para outra;
    reusabilidade: o quanto um programa (ou partes dele) pode ser reutilizado em outros programas;
    interoperabilidade: o quanto de esforço é necessário para se acoplar um programa a um outro.

Questão 7

  1. Soma dos pares = 16
    Menor nr. impar = 5
  2. Sim, pois a resposta seria diferente, já que o primeiro elemento (2) seria somado duas vezes aos números pares:
    Soma dos pares = 18
    Menor nr. impar = 5

  3. int vet[] = { 3, 5, 1, 8, 4, 9, 3, 7, 6, 8 };

  4. int vet[] = { 0, 5, 3, 8, 4, 9, 3, 7, 6, 8 };

Questão 8

1 - erro (2) comportamento incorreto do software
2 - defeito(3) linha de código incorreta
3 - falha (1) valor calculado de forma incorreta

Questão 9

1 - Requisitos (4) Testes de Unidades
2 - Análise (3) Testes de Integração
3 - Arquitetura e Projeto (2) Testes de Sistemas
4 - Codificação (1) Testes de Aceitação

Questão 10

grafo de fluxo de chamadas

Questão 11

Complexidade ciclomática diz respeito a um limite máximo para o número de testes necessários para cobrir todas as instruções de um programa. Porém testes caixa-preta (ou funcionais) focam nas entradas e saídas especificadas nos requisitos funcionais e não se preocupam com a estrutura interna (intruções) do programa, pois não têm acesso ao código. O correto seria:

"O aumento na medida de complexidade ciclomática de um programa introduz mudanças significativas no refinamento de uma abordagem do tipo caixa-branca" .

Questão 12

Inspeções e testes são atividades complementares, e não mutuamente exclusivas.

Inspeções servem para verificar a conformidade com as especificações e se as convenções e padrões de desenvolvimento estão sendo seguidos. Inspeções prescindem da execução do sistema, portanto podem ser aplicadas antes da implementação e ser aplicadas a qualquer representação do sistema: requisitos, projeto, modelo e código, sendo técnicas efetivas para o descobrimento de erros no programa, além de promoverem troca de conhecimento entre os participantes. Por outro lado, inspeções aumentam o custo do processo de desenvolvimento, pois as equipes devem ser bem informadas e ter acesso a especificações precisas, padrões organizacionais devem ser bem definidos e a gerência pode utilizar os achados de inspeção para avaliar indivíduos.

Os testes servem para verificar conformidade com requisitos do usuário e são capazes de verificar requisitos de qualidade (não funcionais). Por outro lado, os testes podem precisar de várias execuções para descobrir certas falhas, pois uma falha pode mascarar outras.

Questão 13

Verificação refere-se ao conjunto de atividades que garantem que o software implementa corretamente as funções especificadas, é o processo de se avaliar um software a cada fase para determinar se o produto dessa fase satisfaz ao que foi requerido no início da fase visando responder a seguinte pergunta "estamos desenvolvendo o produto corretamente?". Entre suas atividades pode-se citar: inspeções (verificacação estática) e testes (verificação dinâmica).

Validação é o processo de se avaliar um software, durante ou após o desenvolvimento, para determinar se o produto satisfaz aos requisitos do cliente, visando responder a seguinte pergunta: "estamos desenvolvendo o produto correto?". Entre suas atividades pode-se citar: homologação, testes de aceitação (beta) e revisões.

Questão 14

Inspeção: estática
Execução simbólica: dinâmica
Revisão técnica: estática

Critérios de correção

Questão 1

Grafo: 8 pontos; cobertura de nós: 8 pontos; cobertura de ramos: 8 pontos.

Quem deu condições (p.ex. "par e maior que 100") em vez de valores concretos (p.ex. 102) perdeu 2 pontos.

Quem não entendeu que cada if correspodia a dois nós, por causa da condição composta, perdeu 2 pontos.

Questão 2

Quem fez a tabela corretamente ganhou 1,11 ponto por cada coluna correta. Mas quem fez uma linha só para a saída perdeu 2 pontos. Quem não colocou a saída de 0% perdeu 2 pontos. Quem não colocou a parte de baixo da tabela perdeu 3 pontos.

Quem fez a tabela transposta, ou seja, linhas em lugar de colunas e vice-versa, perdeu pelo menos 1 ponto. Se não explicitou a saída, perdeu 3 pontos.

Quem fez um arranjo 3x3 ou outra forma tabular que não a correta, ficou com 3 pontos nesta questão.

Questão 3

Grafo: 5 pontos; def: 5 pontos; c-uso: 5 pontos; p-uso: 5 pontos.

Quem não entendeu que while correspodia a dois nós, por causa da condição composta, perdeu 2 pontos.

Falta de ramo voltando do end-while ao while: perdeu 2 pontos; if seguidos em vez de aninhados: perdeu 2 pontos.

Questão 4

Quem não modelou o número de vezes que se pode errar perdeu 3 pontos. Quem modelou isto usando variáveis perdeu 1 ponto.

Quem não rotulou arestas perdeu 1 ponto.

Quem omitiu nós os arestas perdeu no máximo 1 ponto por elemento omitido.

Questão 5

Quem: 2 pontos; Métricas: 2 pontos. Foi considerado correto dizer que as métricas podem ser definidas no documento de Critérios de Teste.

Questão 6

O conceito de qualidade de software valia 2 pontos. Os fatores valiam 2 pontos.

Quem acertou 5 fatores ganhou 2; quem acertou de 1 a 4 fatores ganhou 1 ponto; quem não acertou enhum fator ganhou 0.

Para acertar um fator era necessário dar-lhe o nome correto e a definição correta. Exemplos de nomes incorretos que NÃO foram aceitos: acertividade (isto acho que nem existe no dicionário), legibilidade (o correto é manutenibilidade ou flexibilidade), durabilidade, adaptabilidade (o correto é portabilidade).

Questão 7

Cada item valia 1,5 pontos.

Questão 8

Acertou tudo: 2 pontos; acertou alguns: 1 ponto; errou tudo: 0 pontos.

Questão 9

Acertou tudo: 2 pontos; acertou alguns: 1 ponto; errou tudo: 0 pontos.

Questão 10

Acertou tudo: 2 pontos; acertou algo: 1 ponto; errou tudo: 0 pontos.

Questão 11

Quem observou que complexidade ciclomática está relacionado ao código e que testes caixa-preta não utilizam código, acertou. Quem não fez esta observação, errou.

Questão 12

Acertou tudo: 2 pontos; acertou algo: 1 ponto; errou tudo: 0 pontos.

Questão 13

Vaidação: 1 ponto; verificação: 1 ponto.

Questão 14

Acertou: 1 ponto; errou:0 pontos.


MC626 Home

© 2014 João Meidanis