← Questões de Engenharia de Software

Engenharia de Software · CONSULPLAN · 2022

Questão comentada de Engenharia de Software

A engenharia de software é uma área da computação voltada à especificação, desenvolvimento, manutenção e criação de softwares, com a aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, objetivando a organização, a produtividade e a qualidade. Um importante conceito da engenharia de softwares é o desenvolvimento dirigido a testes (TDD), que preconiza uma abordagem para o desenvolvimento de programas em que se intercalam testes e desenvolvimento de código. Sobre o conceito evidenciado, analise as afirmativas a seguir. I. Como o código é desenvolvido em pequenos incrementos, o programador não precisa executar todos os testes cada vez que adicionar funcionalidade ou refatorar o programa. II. O TDD ajuda os programadores na análise de ideias de um segmento de código a ser elaborado; porém, não é capaz de reduzir os custos dos testes de regressão. III. Melhor entendimento do problema, cobertura de código, teste de regressão, depuração simplificada e documentação de sistema são considerados benefícios do TDD. Está correto o que se afirma em

Gabarito: D

O TDD, ou desenvolvimento dirigido a testes, funciona no ciclo bem conhecido: primeiro voce escreve um teste que falha, depois escreve o codigo minimo para passar e, por fim, refatora com seguranca. A ideia nao e testar “de vez em quando”, mas testar o tempo todo para guiar o design do codigo. Isso ajuda a encontrar erros cedo e deixa o desenvolvimento mais previsivel. Na afirmativa I, a pegadinha esta em achar que, por o codigo ser incremental, nao precisa rodar todos os testes a cada mudanca. Na pratica, e justamente o contrario: em TDD, voce executa os testes com frequencia para verificar se a nova funcionalidade nao quebrou o que ja funcionava. A nocao de regressao e central aqui. A afirmativa II tambem esta errada porque o TDD tende a reduzir o custo de testes de regressao, ja que a suite automatizada pega falhas rapidamente. Ele tambem ajuda o programador a pensar melhor na regra de negocio e na estrutura do codigo antes de codar, o que melhora a qualidade geral do software. A afirmativa III traz beneficios classicos do TDD: melhor entendimento do problema, maior cobertura de codigo, facil teste de regressao, depuracao mais simples e ate uma forma de documentacao viva do sistema. Por isso, somente essa afirmativa esta correta, e o gabarito D faz sentido. Em termos doutrinarios, isso bate com o ciclo red-green-refactor, bastante associado ao XP e ao TDD.

Continue treinando

Questões relacionadas