SóProvas


ID
1740481
Banca
FCC
Órgão
TRE-AP
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

O TDD − Test Driven Development (Desenvolvimento orientado a teste)

Alternativas
Comentários
  • A) UP não é metodologia ágil. UP é a base do RUP.

    B) Os testes são feitos antes da implementação.

    C) Escreve o teste -> faz a implementação da funcionalidade (no primeiro momento "quebrará") -> refatora.

    D) Creio que não irá reduzir o tempo de desenvolvimento. Pelo contrário, TDD pode até aumentar, pois antes mesmo de ser criada a funcionalidade, o desenvolvolvedor precisa idealizar os casos de testes, garantindo que a funcionalidade esteja de acordo.

    E) Correto! O Teste antes da codificação, ou test-first, segundo Sommerville, “a escrita de testes primeiro define implicitamente tanto uma interface como uma especificação do comportamento para a funcionalidade que está sendo desenvolvida”.

     

    Note que ao criar o teste antes de implementar a unidade, são reduzidos problemas como mal entendimento de requisitos ou interfaces, pois como criar um teste se eu não sei o que devo testar?

     

    Neste caso o desenvolvedor, para implementar os testes iniciais, deve compreender com detalhes a especificação do sistema e as regras de negócio, só assim, será possível escrever testes para o sistema. Imagine o caso de querer testar um pneu criado para o carro, se não entendi que o pneu é redondo, por exemplo, criarei um teste para um pneu quadrado, não podendo ser realizado o teste. Desta forma, é de extrema importância, para o desenvolvedor, o entendimento dos requisitos do cliente. Além disso, não adianta criar testes que não validem o código como um todo para reduzir o tempo, é necessário criar testes para o conjunto completo de unidades, só assim o TDD vai funcionar como deve, devendo fornecer uma cobertura completa aos testes.

     

    Além disso, os testes devem seguir o modelo F.I.R.S.T.:

     

    - F (Fast) - Rápidos: devem ser rápidos, pois testam apenas uma unidade;

    - I (Isolated) - Testes unitários são isolados, testando individualmente as unidades e não sua integração;

    - R (Repeateble) - Repetição nos testes, com resultados de comportamento constante;

    - S (Self-verifying) - A auto verificação deve verificar se passou ou se deu como falha o teste;

    - T (Timely) - O teste deve ser oportuno, sendo um teste por unidade.

     

    Fonte: http://www.devmedia.com.br/tdd-fundamentos-do-desenvolvimento-orientado-a-testes/28151

     

    Bons estudos!

  • e-

    TDD - Test-Driven Development - primeiro os testes e depois código. Usado junto com extreme programming. Usa os parâmetros Red, Green e Refactor:


    1. Escrever teste, mesmo sem código real;
    2. Executar os testes e acompanhar a falha (Red);
    3. Escrever a funcionalidade do sistema a testar;
    4. Testar novamente, agora para passar (Green);
    5. Refatorar a funcionalidade e escrever por completo (Refactor);
    6. Próxima estória ou caso de uso.