

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Maurício é o líder técnico do Time de Tecnologia da Informação (TTI) de uma organização que está iniciando o uso do estilo de Desenvolvimento Orientado a Testes (TDD).
De forma a nivelar o conhecimento e obedecendo ao estilo TDD, Maurício orientou que os(as):
testes comecem por uma operação complexa;
casos de teste menores dispensem a escrita de asserções;
testes de recursos complexos, como acesso a dados, sejam especificados como testes de integração;
coleções de objetos sejam implementadas sem coleções e, após testadas, sejam reescritas para funcionar com coleções;
os desenvolvedores registrem nos comentários da ferramenta de versionamento os testes que foram criados, já que a execução de um teste afeta a execução de outro.
O TDD, ou Test-Driven Development, é uma abordagem de desenvolvimento orientada a testes que
é concentrado na criação de um modelo de domínio que utiliza uma linguagem comum compartilhada entre todas as partes envolvidas no projeto.
coloca ênfase na qualidade do código e na confiabilidade do software, por meio da criação de testes unitários antes de escrever o código de produção.
enfatiza a qualidade da comunicação e a compreensão compartilhada das funcionalidades do software entre as partes interessadas, incluindo desenvolvedores, testadores e partes de negócios.
recomenda criação de especificações de comportamento, usando linguagem natural (Gherkin, por exemplo), a qual descreve o comportamento esperado do software em termos de cenários e casos de uso.
Test-Driven Development (TDD) é uma abordagem de desenvolvimento de software onde os testes são escritos antes do código que implementa a funcionalidade. No contexto da prática de Test-Driven Development (TDD), assinale a opção que descreve corretamente a sequência de etapas que um desenvolvedor deve seguir.
Escrever o código de produção, criar os testes automatizados e depois refatorar o código.
Criar os testes automatizados, escrever o código de produção para passar nos testes e depois refatorar o código.
Refatorar o código existente, escrever novos testes automatizados e depois implementar novas funcionalidades.
Escrever os casos de teste, refatorar o código existente e depois implementar o código de produção.
Implementar o código de produção, refatorar o código, e por último, criar os testes automatizados.
O Desenvolvimento Orientado por Testes (TDD - Test-Driven Development) é uma abordagem de desenvolvimento de software, cuja característica fundamental é:
Os testes automatizados não são usados para validar o comportamento do código.
Os testes automatizados são escritos antes da implementação do código funcional.
Os testes automatizados são opcionais e podem ser ignorados.
Os testes automatizados devem ser escritos após a implementação do código, mas antes de sua revisão.
Os testes automatizados são escritos após a implementação do código funcional.
Segundo o Test Driven Development, os testes unitários são
independentes de outros componentes do sistema, permitindo sua execução isolada.
integrados com o sistema de desenvolvimento, automatizando a execução dos testes a cada alteração no código.
projetados para serem reutilizáveis em diferentes contextos, reduzindo o tempo de escrita de testes.
focados na cobertura de código, garantindo que todas as linhas de código sejam testadas.
escritos em linguagem natural, facilitando a compreensão por stakeholders não técnicos.
Descoberta de Produto é um momento importante para o desenvolvimento de produtos. A Descoberta de Produto é
um processo focado na promoção e venda de produtos existentes para um novo mercado.
uma fase de desenvolvimento de produto onde se definem as características técnicas detalhadas.
uma técnica de marketing para identificar o público-alvo de um novo produto.
um processo iterativo de entendimento das necessidades dos usuários e validação de ideias de produto.
Em um cenário de desenvolvimento de software, no qual seja necessário o desenvolvimento dos casos de teste antes do desenvolvimento do próprio sistema e que o desenvolvimento seja guiado por esses casos de teste, a metodologia mais adequada a ser adotada é a (o)
TDD.
Pair Programming.
DbC.
Code Review.
Verificação Formal.
Metodologias de desenvolvimento de software definem paradigmas visando promover eficiência e qualidade do produto final. Entre estas, o desenvolvimento seguindo o modelo TDD (Test Driven Development) é realizado por meio de um ciclo composto por três etapas: red, green e refactoring.
Acerca dessas etapas, assinale a afirmativa correta.
Na fase red, os desenvolvedores escrevem testes de aceitação que devem falhar inicialmente.
Na fase green, os desenvolvedores escrevem o código mínimo necessário para fazer o código passar no teste.
Na fase refactoring, os desenvolvedores buscam otimizar o código de novas funcionalidades reprovadas no teste.
Na fase red, os desenvolvedores revisam o código para identificar oportunidades de melhoria.
Na fase green, os desenvolvedores documentam as mudanças realizadas na fase refactoring.
Dentre as metodologias ágeis, destaca-se uma prática que envolve a criação de testes automáticos antes mesmo da implementação do código, promovendo o desenvolvimento incremental e garantindo a qualidade desde as fases iniciais do projeto. Essa abordagem, amplamente reconhecida por sua eficácia na prevenção de bugs e na orientação do design do software, é conhecida como
Continuous Deployment
Pair Programming
Test-Driven Development (TDD)
Feature-Driven Development (FDD)
Test-Driven Development (TDD) é uma abordagem de desenvolvimento de software onde os testes são escritos antes do código que implementa a funcionalidade.
Assinale a afirmativa que melhor descreve o princípio fundamental do Test-Driven Development (TDD).
Escrever código de produção antes de criar testes para garantir que o código funcione conforme o esperado.
Desenvolver um conjunto de testes abrangentes apenas após a conclusão do desenvolvimento do código.
Criar e executar testes automatizados antes de escrever o código de produção para garantir que o código atenda aos requisitos.
Escrever código de produção e testes simultaneamente sem um processo definido para assegurar a funcionalidade.
Utilizar testes manuais para verificar o funcionamento do código antes de publicá-lo.
No BDD, os nomes dos métodos de testes não são códigos, mas frases com significado real, a exemplo das histórias de usuários.
Certo
Errado
Durante o desenvolvimento de software, a refatoração de código é uma prática importante para melhorar a estrutura e a qualidade sem alterar o comportamento externo. Com base nos conceitos de refatoração em direção à herança, assinale a seguir o principal benefício de aplicar esse processo em um código com classes duplicadas:
Reduzir a duplicação de código, reorganizando métodos em superclasses e subclasses, mantendo a lógica original e facilitando a manutenção.
Substituir o uso de condicionais complexos por múltiplos métodos, mesmo que isso aumente o número de classes. Como resultado da refatoração, teremos um código de mais difícil entendimento, porém mais fácil de manter.
Eliminar a necessidade de refatoração futura, consolidando toda a lógica da aplicação em um único ponto central.
Garantir que todas as funcionalidades sejam agrupadas em uma única classe principal, eliminando a necessidade de métodos abstratos.
Forçar o desenvolvedor a implementar um padrão de projeto específico desde o início para evitar futuras modificações na estrutura de classes.
Test Driven Development (TDD) é uma técnica de desenvolvimento de software que se relaciona com o conceito de verificação e validação e se baseia em um ciclo curto de repetições. As principais etapas do ciclo TDD são:
revisar código, escrever testes de aceitação e escrever testes unitários.
escrever testes unitários, escrever código de produção e revisar código.
escrever testes de aceitação, escrever código de produção e revisar código
escrever testes unitários, escrever testes de integração e escrever o código de produção.
Durante o desenvolvimento de um projeto de software em uma empresa de tecnologia, foram identificados diversos problemas relacionados à falta de testes adequados. Muitas funcionalidades do software estavam com bugs, o que gerou retrabalho e atrasos na entrega do projeto. Para resolver esses problemas, a equipe responsável decidiu adotar a prática de Desenvolvimento Orientado por Testes (Test-Driven Development—TDD).
Quais são as etapas do ciclo de TDD que essa equipe deve seguir para garantir a implementação correta das funcionalidades e a redução de bugs no projeto?
Escrever todos os testes, implementar todo o código, executar todos os testes e, depois, corrigir o código a partir do relatório de falhas.
Escrever todos os testes, garantir que todos falham, implementar todo o código, executar cada teste um a um e corrigir imediatamente o código até tudo funcionar.
Escrever um teste, executá-lo e vê-lo falhar, implementar o código necessário para passar em todos os testes já criados, refatorar o código e, em seguida, repetir todo o processo.
Escrever todos os testes de unidade, implementar todo o código, executar todos os testes de unidade, corrigir todos os erros encontrados nas unidades, escrever todos os testes de integração, executar todos os testes e corrigir o código a partir do relatório de falhas.
Refatorar o código existente com foco na qualidade, escrever todos os testes para o novo código, testar todo o código e corrigi-lo a partir do relatório de falhas.
A Equipe de Desenvolvimento de Soluções de Software (EDSS) recebeu a demanda de desenvolvimento de um software complexo e, por isso, pretende utilizar a abordagem Domain Driven Design (DDD).
Com foco no modelo de domínio principal, a EDSS assumirá que:
a lógica da aplicação deve considerar o modo de persistência de objetos nos repositórios;
as entidades serão definidas pelos atributos que as descrevem;
os analistas de negócio e de requisitos serão os responsáveis pela definição da Linguagem Ubíqua;
os objetos do domínio serão modelados com responsabilidades do próprio armazenamento, mas não da própria exibição;
uma operação deve ser adicionada ao modelo como uma interface autônoma, declarada como um serviço, quando não for uma reponsabilidade natural de uma Entidade ou de um Objeto de Valor.
Na XP Extreme Programming, a prática usada para escrever os testes para uma nova funcionalidade antes que a funcionalidade em si seja implementada é denominada
refactoring.
continuous integration.
test-first.
integração contínua.
small releases.
Uma gerente de testes de software propôs a seu time de desenvolvimento que começasse a aplicar a abordagem Test Driven Development (TDD).
É uma das características principais dessa abordagem iniciar o desenvolvimento de testes
antes de implementar alguma funcionalidade em si.
durante o período de homologação.
após as funcionalidades serem construídas.
quando a primeira leva de funcionalidades planejadas forem codificadas em algum sprint.
pelos testes de interface automatizado, seguidos pelos testes unitários.
Sobre técnicas de desenvolvimento de software, assinalar a alternativa que, respectivamente, descreve de forma CORRETA o significado das siglas TDD, BDD e FDD.
Transaction-driven development, Branch-driven Development e Framework-driven Development.
Test-driven development, Behavior-driven Development e Feature-driven Development.
Transaction-driven development, Behavior-driven Development e Function-driven Development.
Test-driven development, Branch-driven Development e Function-driven Development.
O unittest é um framework de testes unitários e foi inspirado no JUnit, tendo semelhança com as principais estruturas de testes de unidades existentes em outras linguagens. O método tearDown(), do unittest,
é chamado imediatamente, após o método de teste ter sido executado e o resultado registrado.
é chamado antes da execução dos testes de uma classe específica.
é chamado para preparar a definição de contexto de teste.
executa o teste sem coletar o resultado.
De acordo com Sommerville (SOMMERVILLE, lan. Engenharia de Software. 9 ed. São Paulo: Pearson Prentice Hall, 2011, p. 156), o desenvolvimento dirigido a testes (TDD, do inglês Test-Driven Development) é uma abordagem para o desenvolvimento de programas em que se intercalam testes e desenvolvimento de código. De acordo com o autor, além de um melhor entendimento do problema, outros benefícios do desenvolvimento dirigido a testes são os elencados abaixo, EXCETO:
Cobertura de código.
Teste de regressão.
Correção de softwares legados.
Depuração simplificada.
Documentação de sistema.