TDD –
TEST DRIVEN
DEVELOPMENT
DATEORIA A PRÁTICA
Oi!
Serena Fernandes
Developer
METODOLOGIA
S ÁGEIS
O QUE É
TDD?
TDD é o Desenvolvimento Orientado por Testes (Test Driven Development)
CICLO DO TDD
RED
GREEN
REFACTOR
COMO?
Java: Junit
Ruby: Test::Unit
JavaScript: Jasmine
Python: UnitTest (”Pytest”)
EXEMPLOS
import org.junit.Test;
public class MeuTeste {
@Test
public void
multiplicacaodeInteirosPorZeroDeveRetornarZero() {
MyClass tester = new MyClass();
assertEquals("10 x 0 deve ser 0", 0, tester.multiply(10,
0));
assertEquals("0 x 10 deve ser 0", 0, tester.multiply(0,
10));
assertEquals("0 x 0 deve ser 0", 0, tester.multiply(0, 0));
}
}
Referencias:
Manifesto Ágil
http://www.agilemanifesto.org/iso/ptbr/
Prática com Rails
https://www.caelum.com.br/apostila-ruby-on-rails/apendice-testes/
TDD Simples e prático
http://www.devmedia.com.br/test-driven-development-tdd-simples-e-pratico/18533
Obrigada!
Valeu, flws!
Serena Fernandes
serenafribeiro@gmail.com
facebook.com/serenafernandes

Tdd da teoria a pratica

Notas do Editor

  • #2 Dar um oi e esperar até que todas entrem
  • #3 Apresentação pessoal
  • #4 Ou desenvolvimento agil de software é um conjunto de metodologias de desenvolvimento. O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software. Os valores relacionados ao Desenvolvimento ágil de software, segundo o Manifesto Agil são: Indivíduos e interações sobre processos e ferramentas; Software funcional sobre documentação abrangente; Colaboração do cliente sobre negociação de contratos; Responder a mudanças sobre seguindo um plano
  • #5 Para chegar onde eu quero, vou focar mais em uma técnica da metodologia conhecida como XP Extreme Programming é um conjunto de práticas de programação que visam a simplicidade, praticidade, qualidade e flexibilidade de seu sistema. Os testes de unidade fazem parte dessa metodologia de programação.
  • #6 Vamos ao que interessa
  • #7 Isso mesmo! Desenvolvemos o nosso software baseado em testes que são escritos antes do nosso código de produção! Mas Serena, ainda não entendi, eu sou DEV, por que eu escreveria testes? Código mais limpo, já que escrevemos códigos simples para o teste passar Segurança no Refactoring pois podemos ver o que estamos ou não afetando Segurança na correção de bugs Maior produtividade já que o desenvolvedor encontra menos bugs e não desperdiça tempo debugando Código da aplicação mais flexível, já que para escrever testes temos que separar em pequenos "pedaços" o nosso código, para que sejam testáveis, ou seja, nosso código estará menos acoplado.
  • #8 Basicamente o TDD se baseia em pequenos ciclos de repetições, onde para cada funcionalidade do sistema um teste é criado antes. 
  • #9 Escrevemos um Teste que inicialmente não passa (Red)Adicionamos uma nova funcionalidade do sistemaFazemos o Teste passar (Green)Refatoramos o código da nova funcionalidade (Refactoring)Escrevemos o próximo Teste
  • #11 Existem vários frameworks de testes, para as diferentes linguagens