SóProvas


ID
979612
Banca
IADES
Órgão
EBSERH
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

Assinale a alternativa que não corresponde a uma das fases do processo de desenvolvimento,dirigido a testes(TDD).


Alternativas
Comentários
  • Fases do TDD:
    1. Adicione um teste
    Em Test Driven Development, cada nova funcionalidade inicia com a criação de um teste. Este teste precisa inevitavelmente falhar porque ele é escrito antes da funcionalidade a ser implementada (se ele não falha, então a funcionalidade ou melhoria 'proposta' é óbvia). Para escrever um teste, o desenvolvedor precisa claramente entender as especificações e requisitos da funcionalidade. O desenvolvedor pode fazer isso através de casos de uso ou user stories que cubram os requisitos e exceções condicionais. Esta é a diferenciação entre desenvolvimento dirigido a testes entre escrever testes de unidade 'depois' do código desenvolvido. Ele torna o desenvolvedor focado nos requisitos 'antes' do código, que é uma sutil mas importante diferença.

    2. Execute todos os testes e veja se algum deles falha
    Esse passo valida se todos os testes estão funcionando corretamente e se o novo teste não traz nenhum equívoco, sem requerer nenhum código novo. Pode-se considerar que este passo então testa o próprio teste: ele regula a possibilidade de novo teste passar.
    O novo teste deve então falhar pela razão esperada: a funcionalidade não foi desenvolvida. Isto aumenta a confiança (por outro lado não exatamente a garante) que se está testando a coisa certa, e que o teste somente irá passar nos casos intencionados.

    3. Escrever código
    O próximo passo é escrever código que irá ocasionar ao teste passar. O novo código escrito até esse ponto poderá não ser perfeito e pode, por exemplo, passar no teste de uma forma não elegante. Isso é aceitável porque posteriormente ele será melhorado.
    O importante é que o código escrito deve ser construído somente para passar no teste; nenhuma funcionalidade (muito menos não testada) deve ser predita ou permitida em qualquer ponto.

     
  • continunando...

    4. Execute os testes automatizados e veja-os executarem com sucesso
    Se todos os testes passam agora, o programador pode ficar confiante de que o código possui todos os requisitos testados. Este é um bom ponto que inicia o passo final do ciclo TDD.

    5. Refatorar código
    Nesse ponto o código pode ser limpo como necessário. Ao re-executar os testes, o desenvolvedor pode confiar que a refatoração não é um processo danoso a qualquer funcionalidade existente. Um conceito relevante nesse momento é o de remoção de duplicação de código, considerado um importante aspecto ao design de um software. Nesse caso, entretanto, isso aplica remover qualquer duplicação entre código de teste e código de produção — por exemplo magic numbers or strings que nós repetimos nos testes e no código de produção, de forma que faça o teste passar no passo 3.

    6. Repita tudo
    Iniciando com outro teste, o ciclo é então repetido, empurrando a funcionalidade a frente. O tamanho dos passos deve ser pequeno - tão quanto de 1 a 10 edições de texto entre cada execução de testes. Se novo código não satisfaz rapidamente um novo teste, ou outros testes falham inesperadamente, o programador deve desfazer ou reverter as alterações ao invés do uso de excessiva depuração. A Integração contínua ajuda a prover pontos reversíveis. É importante lembrar que ao usar bibliotecas externas não é interessante gerar incrementos tão pequenos que possam efetivamente testar a biblioteca ,3 a menos que haja alguma razão para acreditar que a biblioteca tenha defeitos ou não seja suficientemente completada com suas funcionalidades de forma a servir às necessidades do programa em que está sendo escrito.

    A única opção que não contempla uma das fases do TDD é a letra "A".
  • Prezados,

    As fases do processo de TDD são :


    - Adicione um teste

    - Execute todos os testes e veja se algum deles falha

    - Escrever código

    - Execute os testes automatizados e veja-os executarem com sucesso

    - Refatorar código

    - Repita tudo


    Portanto, vemos que a alternativa que não corresponde a uma das fases é a letra A, pois nunca é possível garantir que o software está livre de problemas.



  • Etapas do TDD segundo Sommerville:

    1-Identificar o incremento de funcionalidade necessário.

    2-Escrever um teste para essa funcionalidade e o implementa como um teste automatizado.

    3-Executa o teste, junto com todos os outros testes implementados. O teste irá falhar.

    4-Implementa a funcionalidade e executa novamente o teste.

    5-Depois que todos os testes forem executados com sucesso, voce caminha para implementar a próxima parte da funcionalidade.

  •  e) Implementar a próxima parte da funcionalidade, após todos os testes terem sido executados, com sucesso.

    Após todos os testes terem sido executados com sucesso, se escreve um novo teste para a próxima funcionalidade e só depois se implementa a próxima funcionalidade!