Questões de Concurso
Sobre teste de software em engenharia de software
Foram encontradas 1.364 questões
I - Pode-se usar um framework de automação de teste (como JUnit) para escrever e executar testes de seu programa. Frameworks de testes unitários fornecem classes de teste genéricas que se podem estender para criar casos de teste específicos. Eles podem, então, executar todos os testes que foram implementados e informar, muitas vezes por meio de alguma interface gráfica, sobre o sucesso ou o fracasso dos testes. Um conjunto inteiro de testes frequentemente pode ser executado em poucos segundos e assim é possível executar todos os testes cada vez que é feita uma alteração no programa. II - Têm tipicamente três partes: (i) uma parte de configuração, em que se inicia o sistema com o caso de teste, ou seja, as entradas e saídas esperadas; (ii) uma parte de chamada, quando se chama o objeto ou método a ser testado; e (iii) uma parte de afirmação (ou asserção), em que se compara o resultado da chamada com o resultado esperado. Se a afirmação avaliada for verdadeira, o teste foi bem-sucedido; se for falsa, o teste falhou. III - Às vezes, o objeto que está sendo testado tem dependências em outros objetos que podem não ter sido escritos ou que atrasam o processo de teste quando são usados. Por exemplo, se o objeto chama um banco de dados, isso pode implicar um processo lento de instalação, antes que possa ser usado. Nesses casos, pode-se decidir usar um mock object. Mock objects são objetos com a mesma interface que os objetos externos usados para simular sua funcionalidade. Da mesma forma, mock objects podem ser usados para simular operações anormais ou eventos raros.
Quais estão corretas?
I - Todos-caminhos: requer que todos os caminhos possíveis do programa sejam executados. II - Todos-nós: requer que cada comando do programa seja executado pelo menos uma vez. III - Todas-arestas: requer que cada desvio de fluxo de controle do programa seja exercitado pelo menos uma vez.
Quais estão corretos?
Assinale a alternativa que preenche correta e respectivamente as lacunas do texto acima.
Assinale a alternativa que preenche corretamente a lacuna do texto acima.
Assinale a alternativa que preenche corretamente a lacuna do texto acima.
Assinale a alternativa que preenche corretamente a lacuna do texto acima.
I - Descreve a relação entre ações de garantia da qualidade e as ações associadas à comunicação, modelagem e atividades iniciais de construção. II - À medida que a equipe de software desce em direção ao lado esquerdo do "V", os requisitos básicos do problema são refinados em representações, progressivamente, mais detalhadas e técnicas do problema e de sua solução. Ao ser gerado o código, a equipe se desloca para cima, no lado direito do "V", realizando basicamente uma série de testes que validem cada um dos modelos criados, à medida que a equipe se desloca para baixo, no lado esquerdo do "V". III - Fornece uma forma para visualizar como a verificação e as ações de validação são aplicadas ao trabalho de engenharia anterior.
Quais estão corretas?
I - A definição dos critérios de aceitação deve idealmente ocorrer depois do contrato do sistema ser assinado, pois os critérios de aceitação não fazem parte do contrato, embora possam ser acordados entre o cliente e o desenvolvedor. II - O processo de teste deve demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos propostos. III - Um dos objetivos do processo de teste é descobrir situações em que o software se comporte de maneira incorreta, indesejável ou de forma diferente das especificações.
Quais estão corretas?
I - A correção, a completude e a consistência do modelo de requisitos não terão forte influência sobre a qualidade de todos os produtos seguintes do desenvolvimento de software, pois o que importa para o teste é o código fonte. II - Um dos princípios gerais das boas práticas de engenharia de requisitos é que os requisitos devem ser testáveis, isto é, o requisito deve ser escrito de modo que um teste possa ser projetado para ele. Um testador pode então verificar se o requisito foi satisfeito. III - Testes baseados em requisitos são uma abordagem sistemática para projeto de casos de teste em que cada requisito é considerado, derivando-se, assim, um conjunto de testes para ele.
Quais estão corretas?
C1: [A, B, C] C2: [1,2,3,4] C3: [*, !]
Qual a quantidade mínima de testes que devem ser gerados usando a técnica de teste pairwise (combinação de pares)?
(1) Teste de Unidade (2) Teste de Integração (3) Teste de Sistema (4) Teste de Aceitação
( ) Avalia o software com respeito ao projeto de seus subsistemas e detecta suposições errôneas sobre pré e pós-condições para execução de um componente, falhas nas interfaces de comunicação dos componentes do software. ( ) Avalia o software com respeito aos seus requisitos e detecta falhas nos requisitos e na interface com o usuário. ( ) Avalia o software com respeito a sua implementação detalhada e detecta falhas de codificação, algoritmos ou estruturas de dados incorretos ou mal implementados. ( ) Avalia o software com respeito ao seu projeto arquitetural e detecta falhas de especificação, desempenho, robustez e segurança.
A sequência correta de preenchimento dos parênteses, de cima para baixo, é
C1 = custo das atividades de verificação e validação. C1 é calculado através dos custos de pessoal, equipamentos, licenças de software e demais recursos gastos em projetos anteriores similares que tiveram atividades de verificação e validação.
C2 = custo dos defeitos não encontrados pelas atividades de verificação e validação executadas durante o desenvolvimento do software. C2 é estimado através dos custos de remoção dos defeitos para o sistema em produção e contabilizando o total de defeitos encontrados pelos usuários.
C3 = custo dos defeitos quando não há atividades de verificação e validação. C3 é estimado usando dados históricos de projetos anteriores similares que não tiveram atividades de verificação e validação. Contabilizam-se os custos de remoção dos defeitos para o sistema em produção e o total de defeitos encontrados pelos usuários.
A partir dessas definições, a aplicação das atividades de verificação e validação é economicamente justificável quando:
Considere o seguinte código.
/ / Se x é null, lança uma exceção do tipo NullPointerException
/ / Se não, retorna o índice do último elemento em x que é igual a y.
/ / Se esse elemento não existe, retorna -1.
public int findLast (int[] x, int y) {
for (int i=x.length-1; i > 0; i --)
{
if (x[i] == y)
return i;
}
return -1;
}
Para o código acima, foi definido o seguinte caso de teste:
x = [3,2,5,3], y = 3
Resposta esperada: 3
É correto afirmar que esse caso de teste