Um Comparativo na Execução de Testes Manuais e
Testes de Aceitação Automatizados em uma
Aplicação Web
Simpósio Brasileiro ...
Agenda
 Introdução
 Terminologia e Conceitos Básicos
 Automatização de Teste
 Behavior-Driven Development (BDD)
 Cucu...
Introdução
 Qualidade
 Resultados
 Feedback rápido
 Evolução constante de tecnologias
Introdução
 Com a complexidade da tecnologia e
consequentemente das aplicações e com o
advento do ambiente cliente/servid...
Introdução
 Mas só tem eu para testar tudo isto....
Introdução
 Como manter a qualidade do software com tantos navegadores, sistemas
operacionais e dispositivos?
 Como obte...
Mas será que
apenas duas mãos
dessas resolvem?
Introdução
 A atividade de teste, se realizada manualmente, geralmente é propensa a
enganos e se restringe a aplicações d...
Introdução
 Então, quem poderá nos defender?
EU! O CHAPOLIN
COLORADO!
Automatização de Teste
 A automatização de testes se intensificou
com as práticas ágeis e se mostra eficaz
para melhorar ...
Automatização de Teste
 Reaproveitamento de cenários implementados
 Confiança em possíveis alterações no software
 Meno...
Behavior-Driven Development
(BDD)
 A técnica ágil Behavior-Driven
Development (BDD) busca melhorar o
entendimento do negó...
Behavior-Driven Development
(BDD)
 Possibilidade de testes automatizados
de aceitação
 Colaboração
 Entendimento do com...
Cucumber-JVM
 Cucumber-JVM é uma ferramenta open-source que executa testes
de aceitação escritos no estilo BDD.
 Cucumbe...
Selenium WebDriver
 Selenium WebDriver é uma ferramenta
open-source para automação de teste
de aplicações Web.
 Mais de ...
JUnit
 JUnit é um framework open-source, com
suporte a criação de testes automatizados
na linguagem de programação Java.
...
Estudo de Caso
 Comparar tempo de teste manual e Teste
automatizado de aceitação
AMBIENTES
REPETIÇÕES
NOTA: Um analista d...
Aplicação
 Para um Cliente ser válido, o
mesmo deve ter todos os
campos preenchidos,
Nome, E-mail e Endereço
exceto Histó...
Condução dos Testes
Relatório dos testes - Cucumber
Vídeo Exemplo de execução de
cenários automatizados
Resultados Obtidos
 Teste Manual
 20 casos de teste especificados
em aproximadamente 30
minutos.
 Execução em um ambien...
Resultados Obtidos
 1º Amostra
 3 Ambientes e 2 repetições, totalizando 120 casos de teste executados, o uso
de teste ma...
Resultados Obtidos
Lições aprendidas
 Funcionou bem
 Configuração/instalação do
ambiente é de baixo custo
tendo em vista o conhecimento
do ...
Lições aprendidas
 Precisa ser melhorado
 Paralelização da execução dos testes
devido os testes trabalharem com o
uso de...
Conclusões
 Vantagem a médio e longo prazo na execução dos testes
automatizados.
 Esforço extra inicial para realizar as...
Trabalhos Futuros
 Paralelização na execução dos testes
por meio dos testes automatizados de
aceitação.
 Estudo com a au...
