Falando sobre testes automatizados

Preview:

DESCRIPTION

Vamos falar um pouco mais sobre testes automatizados

Citation preview

Falando de Testes Breno Oliveira

“Testar pra que? O que eu fiz vai funcionar …"

–dummy programmer

Quem garante

QUEvai funcionar?

por isso testamos

murphy's law

–William Edwards Deming

“In God we Trust, all others bring data”

Não se desespere os testes estão ai para te ajudar

Testes lhe dão a confiança para a mudança

Descrevem o comportamento do software

Facilita a Adição de melhorias

Tempo de desenvolvimento

Ajudam a reduzir o número de bugs

E principalmente …

Ninguém vai te olhar com essa cara ao ver um código seu …

Quanto devemos testar?

–Uncle Bob

1 of Kent’s older wise sayings was: “Test everything that could possibly break.” I think that’s a pretty good

recipe.

keep it simple and stupid

Baby steps ftw

Testes UnitáriosTeste de funções do código independente de outras partes do sistemas

Muitas vezes escrevemos testes de unidadeQue não testam nada

Testar constante é importante

Mas talvez não com teste de unidade

Escreva um teste de integração

{ Então o que poderíamos testar daquele código? }

Verifique ao passar o valor 4111 foi gerado foi um pagamento com VISA.

Teste de IntegraçãoTesta a integração entre as funções e objetos

do sistema

garantem que suas classes comunicam-se com APIs, escrevem arquivos texto ou mesmo

gravar no banco são considerados testes de integração.

Lembre-se

Você não trabalha sozinho

TDDBDD

NO TESTSATDD

?

O que fazer então?

TDD

–Kent Beck

“Desenvolvimento guiados por testes é uma forma de administrar o medo durante a programação!”

Baby steps ftwNovamente

ERROR test_should_initialize_a_post (0:00:00.000) uninitialized constant PostTest::Post

PASS test_should_initialize_a_post

Vamos láEu sei que você pode fazer mais

Mais confiança cara

ERROR test_should_have_a_title_if_is_setted undefined method `title' for #<Post:0x0000010091dc90>

PASS test_should_have_a_title_if_is_setted

ERROR test_should_have_a_title_if_is_setted undefined method `title=' for #<Post:0x0000010107ca90>

PASS test_should_have_a_title_if_is_setted

FAIL test_should_have_a_blank_title_if_none_is_setted Expected: nil Actual: "my post”

PASS test_should_have_a_blank_title_if_none_is_setted

PASS test_should_have_a_blank_title_if_none_is_setted PASS test_should_initialize_a_postPASS test_should_have_a_title_if_is_setted

Ok … Meio idiota o exemploMas não temos tempo

:(

BDD

Desenvolvimento orientado ao comportamento

testar o comportamento da sua aplicação

mais sobre escrever especificações

escrever testes também é documentar

Recommended