Questões de Concurso
Comentadas sobre teste de software em engenharia de software
Foram encontradas 1.374 questões
• Escreva uma lista dos cenários de teste que você deseja cobrir;
• Transforme exatamente um item da lista em um teste real, concreto e executável;
• Altere o código para fazer o teste (e todos os testes anteriores) passar;
• Opcionalmente, refatore para melhorar o design da implementação; e
• Até que a lista esteja vazia, volte ao passo 2.
O fluxo de trabalho descrito corresponde à abordagem denominada
( ) Teste de unidade verifica o menor pedaço testável do sistema isoladamente, podendo ser realizado pelo próprio desenvolvedor antes de o sistema estar totalmente concluído.
( ) Teste de integração verifica a interação entre partes do sistema à medida que são combinadas, com foco nas interfaces entre elas — não a unidade isolada nem o sistema completo como uma caixa-preta única.
( ) Teste de sistema avalia a interação entre dois componentes específicos, sendo executado antes de as unidades serem testadas individualmente.
( ) Teste de aceitação é conduzido pela própria equipe de desenvolvimento, com o mesmo enfoque técnico usado no teste de unidade.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
I. Um critério C1 inclui um critério C2 quando, para qualquer programa, todo conjunto de casos de teste que satisfaz C1 também satisfaz C2 — ou seja, alcançar a cobertura exigida por C1 garante automaticamente a cobertura exigida por C2.
II. Quando um critério C1 inclui estritamente um critério C2, isso implica que C2 também inclui C1, caracterizando uma relação simétrica entre ambos.
III. Entre os critérios de fluxo de controle (cobertura de instruções ou todos-nós, cobertura de decisão ou todas-arestas, e cobertura de caminho ou todos-caminhos), a cobertura de caminho é a mais rigorosa, incluindo as demais; já a cobertura de instruções é a menos rigorosa, sendo incluída pelas demais.
IV. Se um critério C1 inclui um critério C2, e C2 inclui um critério C3, então C1 necessariamente inclui C3, pela transitividade da relação de inclusão.
Quais estão corretas?
Nesse contexto, analise as afirmativas.
I. O uso de branches permite o desenvolvimento simultâneo de novas funcionalidades sem comprometer a estabilidade da versão principal.
II. O processo de merge integra alterações realizadas em diferentes ramificações do projeto.
III. A utilização de controle de versões possibilita recuperar versões anteriores do código-fonte.
IV. O versionamento elimina a necessidade de testes antes da implantação em ambiente de produção.
Assinale a alternativa correta.
Essa reexecução sistemática corresponde ao teste
( ) Requisitos funcionais descrevem serviços que o sistema deve fornecer.
( ) Testes de aceitação são conduzidos exclusivamente pela equipe de desenvolvimento.
( ) Uma API RESTful exige o uso da mesma linguagem entre cliente e servidor.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
( ) Os testes unitários verificam componentes individuais do software de forma isolada, sendo frequentemente automatizados e desenvolvidos pelos próprios programadores durante a implementação do sistema.
( ) Os testes de integração têm como objetivo avaliar a interação entre módulos, componentes ou serviços, verificando se as interfaces e a troca de informações ocorrem conforme o especificado.
( ) Os testes de sistema avaliam o comportamento do sistema integrado como um todo, considerando requisitos funcionais e não funcionais definidos para o produto.
( ) Os testes de aceitação têm por finalidade verificar se o sistema atende às necessidades do usuário e aos critérios de aceitação estabelecidos, sendo obrigatoriamente executados apenas pela equipe de garantia da qualidade (QA), sem participação do cliente ou dos usuários finais.
( ) No Desenvolvimento Orientado a Testes (Test-Driven Development – TDD), a implementação da funcionalidade é realizada integralmente antes da elaboração dos testes automatizados, permitindo que estes validem o comportamento final do sistema.
Assinale a alternativa que indica a sequência correta, de cima para baixo.
A métrica quantitativa de usabilidade clássica que foi diretamente avaliada por meio do procedimento de medição descrito foi a
O processo de execução repetida de testes previamente criados sobre uma aplicação modificada para garantir que novos defeitos não tenham sido introduzidos em trechos de código inalterados possui a seguinte nomenclatura técnica consagrada:
Na engenharia de software, os testes são categorizados em diferentes níveis e escopos de execução.
O nível de teste adequado para validar o comportamento correto de métodos, funções ou classes isoladas, sem dependência de banco de dados ou redes externas, é o
Seguindo rigorosamente a ordem cronológica obrigatória das fases que compõem o ciclo padrão do TDD (conhecido na literatura técnica como o ciclo Red-Green-Refactor), o desenvolvedor deve, logo após ter escrito o código desse teste unitário inicial, executar os seguintes passos sequenciais:
Na fase de compilação, o analisador emitiu um relatório estancando a esteira ao detectar o uso de funções inseguras de manipulação de strings em C++ que poderiam abrir brechas para corrupção de memória. O analista DevOps alegou que a esteira de build deveria ignorar o alerta, pois uma varredura dinâmica executada na aplicação rodando em ambiente de homologação simulado não conseguiu explorar a falha através de requisições de rede externas.
Com base nos conceitos que diferenciam as abordagens de segurança SAST (Análise Estática) e DAST (Análise Dinâmica), a decisão correta do engenheiro de software deve consistir em manter a esteira travada porque a técnica SAST