SlideShare uma empresa Scribd logo
Desenvolvendo aplicações
orientadas a testes de aceitação:
        um caso prático

             Eloi Rocha Neto
          eloi.rocha@gmail.com




            www.smartiks.com
Agenda
• O que queremos?
• Por que é tão difícil?
• Como resolvemos ou amenizamos esses
  problemas?
• Um caso prático
• Conclusões
O que queremos?
• Produzir software de qualidade
• Desenvolver software que atenda os
  requisitos do cliente
• Garantir que o time de desenvolvimento
  está implementando o que foi especificado
Por que é tão difícil?
• Problemas de comunicação entre:
  – cliente e analistas
  – analistas e o time de desenvolvimento
• Especificação obscura
Como resolvemos ou amenizamos
          esses problemas?
• Processo de desenvolvimento
• Ferramenta EasyAccept
• Vantagens
Processo de desenvolvimento
• As user stories são escritas na forma
  testes de aceitação executáveis
• Um teste de aceitação consiste de um
  script que é processado pela ferramenta
  EasyAccept
• Os testes de aceitação são enviados para
  o time de desenvolvimento
• Uma user story só é finalizada quando
  seus testes estão passando
EasyAccept


       Analistas
   juntamente com
      os clientes                     Façade




       Script 1
(teste de aceitação)
                                               Programa
                      Script 2
               (teste de aceitação)
EasyAccept
• Scripts acessam métodos da Façade
• Asserções podem ser realizadas com os
  seguintes comandos:
  – expect
  – expectError
  – equalFiles

id = criarUsuario nome=zeca aniversario=12/12/1979
expect zeca getNome usuario=${id}
expect 12/12/1979 getAniversario usuario=${id}
expectError “Usuário não existe!” getNome usuario=blahblah
expectError “Data inválida!” criarUsuario nome=ze aniversario=12/a
EasyAccept
public class Facade {
  ...
  public String criarUsuario( String nome , String aniversario )
          throws CadastroInvalidoException {
      return gerenciadorDeUsuarios.criarUsuario( nome , aniversario );
  }
  public String getNome( String usuarioId )
          throws UsuarioInexistenteException {
      return gerenciadorDeUsuarios.getNome( usuarioId );
  }
  public String getAniversario( String usuarioId )
          throws UsuarioInexistenteException {
      return gerenciadorDeUsuarios.getAniversario( usuarioId );
  }
  ...
}
Vantagens
• Os testes de aceitação testam e dirigem o
  desenvolvimento
• Análise executável
• Análise sincronizada com o
  desenvolvimento
• Fácil perceber quais user stories foram
  implementadas ou não
Vantagens
• Meio de comunicação mais preciso
• Redução do gap entre clientes e
  desenvolvedores
• Evita explosão de funcionalidades não
  requisitadas pelos clientes
• Permite o cliente fazer parte do time de
  desenvolvimento
Um caso prático
• Dois sistemas em desenvolvimento
  – SisRTM (em operação)
  – SmartAction
• Desenvolvedores: alunos de graduação
  do 5°/6° período
• Práticas utilizadas
  – O desenvolvedor sempre conversa com o
    escritor do teste antes de iniciar a
    implementação
Um caso prático
• Resultados
  – Poucos bugs encontrados
    • Apenas três na lógica (em quatro meses de
      operação)
    • Demais na interface gráfica
  – Quando um bug é encontrado:
    • Comunicado ao escritor do teste
    • Um teste é escrito imediatamente para isolar o bug
      (TDD)
Big Chart (SisRTM)
BigChart (Smart Action)
Conclusões


Só atingimos qualidade devido
      aos nossos testes!
Obrigado pela atenção!




      www.smartiks.com

Mais conteúdo relacionado

Mais procurados

Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
guest23778e
 
Realizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitosRealizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitos
VIVIANE RANGEL
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
elliando dias
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de Código
Ricardo Terra
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas Web
Rodrigo Veiga
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
Qualister
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeter
Qualister
 
Taise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passosTaise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passos
minastestingconference
 
Coders on beer javascript de ponta a ponta
Coders on beer   javascript de ponta a pontaCoders on beer   javascript de ponta a ponta
Coders on beer javascript de ponta a ponta
Kirmayr tomaz
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
GUTS-RS
 
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
minastestingconference
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Edlaine Zamora
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
minastestingconference
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
Qualister
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword driven
Qualister
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnit
Qualister
 
Frameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoFrameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimento
Iago Santos Leão
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fim
Elias Nogueira
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Gabriela Patuci
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Jaqueline Ramos
 

Mais procurados (20)

Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
 
Realizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitosRealizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitos
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de Código
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas Web
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeter
 
Taise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passosTaise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passos
 
Coders on beer javascript de ponta a ponta
Coders on beer   javascript de ponta a pontaCoders on beer   javascript de ponta a ponta
Coders on beer javascript de ponta a ponta
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
 
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword driven
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnit
 
Frameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoFrameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimento
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fim
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
 

Destaque

