agile testing e outros amendoins
DESCRIPTION
Palestra realizada para profissionais da Prefeitura Municipal de São José dos Campos, SP, a respeito de como avançar na agilidade, critérios de aceite e agile testing.TRANSCRIPT
Agile TestingAgile Testing
... e outros amendoins... e outros amendoins
Gabriel Moreira Gabriel Moreira
Roberto Pepato MelladoRoberto Pepato Mellado
São José dos Campos, Abr/2012São José dos Campos, Abr/2012
ApresentaçãoApresentação
Roberto Pepato MelladoRoberto Pepato Mellado
[email protected]@rpepato@rpepato
+ 15 anos de experiência em desenvolvimento, + 15 anos de experiência em desenvolvimento, consultoria e gestão de projetos de sofware;consultoria e gestão de projetos de sofware;
Formação:Formação:
Graduado em Ciência da Computação - Universidade Graduado em Ciência da Computação - Universidade São Judas TadeuSão Judas Tadeu
Pós-Graduação em Tecnologia de Sistemas Pós-Graduação em Tecnologia de Sistemas Orientados à Objetos - Faculdade SenacOrientados à Objetos - Faculdade Senac
MBA em Gesão Estratégica e Econômica de Projetos MBA em Gesão Estratégica e Econômica de Projetos - Fundação Getúlio Vargas - FGVSP- Fundação Getúlio Vargas - FGVSP
Mestrado em Informática (em curso) - Instituto Mestrado em Informática (em curso) - Instituto Tecnológico de Aeronáutica - ITATecnológico de Aeronáutica - ITA
Gabriel de Souza P. MoreiraGabriel de Souza P. Moreira
[email protected]@gspmoreira@gspmoreira
+ 10 anos de experiência em arquitetura, análise e + 10 anos de experiência em arquitetura, análise e desenvolvimento de software;desenvolvimento de software;
Formação:Formação:
Graduado em Ciência da Computação - UNIVAPGraduado em Ciência da Computação - UNIVAP
Mestrado em Engenharia de Software - ITAMestrado em Engenharia de Software - ITA
AgendaAgenda
Fazendo Ágil / Sendo ÁgilFazendo Ágil / Sendo Ágil
ValoresValores
TestesTestes
DemoDemo
QuestõesQuestões
Sua empresa/equipe Sua empresa/equipe está fazendo ágil ?está fazendo ágil ?
O que é fazer ágil pra O que é fazer ágil pra você ?você ?
Por que você está Por que você está fazendo ágil ?fazendo ágil ?
É porque todos estão É porque todos estão nessa ? Porque esse é o nessa ? Porque esse é o
novo hype ?novo hype ?
E aí, agile está E aí, agile está funcionando para você ? funcionando para você ?
Qual sua dor ?Qual sua dor ?
Você está fazendo ágil Você está fazendo ágil melhor do que quando melhor do que quando
começou ?começou ?
Agile está Agile está resolvendoresolvendo seus problemas ? seus problemas ?
Ou você é um Ou você é um escravoescravo dele ?dele ?
Qual é a receita de Qual é a receita de bolo ?bolo ?
Scrum ? XP ? FDD ? Scrum ? XP ? FDD ? Crystal ?Crystal ?
No Silver BulletNo Silver Bullet
Scrum ? XP ? FDD ? Scrum ? XP ? FDD ? Crystal ?Crystal ?
Já pensou em parar de Já pensou em parar de fazer ágil e começar a fazer ágil e começar a
ser ágil ?ser ágil ?
Fazer ágil atinge um Fazer ágil atinge um muromuro
Como suportar o Como suportar o crescimento com agile ?crescimento com agile ?
Não signfica que os Não signfica que os itens à direita são itens à direita são
dispensáveisdispensáveis
Pensar Ágil + Fazer Ágil Pensar Ágil + Fazer Ágil = Ser Ágil= Ser Ágil
Papéis ? Pra onde eu Papéis ? Pra onde eu vou ?vou ?
Ênfase nos papéis ?Ênfase nos papéis ?
Desacople papéis de atividadesDesacople papéis de atividades
Cultura de herói ?Cultura de herói ?
Deixe as coisas fluíremDeixe as coisas fluírem
Todos sentam no mesmo lugar diariamente ?Todos sentam no mesmo lugar diariamente ?
Parêem juntos (todo o time)Parêem juntos (todo o time)
As informações não fluem ?As informações não fluem ?
Use as paredesUse as paredes
EquipeEquipe
Em ResumoEm Resumo
-+
User StoriesUser Stories
• IIndependentndependent
• NNegotiableegotiable
• VValuable to users or customersaluable to users or customers
• EEstimatablestimatable
• SSmallmall
• TTestableestable
User Stories - Critérios User Stories - Critérios de Aceitaçãode Aceitação
Expressam detalhesExpressam detalhes
Documentam suposições e expectativasDocumentam suposições e expectativas
Determinam se a estória está prontaDeterminam se a estória está pronta
Deveriam ser escritas pelo clienteDeveriam ser escritas pelo cliente
São escritas antes do início da codificaçãoSão escritas antes do início da codificação
Não devem ser complexas ou em grande Não devem ser complexas ou em grande númeronúmero
User Stories - Critérios User Stories - Critérios de Aceitaçãode Aceitação
Como descobrir os critérios ?Como descobrir os critérios ?
O que é importante para a implementação ?O que é importante para a implementação ?
Em que circustâncias a estória pode se Em que circustâncias a estória pode se comportar de forma diferente ?comportar de forma diferente ?
O que pode acontecer de errado na execução O que pode acontecer de errado na execução de uma estória ?de uma estória ?
User Stories - ExemploUser Stories - Exemplo
““Como cliente, desejo pagar a conta com cartão de Como cliente, desejo pagar a conta com cartão de crédito”crédito”
Critérios:Critérios:
Deve aceitar Visa, Mastercard e American ExpressDeve aceitar Visa, Mastercard e American Express
Deve recusar Diner’s ClubDeve recusar Diner’s Club
Deve recusar cartões com número inválidoDeve recusar cartões com número inválido
Deve recusar cartões expiradosDeve recusar cartões expirados
Deve recusar se o limite do cartão foi excedidoDeve recusar se o limite do cartão foi excedido
Tipos de TesteTipos de Teste
Teste de UsabilidadeTeste de Usabilidade
Teste de Interface de UsuárioTeste de Interface de Usuário
Teste de PerformanceTeste de Performance
Teste de StressTeste de Stress
Teste de IntegraçãoTeste de Integração
Teste UnitárioTeste Unitário
““Legacy code is code without tests”Legacy code is code without tests”
““The main thing that distinguishes legacy code The main thing that distinguishes legacy code from non-legacy code is tests, or rather a lack from non-legacy code is tests, or rather a lack
of tests”of tests”
““Em 2010, programar sem TDD chega a Em 2010, programar sem TDD chega a ser anti-ético” - QCon SP 2010ser anti-ético” - QCon SP 2010
““... para responder a questão do como ... para responder a questão do como começar no ágil, o primeiro passo é: começar no ágil, o primeiro passo é: TDD ...” - AgileVale - ITA - SJC, 2011TDD ...” - AgileVale - ITA - SJC, 2011
Klaus WuestefeldKlaus Wuestefeld
Demo !!
Bowling GameBowling Game
• Scenario: Gutter GameScenario: Gutter Game• GivenGiven a new game a new game• WhenWhen I roll 20 balls into the gutter I roll 20 balls into the gutter• ThenThen the score should be 0 the score should be 0
• Scenario: Perfect GameScenario: Perfect Game• GivenGiven a new game a new game• WhenWhen I perform 12 strikes I perform 12 strikes• ThenThen the score should be 300 the score should be 300
ReferênciasReferências
ReferênciasReferências
ReferênciasReferências
ReferênciasReferências
Ferramentas utilizadas na demoFerramentas utilizadas na demo
• Visual Studio 2010Visual Studio 2010
• Resharper - Resharper - http://www.jetbrains.com/resharper/Plug-in para Visual Studio que favorece produtividade e Plug-in para Visual Studio que favorece produtividade e permite execução de testes unitários dentro da IDEpermite execução de testes unitários dentro da IDE
• Nunit – Nunit – http://www.nunit.orgFramework Open-Source para Testes UnitáriosFramework Open-Source para Testes Unitários
• SpecFlow - SpecFlow - http://www.specflow.org/Framework Open-Source para utilização de BDDFramework Open-Source para utilização de BDD
Dúvidas ?Dúvidas ?
Obrigado ! Obrigado ! :):)