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

             Eloi Rocha Neto
         ...
Agenda
• O que queremos?
• Por que é tão difícil?
• Como resolvemos ou amenizamos esses
  problemas?
• Um caso prático
• C...
O que queremos?
• Produzir software de qualidade
• Desenvolver software que atenda os
  requisitos do cliente
• Garantir q...
Por que é tão difícil?
• Problemas de comunicação entre:
  – cliente e analistas
  – analistas e o time de desenvolvimento...
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...
EasyAccept


       Analistas
   juntamente com
      os clientes                     Façade




       Script 1
(teste de...
EasyAccept
• Scripts acessam métodos da Façade
• Asserções podem ser realizadas com os
  seguintes comandos:
  – expect
  ...
EasyAccept
public class Facade {
  ...
  public String criarUsuario( String nome , String aniversario )
          throws C...
Vantagens
• Os testes de aceitação testam e dirigem o
  desenvolvimento
• Análise executável
• Análise sincronizada com o
...
Vantagens
• Meio de comunicação mais preciso
• Redução do gap entre clientes e
  desenvolvedores
• Evita explosão de funci...
Um caso prático
• Dois sistemas em desenvolvimento
  – SisRTM (em operação)
  – SmartAction
• Desenvolvedores: alunos de g...
Um caso prático
• Resultados
  – Poucos bugs encontrados
    • Apenas três na lógica (em quatro meses de
      operação)
 ...
Big Chart (SisRTM)
BigChart (Smart Action)
Conclusões


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




      www.smartiks.com
Upcoming SlideShare
Loading in …5
×

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

953 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
953
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 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. 2. Agenda • O que queremos? • Por que é tão difícil? • Como resolvemos ou amenizamos esses problemas? • Um caso prático • Conclusões
  3. 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. 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. 5. Como resolvemos ou amenizamos esses problemas? • Processo de desenvolvimento • Ferramenta EasyAccept • Vantagens
  6. 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. 7. EasyAccept Analistas juntamente com os clientes Façade Script 1 (teste de aceitação) Programa Script 2 (teste de aceitação)
  8. 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. 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. 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. 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. 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. 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)
  14. 14. Big Chart (SisRTM)
  15. 15. BigChart (Smart Action)
  16. 16. Conclusões Só atingimos qualidade devido aos nossos testes!
  17. 17. Obrigado pela atenção! www.smartiks.com

×