Por que automatizar
testes de software?
Samuel Lourenço
Bacharel em Ciência da Computação
Universidade Estadual de Londrina (UEL)
Analista de Automação de Teste d...
Mas como assim?
automação de testes de software?
é uma ideia muito antiga...
...
1980
1980
já se fazia automação de testes unitários
1990
ferramentas de gravação / reprodução
1990
testes de regressão se tornam populares
1995
Test Driven Development
Automação!
1995
testes exploratórios
testes de performance
testes para aplicações web
2000
Agile Manifesto & Continuous Integration
2005
Selenium WebDriver
Test Code Browser
Mas como é na prática?
1- programador implementa a funcionalidade
Mas como é na prática?
2- programador escreve os testes unitários
Mas como é na prática?
3- tester começa a testar a funcionalidade e...
Mas como é na prática?
4- testa MANUALMENTE!
Mudando a pergunta...
Por que, então, NÃO automatizar estes testes
de software?
Respondendo...
Quais são valores agregados?
Regressão
regressão é uma nova falha introduzida em
uma funcionalidade (que já foi testada e
aprovada) por uma modificação
Regressão
com uma suite de testes automatizados é
muito mais fácil e rápido detectar regressões
Confiabilidade
cobertura de testes em todo o sistema
não só na funcionalidade atual
“não quebramos nada que já estava
func...
Menor envolvimento humano
humanos não são bons em tarefas repetitivas
humanos não executam a mesma tarefa
igualmente todas...
Menor envolvimento humano
stress e cansaço mascaram falhas
com automação o teste é executado
igualmente todas as vezes
Evolução da equipe de testes
testers dedicam mais tempo para
elaborar casos de teste melhores
testers gastam menos tempo
e...
Testando 24/7
quem executa os testes é uma máquina
execução de testes disponível a qualquer
momento
monitoramento da aplic...
Continuous Integration
automação de todas as etapas de teste é parte
fundamental da integração contínua
NO test automation...
Verdades e Mitos!
#1
“é só colocar um dev pra programar uns testes aí”
Precisa de treinamento!
treinamento da equipe de testes
desenvolver habilidades de dev e de tester
automação não é um proc...
#2
“nunca mais vamos executar testes manuais!”
Ambos vão existir
testes automatizados
não substituem
testes manuais
abordagens diferentes que se reforçam
#3
“esses testes aí são quebradiços!”
Lado ruim
falsos positivos
mas há como mitigar utilizando boas práticas
Lado bom
qualquer mínimo desvio da especificação fica
claramente evidente
#4
“dá pra automatizar tudo, TUDO!”
Testabilidade
capacidade de uma aplicação ser testada
capacidade dos testes serem automatizados
maneiras de coletar evidên...
Precisa automatizar tudo?
foco nas funcionalidades mais críticas
automação
desnecessária
#5
“mas eu virei tester porque não gosto de
programar e agora vou ter que aprender...”
Mas calma!
é divertido!
é um desafio para sempre estarmos
aprendendo e melhorando
Ferramentas
Framework BDD
Selenium Webdriver
Page Objects
Continuous Integration Server
Framework BDD
Behavior Driven Development
linguagem comum de especificação de
funcionalidades
documentação executável
Framework BDD
RSpec (ruby)
Cucumber (ruby, Gherkin)
Jasmine (javascript)
Behat (php)
Framework BDD
Cucumber (Gherkin)
Funcionalidade: Cálculo do valor do IR
Para quanto vou pagar de imposto
Enquanto contribu...
Selenium WebDriver
encontra elementos na página e executa ações
testes web em todos os navegadores
testes mobile (android,...
Page Objects
padrão de projeto
melhor manutenção do código
separa lógica de acesso do fluxo de teste
Page Objects
uma página = uma classe
class LoginPage
text_field :email_login, id: 'email'
text_field :senha_login, id: 'pa...
Continuous Integration Server
Jenkins
Hudson
TravisCI
Concluindo...
automação não é a solução mágica para todos
os problemas de qualidade, mas vale a pena
foco na evolução do p...
github.com/samuel-hcl
samuel.hcl@gmail.com
slourenco@tray.com.br
linkedin.com/in/samuellourenco
fb.com/sammm_hcl
Obrigado!
Por que automatizar testes de software?
Próximos SlideShares
Carregando em…5
×

Por que automatizar testes de software?

597 visualizações

Publicada em

Apresentação realizada na VIII Semana de Tecnologia da Informação, na UNIVEM, Marília - 09/09/2015

no gif support, so sad... =(

Publicada em: Software
  • Seja o primeiro a comentar

Por que automatizar testes de software?

  1. 1. Por que automatizar testes de software?
  2. 2. Samuel Lourenço Bacharel em Ciência da Computação Universidade Estadual de Londrina (UEL) Analista de Automação de Teste de Software github.com/samuel-hcl samuel.hcl@gmail.com slourenco@tray.com.br linkedin.com/in/samuellourenco fb.com/sammm_hcl Quem sou eu?
  3. 3. Mas como assim? automação de testes de software? é uma ideia muito antiga...
  4. 4. ...
  5. 5. 1980
  6. 6. 1980 já se fazia automação de testes unitários
  7. 7. 1990 ferramentas de gravação / reprodução
  8. 8. 1990 testes de regressão se tornam populares
  9. 9. 1995 Test Driven Development Automação!
  10. 10. 1995 testes exploratórios testes de performance testes para aplicações web
  11. 11. 2000 Agile Manifesto & Continuous Integration
  12. 12. 2005 Selenium WebDriver Test Code Browser
  13. 13. Mas como é na prática? 1- programador implementa a funcionalidade
  14. 14. Mas como é na prática? 2- programador escreve os testes unitários
  15. 15. Mas como é na prática? 3- tester começa a testar a funcionalidade e...
  16. 16. Mas como é na prática? 4- testa MANUALMENTE!
  17. 17. Mudando a pergunta... Por que, então, NÃO automatizar estes testes de software?
  18. 18. Respondendo... Quais são valores agregados?
  19. 19. Regressão regressão é uma nova falha introduzida em uma funcionalidade (que já foi testada e aprovada) por uma modificação
  20. 20. Regressão com uma suite de testes automatizados é muito mais fácil e rápido detectar regressões
  21. 21. Confiabilidade cobertura de testes em todo o sistema não só na funcionalidade atual “não quebramos nada que já estava funcionando”
  22. 22. Menor envolvimento humano humanos não são bons em tarefas repetitivas humanos não executam a mesma tarefa igualmente todas as vezes
  23. 23. Menor envolvimento humano stress e cansaço mascaram falhas com automação o teste é executado igualmente todas as vezes
  24. 24. Evolução da equipe de testes testers dedicam mais tempo para elaborar casos de teste melhores testers gastam menos tempo executando testes aprendem lógica de programação, ler código, lógicas internas do sistema
  25. 25. Testando 24/7 quem executa os testes é uma máquina execução de testes disponível a qualquer momento monitoramento da aplicação
  26. 26. Continuous Integration automação de todas as etapas de teste é parte fundamental da integração contínua NO test automation, NO continuous integration
  27. 27. Verdades e Mitos!
  28. 28. #1 “é só colocar um dev pra programar uns testes aí”
  29. 29. Precisa de treinamento! treinamento da equipe de testes desenvolver habilidades de dev e de tester automação não é um processo de testes automação é um projeto de desenvolvimento
  30. 30. #2 “nunca mais vamos executar testes manuais!”
  31. 31. Ambos vão existir testes automatizados não substituem testes manuais abordagens diferentes que se reforçam
  32. 32. #3 “esses testes aí são quebradiços!”
  33. 33. Lado ruim falsos positivos mas há como mitigar utilizando boas práticas
  34. 34. Lado bom qualquer mínimo desvio da especificação fica claramente evidente
  35. 35. #4 “dá pra automatizar tudo, TUDO!”
  36. 36. Testabilidade capacidade de uma aplicação ser testada capacidade dos testes serem automatizados maneiras de coletar evidências internas não é possível automatizar o caos
  37. 37. Precisa automatizar tudo? foco nas funcionalidades mais críticas automação desnecessária
  38. 38. #5 “mas eu virei tester porque não gosto de programar e agora vou ter que aprender...”
  39. 39. Mas calma! é divertido! é um desafio para sempre estarmos aprendendo e melhorando
  40. 40. Ferramentas Framework BDD Selenium Webdriver Page Objects Continuous Integration Server
  41. 41. Framework BDD Behavior Driven Development linguagem comum de especificação de funcionalidades documentação executável
  42. 42. Framework BDD RSpec (ruby) Cucumber (ruby, Gherkin) Jasmine (javascript) Behat (php)
  43. 43. Framework BDD Cucumber (Gherkin) Funcionalidade: Cálculo do valor do IR Para quanto vou pagar de imposto Enquanto contribuinte Eu gostaria de calcular o IR Cenário: Salário de 100 reais fica isento Dado que estou na página IR E preencho o campo 'salario' com o valor 100.00 Quando clico em Calcular Então vejo 'O resultado é 0.00' RSpec describe Calculator do it 'adds two numbers' do result = Calculator.add 1, 2 expect(result).to equal 3 end it 'multiplies two numbers' do result = Calculator.multiply 2, 3 expect(result).to equal 6 end end
  44. 44. Selenium WebDriver encontra elementos na página e executa ações testes web em todos os navegadores testes mobile (android, iOS, windows phone) disponível na linguagem de sua preferência
  45. 45. Page Objects padrão de projeto melhor manutenção do código separa lógica de acesso do fluxo de teste
  46. 46. Page Objects uma página = uma classe class LoginPage text_field :email_login, id: 'email' text_field :senha_login, id: 'password' button :clicar_botao_login, id: 'login' def efetuar_login(email, senha) self.email_login = email self.senha_login = senha clicar_botao_login end end
  47. 47. Continuous Integration Server Jenkins Hudson TravisCI
  48. 48. Concluindo... automação não é a solução mágica para todos os problemas de qualidade, mas vale a pena foco na evolução do processo de teste faz com que a automação venha naturalmente
  49. 49. github.com/samuel-hcl samuel.hcl@gmail.com slourenco@tray.com.br linkedin.com/in/samuellourenco fb.com/sammm_hcl Obrigado!

×