Maurcio Borges Silva @nerdioculosGuilherme de Angeli Ferreira @GuilhermeLemao
Testes funcionais e de interface Web em paralelo, usando Spock, Geb e Cucumber-JVM, para introduo de testes automatizados em ambientes legados
O nome est assim mesmo para que o foco se volte para o que importa, e no pro resto :p
No vamos matar lobisomens
No queremos falar de balas de prata, e se isso acontecer queremos ouvir todo mundo nos xingar
No falaremos sobre testes (apenas)
Falaremos sobre testes, claro. Mas o foco : comportamento, caracterizao e documentao viva.
No falaremos sobre ferramentas (ainda)
Apenas para deixar claro que as ferramentas no so o foco central, porque o foco o mtodo, a prtica, o desejo de cobrir o sistemas com testes vlidos em diversas perspectivas
O que o legado?
Code without tests is bad code. It doesn't matter how well written it is; it doesn't matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don't know if our code is getting better or worse.
Michael Feathers
No livro do Michael Feathers, Working with legacy codes ele fala muito nisso: o cdigo legado o cdigo sem testes. E foi essa a idia central da nossa apresentao: tentar de vrias maneiras cobrir com testes o que existe de legado
Onde est o legado?
Medo da mudana
Desmotivao
Preguia
Entropia++
Tentativas de melhorias desconectadas
Caractersticas de ambientes onde o legado persiste:* medo da mudana* desmotivao* preguia* entropia cada vez mais alta* tentativas de melhorias dispersas, desconectadas, por parte de anlise de negcios, testes, dev, etc
!Comunicao
A comunicao da inteno de um cdigo/aplicao legada muito difcil, porque ningum tem muita certeza do que ele faz. Podemos citar Bridging the communication gap do Adzic
Que que d pr fazer?
Tem que ser aos poucos pr poder medir o valor de cada ao, e no impactar muito na manuteno do grande monstro que o legado
Baby steps
Tem que ser aos poucos pr poder medir o valor de cada ao, e no impactar muito na manuteno do grande monstro que o legado
Ttica de guerrilha
Propomos uma ttica de guerrilha para, a passos curtos, cobrir de testes vlidos um sistema legado. Atacando ao mesmo tempo testes funcionais, de interface dentre outros por diversos flancos
BDD
Foco no comportamento
Linguagem ubqua
Maior expressividade de testes
Critrios de aceitao executveis
Documentao viva
Os flancos
Novos comportamentos
Caracterizao
Correo de bugs
As ferramentas
Cucumber-JVM
Spock
Geb
Cucumber-JVM
Escrito pelo mesmo cara que criou o Cucumber
Escrito em Java
Internacionalizado
Groovy steps
Spock
Groovy!
Blocks
Conceito
Geb
Abstrao do Selenium
Funcionalidades JQuery
PageObject
O que esperar disso tudo (e muito mais)?
Conversao mais ubqua
Maior interao entre times
Testes como parte do cotidiano (t no sangue)
Com quem falamos sobre isso?
@arbocombr: Escrevendo testes unitrios para cdigo legado: Tcnicas de isolamento
@bearded_nerd e @nirev: Evoluindo uma arquitetura legada (http://slides.com/nirev/tdc2014-evoluindo-arquitetura-legada)
Coisas legais para ler
Livros do Adzic: Bridging the communication gap, Specification by Example
http://www.infoq.com/presentations/bdd-cucumber-groovy
http://lizkeogh.com/2013/10/24/bdd-before-the-tools/
http://www.thoughtworks.com/pt/insights/blog/how-bdd-and-feature-injection-can-help-you-be-better
Livro do Dan North: The Rspec Book
Globalcode Open4education
Top Related