Por que não (não testar)? Danilo Sato www.dtsato.com
Quem sou eu? Graduação/Mestrado no IME-USP AgilCoop ThoughtWorks UK Fundador do Dojo@SP
Por que não testar?
Por que não testar? É muito difícil / Eu não sei como
Por que não testar? É muito difícil / Eu não sei como Preciso terminar isso agora!
Por que não testar? É muito difícil / Eu não sei como Preciso terminar isso agora! Meu código funciona!
Por que não testar? É muito difícil / Eu não sei como Preciso terminar isso agora! Meu código funciona! Tenho que programar o dobro
Por que não testar? É muito difícil / Eu não sei como Preciso terminar isso agora! Meu código funciona! Tenho que programar o dobro Não é problema meu...
E se eu não testar?
E se eu não testar? Trabalho manual
E se eu não testar? Trabalho manual Como o sistema funciona?
E se eu não testar? Trabalho manual Como o sistema funciona? Refatorar? Migrar?
E se eu não testar? Trabalho manual Como o sistema funciona? Refatorar? Migrar? Problemas de regressão / manutenção
E se eu não testar? Trabalho manual Como o sistema funciona? Refatorar? Migrar? Problemas de regressão / manutenção Big Ball of Mud
E se eu não testar? Trabalho manual Como o sistema funciona? Refatorar? Migrar? Problemas de regressão / manutenção Big Ball of Mud Debug
Qualidade
Work smarter, not harder Qualidade
Qualidade Work smarter, not harder Inspecionar para previnir defeitos é bom; Inspecionar para encontrar defeitos é desperdício -- Shigeo Shingo, The Toyota Production System
Qualidade Work smarter, not harder Inspecionar para previnir defeitos é bom; Inspecionar para encontrar defeitos é desperdício -- Shigeo Shingo, The Toyota Production System Auto-inspeção (mistake-proof)
Diferentes Sabores Perspectiva do Negócio Suporte à programação Crítica ao Produto Perspectiva da Tecnologia
Diferentes Sabores Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Diferentes Sabores Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Ferramentas Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Ferramentas Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) JUnit Teste de Unidade Test::Unit xunit PyUnit (Design do Código) script.aculo.us Teste Funcional/Integração Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Ferramentas Perspectiva do Negócio Suporte à programação FIT Fitnesse Teste de História Teste de Aceitação Sahi (Design do Produto) Selenium Watir JUnit Teste de Unidade Test::Unit xunit PyUnit (Design do Código) script.aculo.us Teste Funcional/Integração Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Ferramentas Perspectiva do Negócio Suporte à programação FIT Fitnesse Teste de História Teste de Aceitação Sahi (Design do Produto) RSpec JBehave Selenium Watir JUnit Teste de Unidade Test::Unit xunit PyUnit (Design do Código) script.aculo.us Teste Funcional/Integração Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Ferramentas Perspectiva do Negócio Suporte à programação FIT Fitnesse Teste de História Teste de Aceitação Sahi (Design do Produto) RSpec JBehave Selenium Watir JUnit Teste de Unidade Test::Unit xunit PyUnit (Design do Código) script.aculo.us Teste Funcional/Integração HTML Validator Teste de Usabilidade Teste Exploratório CSS Validator Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Ferramentas Perspectiva do Negócio Suporte à programação FIT Fitnesse Teste de História Teste de Aceitação Sahi (Design do Produto) RSpec JBehave Selenium Watir JUnit Teste de Unidade Test::Unit xunit PyUnit (Design do Código) script.aculo.us Teste Funcional/Integração HTML Validator Teste de Usabilidade Teste Exploratório httperf JMeter CSS Validator Siege Teste de Carga Teste de Segurança Teste Combinatório Nessus Nikto/Wikto Crítica ao Produto Perspectiva da Tecnologia
Suporte à programação FIT Fitnesse Ferramentas Teste de História Teste de Aceitação RSpec Sahi (Design do Produto) JUnit Teste de Unidade Test::Unit xunit PyUnit (Design do Código) script.aculo.us Teste Funcional/Integração Perspectiva do Negócio JBehave Selenium Watir HTML Validator Teste de Usabilidade Teste Exploratório CSS Validator http://www.softwareqatest.com/qatweb1.html httperf JMeter Siege Teste de Carga Teste de Segurança Teste Combinatório Nessus Nikto/Wikto Crítica ao Produto Perspectiva da Tecnologia
Um caminho a trilhar... Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Um caminho a trilhar... Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Um caminho a trilhar... Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Um caminho a trilhar... Perspectiva do Negócio Suporte à programação Teste de História Teste de Aceitação (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Um caminho a trilhar... Perspectiva do Negócio Suporte à programação DEMO Teste de História Teste de Aceitação (Selenium) (Design do Produto) Teste de Unidade Teste Funcional/Integração (Design do Código) Teste de Usabilidade Teste Exploratório Teste de Carga Teste de Segurança Teste Combinatório Crítica ao Produto Perspectiva da Tecnologia
Dojo de Programação Dojo@SP
Dojo de Programação Dojo@SP http://groups.google.com/group/dojo_sp
Dojo de Programação Dojo@SP http://groups.google.com/group/dojo_sp
Dojo de Programação Dojo@SP http://groups.google.com/group/dojo_sp
Dojo de Programação Dojo@SP http://groups.google.com/group/dojo_sp
Dojo de Programação Dojo@SP http://groups.google.com/group/dojo_sp
Dojo de Programação Dojo@SP http://groups.google.com/group/dojo_sp
Dúvidas? Danilo Sato www.dtsato.com Dojo@SP groups.google.com/group/dojo_sp AgilCoop www.agilcoop.org.br