Referências
 Rios, E.; Moreira, T. (2013). Teste de Software, Alta Books, 3º edição, 304 páginas.
 Sommerville, I. (2011...
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais e Testes de Aceitação Automatizados em uma Ap...
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais e Testes de Aceitação Automatizados em uma Ap...
Próximos SlideShares
Carregando em…5
×

Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais e Testes de Aceitação Automatizados em uma Aplicação Web

4.513 visualizações

Publicada em

Garantia da qualidade por meio de testes é essencial no processo de desenvolvimento de software. Entretanto, o alto custo da execução de testes manuais e o número cada vez maior de ambientes de testes web solicitados pelos clientes dificultam manter a qualidade do produto e cumprir o prazo estabelecido. Para solucionar este problema é proposto o uso da técnica Behavior-Driven Development em conjunto com Selenium WebDriver e JUnit. Este artigo apresenta um estudo de caso da técnica, relatando os ganhos obtidos como redução no esforço de execução de testes em uma aplicação web. Também são apresentadas as lições aprendidas do estudo de caso.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais e Testes de Aceitação Automatizados em uma Aplicação Web

  1. 1. Um Comparativo na Execução de Testes Manuais e Testes de Aceitação Automatizados em uma Aplicação Web Simpósio Brasileiro de Qualidade de Software – SBQS 2015 Centro Universitário do Norte Laureate International Universities – UNINORTE Vanilton de Souza Freire Pinheiro1, Natasha M. Costa Valentim2, Auri Marcelo Rizzo Vincenzi34 1Centro Universitário do Norte – Laureate International Universities (UNINORTE) Manaus – AM – Brasil 2Universidade Federal do Amazonas (UFAM), Manaus – Amazonas – Brasil 3Universidade Federal de Goiás (UFG), Instituto de Informática - Goiânia, GO – Brasil 4Universidade de São Paulo (USP), Instituto de Ciências Matemáticas e de Computação – São Carlos, SP – Brasil Manaus, AM 2015
  2. 2. Agenda  Introdução  Terminologia e Conceitos Básicos  Automatização de Teste  Behavior-Driven Development (BDD)  Cucumber-JVM  Selenium WebDriver  JUnit  Estudo de Caso  Objetivo  Aplicação  Condução dos testes  Resultados Obtidos  Lições Aprendidas  Conclusões e Trabalhos Futuros  Referências
  3. 3. Introdução  Qualidade  Resultados  Feedback rápido  Evolução constante de tecnologias
  4. 4. Introdução  Com a complexidade da tecnologia e consequentemente das aplicações e com o advento do ambiente cliente/servidor e posteriormente da web, partes dos sistemas (ou ele todo) se tornaram mais complexos de serem testados [Rios e Moreira 2013].
  5. 5. Introdução  Mas só tem eu para testar tudo isto....
  6. 6. Introdução  Como manter a qualidade do software com tantos navegadores, sistemas operacionais e dispositivos?  Como obter feedback rápido, qualidade e resultados? Verificação e Validação (V&V)
  7. 7. Mas será que apenas duas mãos dessas resolvem?
  8. 8. Introdução  A atividade de teste, se realizada manualmente, geralmente é propensa a enganos e se restringe a aplicações de pequeno porte [Domingues, 2002].  E se o bug passar.....
  9. 9. Introdução  Então, quem poderá nos defender? EU! O CHAPOLIN COLORADO!
  10. 10. Automatização de Teste  A automatização de testes se intensificou com as práticas ágeis e se mostra eficaz para melhorar a qualidade do software [Dustin et al., 2009].
  11. 11. Automatização de Teste  Reaproveitamento de cenários implementados  Confiança em possíveis alterações no software  Menos esforço de testes manuais  Prevenção de defeitos
  12. 12. Behavior-Driven Development (BDD)  A técnica ágil Behavior-Driven Development (BDD) busca melhorar o entendimento do negócio descrevendo cenários por meio da linguagem Gherkin, ou seja, tornando-a ubíqua e compreensível a todos envolvidos no projeto [North, 2006]. Contexto inicial Evento ocorrido Resultado esperado
  13. 13. Behavior-Driven Development (BDD)  Possibilidade de testes automatizados de aceitação  Colaboração  Entendimento do comportamento do Software  Diminuição de incidência de falhas  Redução de retrabalho decorrentes de incompreensão das regras de negócio.  Documentação bem detalhada e de fácil manutençãoBehavior-Driven Development (BDD)
  14. 14. Cucumber-JVM  Cucumber-JVM é uma ferramenta open-source que executa testes de aceitação escritos no estilo BDD.  Cucumber-JVM é uma transcrição em JAVA do Cucumber escrito inicialmente em Ruby.  A linguagem que o Cucumber entende é chamada de Gherkin .  A Intenção da ferramenta é apoiar o BDD.  Auxilia no desenvolvimento de fora para dentro.  Usada para construir código de teste.
  15. 15. Selenium WebDriver  Selenium WebDriver é uma ferramenta open-source para automação de teste de aplicações Web.  Mais de 10 anos de desenvolvimento;  Vasta documentação  Comunidade Ativa
  16. 16. JUnit  JUnit é um framework open-source, com suporte a criação de testes automatizados na linguagem de programação Java.  Amplamente utilizado pela comunidade de desenvolvimento  Vasta Documentação  Interface gráfica intuitiva  Fácil feedback do status do teste
  17. 17. Estudo de Caso  Comparar tempo de teste manual e Teste automatizado de aceitação AMBIENTES REPETIÇÕES NOTA: Um analista de teste com formação em Ciência da Computação e 3 anos de experiência na construção de casos de teste estava envolvido no projeto realizando a especificação, implementação e execução de todos os testes deste estudo de caso.
  18. 18. Aplicação  Para um Cliente ser válido, o mesmo deve ter todos os campos preenchidos, Nome, E-mail e Endereço exceto Histórico.  Para um Serviço ser válido deve possuir Descrição e Valor.  Para um Recibo ser válido deve possuir Data, Nome do serviço e Nome do Cliente.  A aplicação deve ser executada nos navegadores Chrome, Firefox, Internet Explorer, Opera e Safari nas suas versões mais atuais. Critérios de Aceitação
  19. 19. Condução dos Testes
  20. 20. Relatório dos testes - Cucumber
  21. 21. Vídeo Exemplo de execução de cenários automatizados
  22. 22. Resultados Obtidos  Teste Manual  20 casos de teste especificados em aproximadamente 30 minutos.  Execução em um ambiente de aproximadamente 5 minutos.  Tempo total gasto: 35 minutos aproximadamente.  Teste Automatizado  20 casos de teste especificados/Implementados em aproximadamente 100 minutos.  Execução em um ambiente de aproximadamente 2 minutos.  Tempo total gasto: 102 minutos aproximadamente.  Assumindo as seguintes constantes:
  23. 23. Resultados Obtidos  1º Amostra  3 Ambientes e 2 repetições, totalizando 120 casos de teste executados, o uso de teste manual e especificação por script demostrou ser 46% mais eficiente em termos de tempo de execução em relação aos testes automatizados.  2º Amostra  5 Ambientes e 10 repetições de testes, totalizando 1000 casos de teste executados, é observado um ganho de 29% no custo da execução utilizando a automatização de testes de aceitação frente aos testes manuais.
  24. 24. Resultados Obtidos
  25. 25. Lições aprendidas  Funcionou bem  Configuração/instalação do ambiente é de baixo custo tendo em vista o conhecimento do analista de teste.  Reaproveitamento por meio da definição de elementos genéricos.  Rastreabilidade dos scripts de teste
  26. 26. Lições aprendidas  Precisa ser melhorado  Paralelização da execução dos testes devido os testes trabalharem com o uso de apenas um banco de dados  Atualizações dos navegadores
  27. 27. Conclusões  Vantagem a médio e longo prazo na execução dos testes automatizados.  Esforço extra inicial para realizar as tarefas de implementação dos scripts.  Automatização é muito importante para ambientes multiplataformas.  Cumprimento de prazos.  Redução de esforço manual.  Desenvolvimento participativo através da técnica BDD.  Satisfação do cliente e usuários finais.
  28. 28. Trabalhos Futuros  Paralelização na execução dos testes por meio dos testes automatizados de aceitação.  Estudo com a automatização dos testes de aceitação no contexto de Integração Contínua.
  29. 29. Referências  Rios, E.; Moreira, T. (2013). Teste de Software, Alta Books, 3º edição, 304 páginas.  Sommerville, I. (2011). Engenharia de Software, Pearson Education, Inc., 9º edição, 773 páginas.  Domingues, A. L. S. (2002). Avaliação de critérios e ferramentas de teste para programas OO. Master’s thesis, ICMC/USP, São Carlos/SP - Brasil.  Dustin, E.; Garrett, T.; Gauf, B. (2009). Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality. Addison-Wesley Professional, 368 páginas.  Chiavegatto, R.; Silva, L.; Pinheiro, M.; Vincenzi, A. M. R. (2014) Automatização de testes funcionais em dispositivos móveis utilizando a técnica BDD -- Relato de Experiência VIII Brazilian Workshop on Systematic and Automated Software Testing -- SAST'2014, SBC, pp. 107-112  North, D. (2006). Introducing BDD. Disponível em: <http:// http://dannorth.net/introducing-bdd/>. Acessado em 28.03.2015.

×