Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014

Post on 01-Jul-2015

328 views 0 download

description

Entenda por que devemos ter testes automatizados em qualquer sistema, independente do seu tamanho. Por que teste automatizado é um investimento. Conheça o TDD e o BDD. Saiba qual o valor gerado pelos testes automatizados para o time e para o cliente. Como vender os testes automatizados ao vender o seu projeto.

Transcript of Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014

TESTES AUTOMATIZADOS O TIME E O CLIENTE SAEM

GANHANDO!

MAURO QUEM…

MAUROGEORGE.COM.BR

POR QUE DEVEMOS TESTAR?

POR QUE DEVEMOS TESTAR?Sistemas grandes sem testes

POR QUE DEVEMOS TESTAR?Teste é investimento

POR QUE DEVEMOS TESTAR?Sistemas sem testes

POR QUE DEVEMOS TESTAR?Sistemas pequenos viram grandes

POR QUE DEVEMOS TESTAR?Mas isso vende?

TESTES AUTOMATIZADOS

TDDTest-driven development

TDDO que é

calculator_spec.rbRSpec.describe Calculator do!! describe ‘.sum' do!! it 'sum 2 and 2' do! expect(Calculator.sum(2, 2)).to eq(4)! end! end!end!

console$ rspec spec/calculator_spec.rb!!/path/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:481:in `load_missing_constant': Unable to autoload constant Calculator, expected /path/calculator.rb to define it (LoadError)!! from /path/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:180:in `const_missing'!! from /path/spec/calculator_spec.rb:3:in `<top (required)>'!! from /path/gems/rspec-core-3.0.4/lib/rspec/core/configuration.rb:1058:in `load'!! from /path/gems/rspec-core-3.0.4/lib/rspec/core/configuration.rb:1058:in `block in load_spec_files'!! from /path/gems/rspec-core-3.0.4/lib/rspec/core/configuration.rb:1058:in `each'!! from /path/gems/rspec-core-3.0.4/lib/rspec/core/configuration.rb:1058:in `load_spec_files’ …

calculator.rbclass Calculator!! def self.sum(a, b)! 4! end!end

console$ rspec spec/calculator_spec.rb!!Run options: include {:focus=>true}!!All examples were filtered out; ignoring {:focus=>true}!!Calculator! .sum! sum 2 and 2!!Finished in 0.20637 seconds (files took 4.72 seconds to load)!1 example, 0 failures!!Randomized with seed 49032

calculator_spec.rbRSpec.describe Calculator do!! describe '.sum' do!! it 'sum 2 and 2' do! expect(Calculator.sum(2, 2)).to eq(4)! end!! it 'sum 3 and 2' do! expect(Calculator.sum(3, 2)).to eq(5)! end! end!end!

console 1) Calculator.sum sum 3 and 2! Failure/Error: expect(Calculator.sum(3, 2)).to eq(5)!! expected: 5! got: 4!! (compared using ==)! # ./spec/calculator_spec.rb:12:in `block (3 levels) in <top (required)>'!!Finished in 0.24562 seconds (files took 4.67 seconds to load)!2 examples, 1 failure!!Failed examples:!!rspec ./spec/calculator_spec.rb:11 # Calculator.sum sum 3 and 2

calculator.rbclass Calculator!! def self.sum(a, b)! a + b! end!end!

consoleRun options: include {:focus=>true}!!All examples were filtered out; ignoring {:focus=>true}!!Calculator! .sum! sum 2 and 2! sum 3 and 2!!Finished in 0.20995 seconds (files took 4.78 seconds to load)!2 examples, 0 failures!!Randomized with seed 64301

TDDBaby steps

TDDRefactoring

TDDDesign de código

TDDSimplicidade

TDDQualidade

TDDCoding Dojo

BDDBehavior-driven development

calculator_spec.rbRSpec.describe Calculator do!! describe '.sum' do!! it 'sum positive values' do! expect(Calculator.sum(2, 2)).to eq(4)! end!! it 'sum negative values' do! expect(Calculator.sum(-3, -2)).to eq(-5)! end! end!end!

DIA A DIA

DIA A DIAComeçar o projeto já com os testes

DIA A DIATDD/BDD

DIA A DIA100% de cobertura de testes

DIA A DIACódigo coletivo

DIA A DIATestes como documentação

DIA A DIAProjeto não para se alguém do time for para a NASA

DIA A DIABuild de dez minutos

DIA A DIAIntegração continua

DIA A DIADeploy continuo

XP

XPCoragem

XPSimplicidade

OBRIGADO!

MAUROGEORGE.COM.BR