Sua vida mais fácil com Testes

Igor dos Santos

Python MG

Belo Horizonte - 2016

make tests

Por que?

Por que?

  • Melhorar sua vida
  • Melhorar a vida da sua equipe
  • E melhorar a vida do seu chefe (Talvez ele não mereça)

... E quem sabe ganhar uma cerveja por isso

  • Testes Automatizados (Testes Unitários)
  • TDD - Test Driven Development
  • BDD - Behaviour Driven Development
  • Testes Automatizados (Testes Unitários)
  • TDD - Test Driven Development
  • BDD - Behaviour Driven Development

... juntos

Testes Automatizados

"Apenas duas coisas são infinitas: o universo e a estupidez humana. E eu não tenho

certeza do primeiro."

- Albert Eistein

Testes Automatizados

Código que testa código. (Não há definição melhor)

Testes Automatizados

  • Casos de teste são facilmente e rapidamente repetidos (pouco esforço)
  • Passos importantes não serão ignorados por falha humana (depende)
  • Criar situações bem mais elaboradas e complexas (certo!)

Testes Automatizados

  • Passos importantes não serão ignorados por falha humana (DEPENDE?!)

Testes Automatizados

  • Passos importantes não serão ignorados por falha humana (DEPENDE?!)

Testes Unitários

Para isso temos . . .

Testes Unitários

  • Testar uma unidade
  • Unidade é a menor parte testável do programa
  • Cada teste de unidade é independente dos demais
  • Teste unitário não é tarefa do Tester e sim do desenvolvedor

Testes Unitários

  • Testar uma unidade
  • Unidade é a menor parte testável do programa
  • Cada teste de unidade é independente dos demais
  • Teste unitário não é tarefa do Tester e sim do desenvolvedor

e ainda temos . . .

TDD e BDD

Test Driven Development

 

Escrever testes, depois escrever código real, utilizando baby steps

 

  • Agilidade dentro do ciclo de desenvolvimento
  • Facilita design de software
  • Garantia de qualidade

Behavior Driven Development

 

Definir funcionalidade (User Storie) e cenário de uso

 

  • Fácil entendimento da funcionalidade
  • Linguagem comum entre envolvidos
  • Garantia de qualidade

TDD e BDD

Test Driven Development

 

Escrever testes, depois escrever código real, utilizando baby steps

 

  • Agilidade dentro do ciclo de desenvolvimento
  • Facilita design de software
  • Garantia de qualidade

Behavior Driven Development

 

Definir funcionalidade (User Storie) e cenário de uso

 

  • Fácil entendimento da funcionalidade
  • Linguagem comum entre envolvidos
  • Garantia de qualidade

TDD e BDD

Test Driven Development

 

Escrever testes, depois escrever código real, utilizando baby steps

 

  • Agilidade dentro do ciclo de desenvolvimento
  • Facilita design de software
  • Garantia de qualidade

Behavior Driven Development

 

Definir funcionalidade (User Storie) e cenário de uso

 

  • Fácil entendimento da funcionalidade
  • Linguagem comum entre envolvidos
  • Garantia de qualidade

TDD e BDD

Testes Unitários, TDD e BDD, juntos . . .

LIVE CODE!

Primeiro o BDD . . .

Funcionalidade: Vender doces

Para quanto um doce for vendido

Eu como vendedor

Desejo decrementar um item do estoque

Cenário: Baixar 1 bala do estoque

Dado que cliente pede 1 bala

tenho 10 balas em estoque

Quando ele realiza a compra

Então eu fico com 9 balas

. . .Testes . . .

. . .Testes . . .

. . . Código real

Testes com Python

Unittest

 https://docs.python.org/3/library/unittest.html


Pytest (Testes pythônicos)

http://doc.pytest.org/en/latest/

Sua vida mais fácil com Testes

By Igor Santos

Sua vida mais fácil com Testes

Convencer você a escrever testes, utilizando testes unitários, TDD e BDD

  • 696