Questões de Concurso sobre Test-Driven Development (TDD)

 
 
Disciplina 1
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
159 questões encontradas
Questões por página
20
Mais recentes
 

No desenvolvimento guiado por testes (TDD – test-driven development), o fluxo padrão de engenharia determina que a criação e a execução dos testes automatizados ocorram logo após a estabilização do código de produção correspondente, servindo como critério de homologação da funcionalidade implementada.


C

Certo


E

Errado

Um Programador está aplicando a metodologia TDD (Test-Driven Development) durante a implementação de uma funcionalidade em um sistema de um consórcio público. Após criar um teste automatizado para uma função de soma, ele desenvolve apenas o código mínimo necessário para que o teste seja executado com sucesso, sem se preocupar inicialmente com otimizações ou refatorações. Nesse contexto, qual etapa do TDD atende à situação supracitada?


A

Red.


B

Refactor.


C

Green.


D

Deploy.


E

Review.

Em um sistema corporativo de processamento financeiro, a equipe pretende reduzir efeitos colaterais, facilitar testes automatizados de regras de negócio e aumentar a previsibilidade de funções responsáveis por cálculo de tributos e descontos. Segundo esse caso, assinale CORRETAMENTE a estratégia aderente a esse objetivo:


A

O desenvolvedor deve focar em abstrações funcionais com funções puras e composição, minimizando dependência de estado mutável compartilhado.


B

O desenvolvedor deve implementar herança profunda entre classes de cálculo, de modo a concentrar o comportamento em hierarquias especializadas.


C

O desenvolvedor deve priorizar rotinas orientadas a eventos, porque a reação a estímulos externos substitui a necessidade de controle explícito de estado.


D

O programador deve visar o uso predominante de variáveis globais, para permitir reaproveitamento direto dos valores intermediários entre módulos.


E

O desenvolvedor deve concertar seus esforços na centralização da lógica em procedimentos monolíticos, reduzindo a fragmentação do código e o custo de invocação.

Um teste unitário, por avaliar a menor unidade testável de software, não deve empregar objetos simulados ou dublês de teste para isolar dependências externas, sob pena de descaracterizar a sua natureza.


C

Certo


E

Errado

Uma equipe responsável pela manutenção de um sistema legado precisa realizar alterações em módulos altamente acoplados, nos quais pequenas modificações geram efeitos inesperados em componentes não relacionados. Considerando métodos e práticas da engenharia de software, qual abordagem contribui para reduzir esse comportamento e favorecer ciclos de manutenção mais previsíveis?


A

Implementar correções no módulo onde o defeito foi identificado, evitando revisões estruturais para não aumentar o tempo de manutenção.


B

Aumentar o número de testes manuais exploratórios, pois esses testes substituem a necessidade de revisões estruturais no código legado.


C

Aplicar refatorações estruturais orientadas à redução de dependências, promovendo modularidade e diminuindo o impacto colateral de alterações.


D

Adotar versionamento semântico para os módulos alterados, pois isso garante o isolamento das modificações e reduz o acoplamento no sistema.


E

Priorizar manutenções corretivas antes das adaptativas ou perfectivas, assegurando que o sistema permaneça estável ao longo do tempo.

Em um projeto Scrum, um Técnico de TI precisa lidar com as alterações de prioridades pedidas pela área demandante. Para isso, ele precisa refletir essas alterações de priorização contínua em um importante artefato, mantendo transparência sobre o que gera mais valor. Acerca do tema, esse artefato é CORRETAMENTE denominado como:


A

Increment.


B

Release Plan.


C

Sprint Backlog.


D

Product Backlog.

No desenvolvimento de software moderno, a aplicação de princípios de design e metodologias ágeis visa aumentar a qualidade e a manutenibilidade do código. Considerando os princípios SOLID e a prática de testes, assinale a alternativa CORRETA sobre a arquitetura de software.


A