Consultoria e fábrica de software vs2012
Consultoria e fábrica de software vs2012Consultoria e fábrica de software vs2012
Consultoria e fábrica de software vs2012
João Azevedo
 
Fábrica de Software - PSOffice Os Manager
Fábrica de Software  - PSOffice Os ManagerFábrica de Software  - PSOffice Os Manager
Fábrica de Software - PSOffice Os Manager
José Lopes dos Santos Neto
 
Métricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareMétricas Em Fabricas De Software
Métricas Em Fabricas De Software
Luiz Borba
 
20 fatos sobre uma fábrica de software
20 fatos sobre uma fábrica de software20 fatos sobre uma fábrica de software
20 fatos sobre uma fábrica de software
José Freire Neto
 
Fábrica de software a necessidade de adaptação da estrutura organizacional
Fábrica de software   a necessidade de adaptação da estrutura organizacionalFábrica de software   a necessidade de adaptação da estrutura organizacional
Fábrica de software a necessidade de adaptação da estrutura organizacional
Cristiane Xavier
 
[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...
[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...
[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...
Guilherme Motta
 
ASSEINFO - 2014 - Janela de Johari
ASSEINFO - 2014 - Janela de JohariASSEINFO - 2014 - Janela de Johari
ASSEINFO - 2014 - Janela de Johari
Cezinha Anjos
 
Processos de fábrica de software - MPS.BR + Lean
Processos de fábrica de software - MPS.BR + LeanProcessos de fábrica de software - MPS.BR + Lean
Processos de fábrica de software - MPS.BR + Lean
Vanderlei Sbaraini Amancio
 
Ri - Aula 8
Ri - Aula 8Ri - Aula 8
Ri - Aula 8
zeusi9iuto
 
Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...
Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...
Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...
Leonardo Molinari
 
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
barros_val
 
Fábrica de Software
Fábrica de SoftwareFábrica de Software
Fábrica de Software
Venki
 
Apresentação Fabrica de Software - Senac MS
Apresentação Fabrica de Software - Senac MSApresentação Fabrica de Software - Senac MS
Apresentação Fabrica de Software - Senac MS
Samuel Cavalcante
 
Janela de johari
Janela de johariJanela de johari
Janela de johari
mjsfaguiar
 
TDC2016POA | Trilha Dinamica - Conhecendo e criando novas Retrospectivas
TDC2016POA | Trilha Dinamica - Conhecendo e criando novas RetrospectivasTDC2016POA | Trilha Dinamica - Conhecendo e criando novas Retrospectivas
TDC2016POA | Trilha Dinamica - Conhecendo e criando novas Retrospectivas
tdc-globalcode
 
“No estimate” do jeito errado - LinguÁgil
“No estimate”  do jeito errado - LinguÁgil“No estimate”  do jeito errado - LinguÁgil
“No estimate” do jeito errado - LinguÁgil
Samuel Cavalcante
 
Curso sobre Gerenciamento de Fábrica de Software
Curso sobre Gerenciamento de Fábrica de SoftwareCurso sobre Gerenciamento de Fábrica de Software
Curso sobre Gerenciamento de Fábrica de Software
Ivan Luizio Magalhães
 

Destaque (17)

Consultoria e fábrica de software vs2012
Consultoria e fábrica de software vs2012Consultoria e fábrica de software vs2012
Consultoria e fábrica de software vs2012
 
Fábrica de Software - PSOffice Os Manager
Fábrica de Software  - PSOffice Os ManagerFábrica de Software  - PSOffice Os Manager
Fábrica de Software - PSOffice Os Manager
 
Métricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareMétricas Em Fabricas De Software
Métricas Em Fabricas De Software
 
20 fatos sobre uma fábrica de software
20 fatos sobre uma fábrica de software20 fatos sobre uma fábrica de software
20 fatos sobre uma fábrica de software
 
Fábrica de software a necessidade de adaptação da estrutura organizacional
Fábrica de software   a necessidade de adaptação da estrutura organizacionalFábrica de software   a necessidade de adaptação da estrutura organizacional
Fábrica de software a necessidade de adaptação da estrutura organizacional
 
[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...
[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...
[Caipira Ágil 2015] Dinâmicas para formação de equipes de desenvolvimento de ...
 
ASSEINFO - 2014 - Janela de Johari
ASSEINFO - 2014 - Janela de JohariASSEINFO - 2014 - Janela de Johari
ASSEINFO - 2014 - Janela de Johari
 
Processos de fábrica de software - MPS.BR + Lean
Processos de fábrica de software - MPS.BR + LeanProcessos de fábrica de software - MPS.BR + Lean
Processos de fábrica de software - MPS.BR + Lean
 
Ri - Aula 8
Ri - Aula 8Ri - Aula 8
Ri - Aula 8
 
Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...
Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...
Palestra - Claudia Hazan na Isma - Armadilhas em Contratos de Fábrica de Soft...
 
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
 
Fábrica de Software
Fábrica de SoftwareFábrica de Software
Fábrica de Software
 
Apresentação Fabrica de Software - Senac MS
Apresentação Fabrica de Software - Senac MSApresentação Fabrica de Software - Senac MS
Apresentação Fabrica de Software - Senac MS
 
Janela de johari
Janela de johariJanela de johari
Janela de johari
 
TDC2016POA | Trilha Dinamica - Conhecendo e criando novas Retrospectivas
TDC2016POA | Trilha Dinamica - Conhecendo e criando novas RetrospectivasTDC2016POA | Trilha Dinamica - Conhecendo e criando novas Retrospectivas
TDC2016POA | Trilha Dinamica - Conhecendo e criando novas Retrospectivas
 
“No estimate” do jeito errado - LinguÁgil
“No estimate”  do jeito errado - LinguÁgil“No estimate”  do jeito errado - LinguÁgil
“No estimate” do jeito errado - LinguÁgil
 
Curso sobre Gerenciamento de Fábrica de Software
Curso sobre Gerenciamento de Fábrica de SoftwareCurso sobre Gerenciamento de Fábrica de Software
Curso sobre Gerenciamento de Fábrica de Software
 

Semelhante a Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático

Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Daniel Wildt
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
Adriano Bertucci
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
Adriano Bertucci
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Wennder Santos
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Claudinei Brito Junior
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
minastestingconference
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
Samanta Cicilia
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018
Karla Silva
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
Bruno Zolotareff dos Santos
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018
Larissa Soares
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
HoctairBernardino
 
Aula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghkuAula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghku
MoniqueEstevo2
 
AppTesting
AppTestingAppTesting
AppTesting
lucyverde
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
Adriano Bertucci
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
elliando dias
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
Rafael Chaves
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
Messias Batista
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
Paulo César M Jeveaux
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Elias Nogueira
 

Semelhante a Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático (20)

Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Aula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghkuAula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghku
 
AppTesting
AppTestingAppTesting
AppTesting
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
Ragel talkRagel talk
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Rango
RangoRango
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático

  • 1. Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático Eloi Rocha Neto eloi.rocha@gmail.com www.smartiks.com
  • 2. Agenda • O que queremos? • Por que é tão difícil? • Como resolvemos ou amenizamos esses problemas? • Um caso prático • Conclusões
  • 3. O que queremos? • Produzir software de qualidade • Desenvolver software que atenda os requisitos do cliente • Garantir que o time de desenvolvimento está implementando o que foi especificado
  • 4. Por que é tão difícil? • Problemas de comunicação entre: – cliente e analistas – analistas e o time de desenvolvimento • Especificação obscura
  • 5. Como resolvemos ou amenizamos esses problemas? • Processo de desenvolvimento • Ferramenta EasyAccept • Vantagens
  • 6. Processo de desenvolvimento • As user stories são escritas na forma testes de aceitação executáveis • Um teste de aceitação consiste de um script que é processado pela ferramenta EasyAccept • Os testes de aceitação são enviados para o time de desenvolvimento • Uma user story só é finalizada quando seus testes estão passando
  • 7. EasyAccept Analistas juntamente com os clientes Façade Script 1 (teste de aceitação) Programa Script 2 (teste de aceitação)
  • 8. EasyAccept • Scripts acessam métodos da Façade • Asserções podem ser realizadas com os seguintes comandos: – expect – expectError – equalFiles id = criarUsuario nome=zeca aniversario=12/12/1979 expect zeca getNome usuario=${id} expect 12/12/1979 getAniversario usuario=${id} expectError “Usuário não existe!” getNome usuario=blahblah expectError “Data inválida!” criarUsuario nome=ze aniversario=12/a
  • 9. EasyAccept public class Facade { ... public String criarUsuario( String nome , String aniversario ) throws CadastroInvalidoException { return gerenciadorDeUsuarios.criarUsuario( nome , aniversario ); } public String getNome( String usuarioId ) throws UsuarioInexistenteException { return gerenciadorDeUsuarios.getNome( usuarioId ); } public String getAniversario( String usuarioId ) throws UsuarioInexistenteException { return gerenciadorDeUsuarios.getAniversario( usuarioId ); } ... }
  • 10. Vantagens • Os testes de aceitação testam e dirigem o desenvolvimento • Análise executável • Análise sincronizada com o desenvolvimento • Fácil perceber quais user stories foram implementadas ou não
  • 11. Vantagens • Meio de comunicação mais preciso • Redução do gap entre clientes e desenvolvedores • Evita explosão de funcionalidades não requisitadas pelos clientes • Permite o cliente fazer parte do time de desenvolvimento
  • 12. Um caso prático • Dois sistemas em desenvolvimento – SisRTM (em operação) – SmartAction • Desenvolvedores: alunos de graduação do 5°/6° período • Práticas utilizadas – O desenvolvedor sempre conversa com o escritor do teste antes de iniciar a implementação
  • 13. Um caso prático • Resultados – Poucos bugs encontrados • Apenas três na lógica (em quatro meses de operação) • Demais na interface gráfica – Quando um bug é encontrado: • Comunicado ao escritor do teste • Um teste é escrito imediatamente para isolar o bug (TDD)
  • 16. Conclusões Só atingimos qualidade devido aos nossos testes!
  • 17. Obrigado pela atenção! www.smartiks.com