[MÚSICA] [MÚSICA] Olá! Bem vindo ao curso sobre TDD, eu sou Clovis Fernandes e hoje iremos dar continuidades sobre o ciclo TDD no contexto de responsabilidades casos de testes. Na aula passada nós falamos sobre o ciclo TDD interno, que consome os casos de teste, que foram definidos para cada responsabilidade. Hoje iremos então falar sobre o ciclo externo do TDD, que consomem as responsabilidades que eu levantei para dada aplicação. Então, é o que faremos hoje, ao término dessa aula você terá visto completamente como é que funciona o ciclo realmente do TDD, desde as responsabilidades que eu defini para a aplicação e para cada conjunto de casos teste, para cada responsabilidade, e é isso que veremos hoje. Vocês vejam aí que tem a seta amarela apontando que para o requisito 1 nós olhamos os casos de testes, opção conjunta correspondente que vai do ct1 até o ctk, está certo? Chegamos nesse momento e perguntamos: tem mais testes? A resposta é não. Está certo? Então não tem mais casos de testes, o que é que eu faço então? Eu marco o requisito 1 como done, ou seja, agora eu estou indo para o ciclo externo, está certo? Eu tenho ciclo interno e agora eu tenho ciclo externo. Eu vou perguntar nesse caso, se têm mais requisitos. Nós estavamos só trabalhando com o requisito 1, certamente têm mais requisitos, então a resposta é: sim, temos mais requisitos. Então, eu recomeço todo o ciclo TDD, qual é o começo? Seleciono requisito, lembrando que esses requisitos no nosso caso, geral, são responsabilidades, está certo? E para cada responsabilidade a gente monta conjunto de casos de teste. Então seleciono nesse exemplo, podia ser qualquer deles, o desenvolvedor que escolhe qual que quer trabalhar nesse momento, então eu estou escolhendo simbolicamente o req2, está certo? Ao selecionar o req2 ou já estava pronto ou nesta hora mesmo defino, para o requisito a responsabilidade req2, eu defino o conjunto de casos teste, que nesse exemplo aí é de ct1 a ctv. Só para mostrar que o ctv, significa que eventualmente, o conjunto de casos testes para responsabilidade 2 é diferente da responsabilidade 1, que eu chamei de 1 até ctk, ct1 até ctk. Que é que eu faço então? Escolho a responsabilidade, o caso de teste ct1, entro no ciclo do TDD interno, que é para escrever teste que vai falhar, correspondente ao ct1. Testo e confirmo que ele falha. Aí eu escrevo o código de produção para fazer ele funcionar e aí, fico nisso até que ele realmente funcione. aí vou para refatoração, aí vou passando todos os casos de teste ct2, ct3, ct4, ctv menos 1, ctv, quando cheguei no último, está certo? Eu pergunto: têm mais casos de testes para o requisito req2? A resposta é não, está certo? Então o que é que eu faço? Marco o req2 como done, está certo? Bom, aí eu vou perguntar se tem mais requisitos, a gente está vendo que têm o ct3 o req3 o rq4 e assim até o reqn. Eu vou selecionar o próximo que pode ser o req3 e aí entro no conjunto de casos teste correspondente ao req3 e entra o fluxo interno para consumir os casos de teste. E aí volta, req4 e assim por diante, até o reqn, ou seja, no momento que eu marco que o reqn foi feito, está certo? A pergunta é: tem mais? A resposta vai ser, não, não tem mais, acabou. Nesse momento todos os requisitos, ou seja, todas as responsabilidades que eu tinha identificado para essa aplicação, foram consumidas pelo meu ciclo externo, está certo? Com isso a aplicação agora está pronta para outros testes, eu posso fazer testes de integração, teste de funcionalidade, testes de usabilidade, testes de stress e assim posso, vamos dizer, dar continuidade ao meu processo de desenvolvimento de software, para ver o que pode ser feito ainda, está certo? Com isso, na aula de hoje nós concluímos o ciclo TDD. Ele foi quebrado ciclo interno, que consome o conjunto de casos teste relativo a cada requisito ou responsabilidade, está certo? E ciclo externo, que corresponde ao conjunto das responsabilidades. Então vou passando cada responsabilidade, vou pegando os conjuntos de casos testes e entro no ciclo do TDD, do Red, Green, Refactor, está certo? Obrigado! [MÚSICA]