Metodologias ágeis como o Scrum desencorajam a realização de testes unitários automatizados, priorizando apenas a entrega de funcionalidades visuais ao cliente ao final de cada sprint.


B

O Princípio da Responsabilidade Única (SRP) define que uma classe deve ter múltiplos motivos para mudar, permitindo que ela centralize diversas funcionalidades relacionadas para simplificar o acoplamento global.


C

O Princípio da Inversão de Dependência (DIP) sugere que módulos de alto nível devem depender diretamente de módulos de baixo nível para garantir que a implementação concreta dite a arquitetura do sistema.


D

O Princípio da Substituição de Liskov (LSP) estabelece que subclasses devem ser capazes de substituir suas classes base sem alterar a corretude do sistema, garantindo que as extensões não quebrem o comportamento esperado da abstração.


E

Testes de integração possuem como objetivo principal validar a lógica interna de uma única função ou método isolado, sem considerar a comunicação entre diferentes módulos ou bancos de dados.

Uma equipe de desenvolvimento de certo órgão público criou um sistema de gestão de demandas internas com o objetivo de agilizar o fluxo de solicitações entre setores. Ao longo do desenvolvimento do projeto, a equipe de análise de negócios realizou entrevistas com os usuários e utilizou diagramas UML para representar casos de uso e fluxos de atividades. O produto foi desenvolvido a partir da metodologia ágil Scrum (versão 2020), com entregas incrementais, e parte das rotinas automatizadas de aprovação de solicitações foi implementada por meio de ferramentas no-code, como o Power Automate. Além disso, foram adotadas práticas de garantia da qualidade do software durante os sprints e definidas as necessidades funcionais.


A partir do cenário apresentado na situação hipotética precedente, é correto afirmar que a equipe aplicou um processo que


A

segue o modelo lean isoladamente, sem preocupação com documentação ou qualidade de software.


B

integra práticas de engenharia de requisitos, modelagem de sistemas e desenvolvimento ágil com apoio de automação no-code.


C

se baseia em uma abordagem tradicional em cascata, com fases rígidas e sem integração de ferramentas automatizadas.


D

aplica apenas o XP (extreme programming), priorizando a codificação contínua e a ausência de modelagem formal.


E

adota práticas de prototipagem rápida, sem a necessidade de documentação de requisitos e das relações intercambiáveis.

Ano: 2026
Prova: CESPE/CEBRASPE - UNEAL - Analista Administrativo - Área: Analista de Sistemas - 2026

No desenvolvimento orientado a testes (TDD), o programador deve escrever todo o código da funcionalidade antes de criar os testes de unidade que vão validar esse código.


C

Certo


E

Errado

Ao desenvolver o algoritmo de cálculo de distância de segurança anticolisão (TCAS) entre duas aeronaves em uma nova biblioteca de software, o desenvolvedor decide aplicar de forma estrita o ciclo de passos determinado pela metodologia Test-Driven Development (TDD). Ele iniciou criando um caso de teste unitário exaustivo contendo as coordenadas geográficas tridimensionais e as velocidades vetoriais de dois alvos simulados em rota de interceptação iminente.


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:


A

escrever o código completo da lógica final; rodar o teste esperando que ele passe; apagar o teste unitário.


B

executar o teste unitário e certificar-se de que ele falhe; escrever o código mínimo para o teste passar; refatorar o código produzido.


C

realizar a análise estática SAST no código do teste; compilar a aplicação em modo de depuração; implantar em produção.


D

criar uma ramificação de branch no Git; submeter um Pull Request para o comitê técnico; rodar os testes dinâmicos DAST.


E

refatorar o código-fonte que ainda não existe; executar o teste esperando sucesso; documentar o bug no catálogo.

O Test-Driven Development (TDD) é uma prática de desenvolvimento ágil que prioriza a escrita de testes antes da implementação do código da funcionalidade. Esse ciclo é frequentemente descrito pelo acrônimo “Red-Green-Refactor", onde cada etapa desempenha um papel crucial no processo. Considerando isso, sobre a etapa “Red”, é CORRETO afirmar:


