Pular para o conteúdo

Computação 3ª série Prova

Desenvolvimento de software: requisitos, testes e qualidade

Prova com 11 questões sobre desenvolvimento de software: requisitos funcionais e não funcionais, testes de fronteira, erros de um, complexidade ciclomática, métricas de qualidade, reúso e controle de versão.

  • 11 questões
  • cerca de 60 minutos

Computação, 3ª série: Desenvolvimento de software: requisitos, testes e qualidade

  1. Na especificação de um aplicativo de agendamento da biblioteca escolar, a equipe listou vários requisitos. Qual deles é um requisito não funcional, isto é, uma qualidade do sistema, e não uma função que ele executa?

    1. O bibliotecário deve poder registrar a devolução de um livro emprestado.
    2. O sistema deve enviar um aviso ao estudante um dia antes do fim do prazo.
    3. O estudante deve poder reservar um livro informando sua matrícula.
    4. O estudante deve poder consultar os livros disponíveis por título ou autor.
    5. As telas devem carregar em até 2 segundos em celulares com conexão 4G.
  2. O requisito diz: "compras de valor acima de R$ 100,00 recebem 10% de desconto". O programador escreveu:

    função desconto(valor):
        se valor ≥ 100 então
            devolva valor · 0,9
        senão
            devolva valor

    Entre os testes a seguir, o único que revela o erro dessa função é aquele em que o valor da compra é

    1. R$ 150,00
    2. R$ 99,00
    3. R$ 100,00
    4. R$ 50,00
    5. R$ 200,00
  3. Um sistema de inscrição em um campeonato aceita apenas participantes com idade de 16 a 18 anos, inclusive. Para testar a validação da idade com poucos casos, mas com boa chance de encontrar erros, o conjunto de idades mais adequado é

    1. 0, 50 e 100
    2. 17, 17, 17 e 17
    3. 16, 17 e 18
    4. 10, 20 e 30
    5. 15, 16, 18 e 19
  4. Uma métrica usada para avaliar a complexidade de um código é a complexidade ciclomática, que, para funções simples, é igual ao número de decisões (como cada "se") mais 1. Ela indica o número mínimo de caminhos independentes que os testes devem cobrir. Considere a função:

    função frete(peso, expresso):
        custo ← 10
        se peso > 5 então
            custo ← custo + 8
        se expresso então
            custo ← custo + 15
        devolva custo

    A complexidade ciclomática dessa função e o valor de frete(7, verdadeiro) são

    1. 3 e 25
    2. 2 e 33
    3. 3 e 33
    4. 2 e 10
    5. 4 e 18
  5. Uma equipe precisa gerar arquivos PDF em seu aplicativo e encontrou uma biblioteca de código aberto, bem testada e mantida por uma comunidade ativa, que faz exatamente isso. A decisão mais adequada é

    1. copiar o código da biblioteca e apresentá-lo como se tivesse sido escrito pela própria equipe.
    2. desistir da função de gerar PDF, pois não é permitido usar código escrito por outras pessoas.
    3. usar a biblioteca sem ler a licença, pois todo código disponível na internet pode ser usado livremente.
    4. reutilizar a biblioteca, conferindo antes se a licença permite o uso e citando-a como exigido.
    5. escrever do zero uma nova biblioteca de PDF, pois reutilizar código é sempre sinal de pouca competência.
  6. Um grupo vai desenvolver um aplicativo de caronas solidárias para estudantes de uma escola. Usando refinamentos sucessivos, a primeira decomposição do problema, em nível alto de abstração, é mais adequadamente

    1. escolher as cores dos botões; definir o tamanho da fonte; escrever o código da tela inicial.
    2. comprar um servidor; instalar o banco de dados; testar a velocidade da internet da escola.
    3. cadastrar usuários; oferecer caronas; buscar e pedir caronas; avaliar as viagens.
    4. escrever o código de verificação de senha; depois pensar no que o aplicativo deve fazer.
    5. declarar as variáveis; escrever os laços de repetição; compilar o programa; publicar na loja.
  7. A função a seguir deveria calcular a soma 1 + 2 + ... + n:

    função soma(n):
        s ← 0
        para i de 1 até n − 1 faça
            s ← s + i
        fim
        devolva s

    O valor devolvido por soma(5) e a correção necessária são

    1. 15; o laço deveria ir de 1 até n − 1
    2. 10; o laço deveria começar em 0
    3. 14; a variável s deveria começar em −1
    4. 10; o laço deveria ir de 1 até n
    5. 15; a função está correta
  8. Duas versões de um aplicativo de banco foram avaliadas em testes com usuários:

    MétricaVersão 1Versão 2
    Tempo médio de resposta1,2 s0,8 s
    Falhas a cada 1 000 sessões215
    Tamanho do aplicativo30 MB25 MB

    Considerando que, para um aplicativo de banco, a confiabilidade é o requisito mais importante, a escolha e a justificativa adequadas são

    1. a versão 2, pois é mais rápida, e a velocidade é sempre a métrica mais importante.
    2. a versão 1, pois falha muito menos, ainda que seja um pouco mais lenta e maior.
    3. qualquer uma, pois métricas de software não permitem comparar versões diferentes.
    4. a versão 2, pois é menor e, por isso, tem automaticamente menos erros de programação.
    5. a versão 1, pois aplicativos maiores são sempre mais seguros que os menores.
  9. Equipes de desenvolvimento usam sistemas de controle de versão, como o Git. Um estudante quer testar uma nova funcionalidade no projeto do grupo sem correr o risco de estragar a versão que já funciona. O recurso mais adequado é

    1. copiar a pasta do projeto para um pendrive e desenvolver lá, sem avisar o restante do grupo.
    2. enviar o código novo diretamente para a versão principal, sem testes, e corrigir depois.
    3. apagar a versão principal e começar a nova funcionalidade a partir de um projeto vazio.
    4. pedir que todos os colegas parem de trabalhar até que a funcionalidade nova fique pronta.
    5. criar um ramo (branch) para a funcionalidade e, após os testes, incorporá-lo à versão principal.
  10. Se um programa passou em todos os testes que a equipe escreveu, pode-se garantir que ele não tem nenhum erro.

    (   ) Verdadeiro   (   ) Falso

  11. A escola quer um sistema simples para controlar o empréstimo de livros da biblioteca.

    a) Escreva três requisitos funcionais e um requisito não funcional para esse sistema.

    b) Para o requisito "um estudante pode ter no máximo 3 livros emprestados ao mesmo tempo", descreva três casos de teste, indicando a situação inicial, a ação e o resultado esperado.

    c) Explique por que é importante escrever os testes antes ou durante a programação, e não só no final.

ProvaPiloto · provapiloto.com.br

Já usou com a sua turma?

Conte com um toque. Isso ajuda outros professores a escolher.

Usei em sala Entre na sua conta para contar.

Para continuar o assunto