SóProvas


ID
1669096
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

Um analista de TI está participando do desenvolvimento de um software orientado a objetos utilizando a plataforma Java. Na abordagem de desenvolvimento adotada, o código é desenvolvido de forma incremental, em conjunto com o teste para esse incremento, de forma que só se passa para o próximo incremento quando o atual passar no teste. Como o código é desenvolvido em incrementos muito pequenos e são executados testes a cada vez que uma funcionalidade é adicionada ou que o programa é refatorado, foi necessário definir um ambiente de testes automatizados utilizando um framework popular que suporta o teste de programas Java.

A abordagem de desenvolvimento adotada e o framework de suporte à criação de testes automatizados são, respectivamente, 

Alternativas
Comentários
  • O desenvolvimento guiado por teste dá uma visão mais ampla do que deve ser feito ao desenvolvedor, pois antes de criar a funcionalidade, deve-se criar um teste da funcionalidade. (...) Posteriormente será desenvolvido o código para fazer com que o teste seja bem sucedido, já que o desenvolvedor sabe quais funcionalidades deve implementar, fica mais prático o seu desenvolvimento. Por último refatore, ou seja, melhore a codificação.


    O JUnit é um framework de teste que utiliza anotações para a identificação de métodos de ensaio. Lembrando que os testes são unitários, não devendo depender de outros testes para o seu funcionamento. Além de utilizar anotações, o framework disponibiliza métodos de asserções, que são utilizados para validar informações. Com base nas asserções teremos o resultado de nosso teste como falho ou OK.


    Fonte: http://www.devmedia.com.br/introducao-ao-desenvolvimento-guiado-por-teste-tdd-com-junit/26559

  • Não ficou muito certa a parte que diz "o código é desenvolvido de forma incremental, em conjunto com o teste" né... até me fez pensar, a princípio, que não se tratava de TDD, porque no TDD, como explicou o nosso colega Silas, o teste é criado antes da funcionalidade, não em conjunto com ela... Mas isso foi só um comentário mesmo, temos que ficar atentos pq quem cria as questões nem sempre entende do assunto =/

  • JUnit é um framwork para desenvolvimento de teste em Java.

    O código é desenvolvido de forma incremental. No TDD, o primeiro passo é decidir qual será o incremento de funcionalidade no código. Depois escrevemos um teste para esse funcionalidade. Como a funcionlidade não foi escrita o teste deve falhar. Em seguida o incremento de funcionlidade é efetivamente escrito. O código é refatora até que o teste seja bem sucedido. Enquanto teste falhar não é incrementada uma nova funcionlidade. Ou seja, o próximo incremento de funcionlidade só será adiciona se o anterior passou pelo teste. 

    BDD é um superconjunto do TDD, onde se leva em consideração as expectativas do cliente de forma a produzir uma lingaugem ubíqua, comum a todos.

    JTest é para análise estática

    Selenium é um framework de teste para aplicações web.

    Jenkins ferramenta para integração contínua

    XP é um método ágil de desenvolvimento de software

    Quanto falmos em DDD geralmente estamos nos refereindo a Domain Drive Design. Não encontrei referencias claras sobre "Data-Driven Development" => desenvolvimento dirigido a dados. 

    Prof. Almeida Junior

    www.meubizu.com.br

     

     

     

  • Letra E, pois :

    A Questão da dicas quando diz:

    Dica 1 )  "..  utilizando a plataforma Java  " .

    Dica 2 ) " .. o código é desenvolvido de forma incremental, em conjunto com o teste para esse incremento " .

    O correto em 100 % seria dizer que " .. o código é desenvolvido de forma incremental, ANTES do teste" , ou sejam " Primeiro se desenvolve o TESTE para depois o CODIGO. O ciclo correto é:

                     1) Escrevemos um Teste que inicialmente não passa (Red)

                     2) Adicionamos uma nova funcionalidade do sistema

                     3) Fazemos o Teste passar (Green) ( ou até passar no teste )

                     4) Refatoramos o código da nova funcionalidade (Refactoring)

                     5) Escrevemos o próximo Teste

     

    Em geral, diz que " Quando voce desenvolve o teste ao mesmo tempo voce ja esta pensando tambem no codigo e vice-versa"

    Então fica:
    A ) " .. primeiro devemos escrever os testes para posteriormente escrever o código " . ( TDD -  Test-Driven Development )

    B ) JUnit é a ferramenta " .. com suporte à criação de testes automatizados na linguagem de programação Java. "

    C ) JTest. é uma ferramenta de Java

     

     

    ( X ) Não é Behavior Driven Development (BDD )
    - Desenvolvimento Guiado por Comportamento,ou seja, outra linha de raciocinio.

    ( X ) Não é DDD pois :

    - DDD é uma coleção de padrões e princípios que ajudam em seus esforços para construir aplicações que refletem uma compreensão e a satisfação das exigências do seu negócio .
    - DDD como uma automatização do processo de negócio.
    http://www.princiweb.com.br/blog/programacao/tdd/tdd-ddd-e-bdd-praticas-de-desenvolvimento.html

  • Questão polêmica porque Jenkins também pode ser considerado um FrameWork para testes. Vejamos a própria definição na página do desenvolvedor:

    About Jenkins: "Jenkins is an open source automation server which enables developers around the world to reliably build, test, and deploy their software."


    FONTE: https://jenkins.io/press/