A

É o primeiro passo do ciclo TDD e se trata de escrever um teste que falhe.


B

É o primeiro passo do ciclo TDD e se trata de escrever um teste que não falhe.


C

Implica na execução de testes existentes para garantir que o sistema funcione.


D

É uma etapa opcional no processo de desenvolvimento.


E

Refere-se a um processo de revisão do código com a equipe.

Ano: 2025
Prova: FCC - SEFAZ PI - Auditor Fiscal da Fazenda Estadual - Área: Tecnologia da Informação . - 2025

Quando falamos sobre tipos de documentos de teste, estamos nos referindo a um conjunto de artefatos essenciais no processo de Garantia da Qualidade (QA), que ajudam a planejar, organizar, executar e registrar as atividades de teste de software. Um desses documentos é


A

a Matriz de Rastreabilidade, que liga os requisitos aos casos de teste correspondentes sendo, de certa forma, um "mapa que garante que nada do que foi pedido fique sem teste.


B

a Matriz de Riscos, que organiza os requisitos de negócio e os relaciona com os defeitos encontrados durante os testes, permitindo priorizar os casos de uso mais críticos para o usuário final.


C

o Plano de Teste, que descreve os passos detalhados de execução dos testes e define os critérios de aceitação de cada caso, sendo usado somente durante a execução manual das funcionalidades.


D

o Caso de Teste, que é utilizado para documentar os defeitos encontrados, associando cada erro a uma falha de requisito, servindo como base para priorização de correções.


E

o Relatório de Defeitos, que lista todos os testes planejados para um ciclo, vinculando-os aos objetivos do projeto e aos critérios de entrada e saída definidos no planejamento.

Durante o desenvolvimento de uma aplicação web front-end com React, uma equipe precisa garantir a qualidade e a estabilidade da interface antes da publicação em produção. Diversas ferramentas e práticas de testes e depuração são discutidas, incluindo a automação de testes, a análise de erros lógicos e a simulação das interações do usuário. Considerando as melhores abordagens para testes e depuração em aplicações front-end, assinale a alternativa correta.


A

Os testes unitários em aplicações front-end são usados principalmente para validar componentes visuais, não abrangendo funções JavaScript.


B

A depuração de aplicações front-end é feita por inspeção manual do código-fonte, sem a necessidade de uso de consoles ou breakpoints do navegador.


C

O uso de ferramentas como Jest e React Testing Library permite simular interações do usuário e validar comportamento de componentes durante o desenvolvimento.


D

Em ambientes front-end, os testes de integração são dispensáveis caso o desenvolvedor utilize somente componentes reutilizáveis.


E

A execução de testes automatizados no front-end tem contribuição limitada para a detecção de regressões, uma vez que dependem do feedback do usuário final.

Um Tribunal Regional do Trabalho implementou uma plataforma no-code para permitir que diferentes departamentos criem seus próprios aplicativos de gestão de tarefas e projetos. Após seis meses de uso, a administração avaliou que os resultados obtidos no uso de plataformas no-code está em consonância com o que é frequentemente associado com


A

o aumento da dependência da equipe de TI para manutenção de sistemas.


B

a redução na capacidade de personalização das soluções.


C

a maior complexidade na integração com sistemas existentes.


D

a necessidade contínua de treinamento intensivo para todos os funcionários.


E

a redução do tempo de desenvolvimento e entrega de soluções, permitindo uma resposta mais rápida às necessidades do negócio.

Existem métodos de UX que podem ser utilizados durante a etapa criativa de um projeto. Em geral, esses métodos ajudam na coleta de ideias de todos os membros do time e a garantir que eles estejam alinhados em relação ao que o produto está começando a se tornar.


O processo coletivo de geração de ideias, sem restrições, que respondem a um determinado brief criativo e que ajuda o time a visualizar uma grande variedade de soluções de design antes de efetivamente decidirem com qual opção eles seguirão em frente é conhecido por


A

sketching.


B

eyetracking.


C

storyboarding.


D

moodboarding.


E

brainstorming.

Durante um projeto de desenvolvimento de uma solução, um desenvolvedor cria o seguinte teste no seu sistema em Python:


def test_login_success():

result = login("usuario", "senha123")

assert result == "Login realizado com sucesso"


Diante do exposto, assinale a alternativa que apresenta a técnica de desenvolvimento empregada pelo desenvolvedor na solução, com a sua respectiva descrição.


A

BDD, em que a escrita dos testes automatizados antecede a codificação da funcionalidade.


B

BDD, em que a escrita dos testes automatizados sucede a codificação da funcionalidade.


C

TDD, em que a escrita dos testes automatizados antecede a codificação da funcionalidade.


D

TDD, em que a escrita dos testes automatizados sucede a codificação da funcionalidade.

Em um projeto de sistema judiciário trabalhista, a equipe de desenvolvimento adota práticas de testes automatizados para garantir a qualidade do software. Considerando os conceitos de cobertura de código, testes unitários, testes de integração, testes funcionais e as ferramentas JUnit e Mockito,


A

a cobertura de código garante que o sistema está livre de erros, desde que atinja 100% de linhas executadas durante os testes.


B

o uso conjunto de JUnit e Mockito permite criar testes unitários eficazes, simulando comportamentos de dependências externas para isolar a unidade testada.


C

testes de integração são substituídos por testes unitários, pois ambos têm como foco a menor parte testável do sistema.


D

testes funcionais são equivalentes a testes unitários, pois ambos validam métodos específicos dentro de classes do sistema.


E

Mockito é uma ferramenta voltada para testes funcionais que simula interações de usuários com a interface do sistema.

De acordo com a Portaria nº 750/2023, assinale a opção que apresenta a metodologia a ser adotada preferencialmente na contratação de serviços de desenvolvimento, manutenção e sustentação de software.


A

espiral


B

metodologia ágil


C

waterfall


D

lean


E

DevOps

Na metodologia de softwares tradicionais, primeiramente o código é desenvolvido, sendo ajustado de maneira retroativa para fins de validação. Em contrapartida, o Desenvolvimento Orientado a Testes (TDD) emprega uma metodologia que modifica esse paradigma, preconizando que os testes sejam escritos antes e que as adaptações sejam, só depois, aplicadas ao código, até que o projeto atenda aos requisitos do teste já definido. Nesse contexto, a figura mostra o fluxo de trabalho do TDD, com destaque para as etapas e sua natureza ágil, cíclica e iterativa.


Imagem associada para resolução da questão


Nesse esquema, a etapa I indica que o código não funciona, a II que tudo está funcionando, não necessariamente de maneira otimizada e, finalmente, a III em que o responsável otimiza o código, confiante de que o mesmo passou por vários testes, tendo sido alterado, aprimorado e chegado à versão final com mais segurança.


As etapas I, II e III são conhecidas, respectivamente, como:


A

Red, Refactor e Green.


B

Refactor, Red e Green.


C

Refactor, Green e Red.


D

Red, Green e Refactor.

O Time de Desenvolvimento de Software (TDevS) de uma organização está utilizando testes automatizados em seus projetos.


Ao utilizar testes automatizados, o TDevS:


A

está focando a eficácia da usabilidade com testes exploratórios de caixa-preta;


B

busca redução do retrabalho para execução dos testes não funcionais de interface com o usuário;


C

tem aplicado testes de integração para verificação antecipada dos caminhos e condições lógicas codificadas;


D

visa a aumentar a agilidade do time, já que os testes são codificados uma vez e não precisam ser alterados ao longo do ciclo de vida do projeto;


E

deseja garantir a estabilidade das mudanças por meio da incorporação dos testes de integração no processo de integração contínua.

   
Gerar simulado