SlideShare uma empresa Scribd logo
1 de 50
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 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?
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
funcionando”
Menor envolvimento humano
humanos não são bons em tarefas repetitivas
humanos não executam a mesma tarefa
igualmente todas as vezes
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
executando testes
aprendem lógica de programação, ler
código, lógicas internas do sistema
Testando 24/7
quem executa os testes é uma máquina
execução de testes disponível a qualquer
momento
monitoramento da aplicação
Continuous Integration
automação de todas as etapas de teste é parte
fundamental da integração contínua
NO test automation, NO continuous integration
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 processo de testes
automação é um projeto de desenvolvimento
#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ências internas
não é possível automatizar o caos
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 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
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
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: '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
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 processo de teste faz com
que a automação venha naturalmente
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?

Mais conteúdo relacionado

Mais procurados

Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Robson Bittencourt
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumIsrael Santiago
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
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 defeitosVIVIANE RANGEL
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...Rodrigo Oliveira, Msc, PMP
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Robson Agapito Correa
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnitLeonardo Soares
 
Aexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tddAexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tddCarlos Santana
 

Mais procurados (20)

Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Testlink apresentacao
Testlink apresentacaoTestlink apresentacao
Testlink apresentacao
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
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
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.
 
J unit
J unitJ unit
J unit
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnit
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Aexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tddAexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tdd
 
JUnit
JUnitJUnit
JUnit
 
Junit
JunitJunit
Junit
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
Junit 4.0
Junit 4.0Junit 4.0
Junit 4.0
 

Semelhante a Por que automatizar testes de software?

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 ALMAdriano Bertucci
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e VerdadesElias Nogueira
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JSNàtali Cabral
 
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ínuaGabriela Patuci
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPriscila Coelho S. Blauth
 
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
 
T@rget trust t-curso de ferramentas para automação de teste de software
T@rget trust   t-curso de ferramentas para automação de teste de softwareT@rget trust   t-curso de ferramentas para automação de teste de software
T@rget trust t-curso de ferramentas para automação de teste de softwareTargettrust
 

Semelhante a Por que automatizar testes de software? (20)

TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
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
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 
Implantação de um Processo de Teste de Software
Implantação de um Processo de Teste de SoftwareImplantação de um Processo de Teste de Software
Implantação de um Processo de Teste de Software
 
Xamarin UI Test + BDD Specflow
Xamarin UI Test + BDD SpecflowXamarin UI Test + BDD Specflow
Xamarin UI Test + BDD Specflow
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
 
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
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
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?
 
T@rget trust t-curso de ferramentas para automação de teste de software
T@rget trust   t-curso de ferramentas para automação de teste de softwareT@rget trust   t-curso de ferramentas para automação de teste de software
T@rget trust t-curso de ferramentas para automação de teste de software
 

Por que automatizar testes de software?

Notas do Editor

  1. saudações assunto evidente é falado em todo evento de TI ainda é uma área que está engatinhando
  2. apresentação tcc e estágio em testes e automação dev há 5 anos 1 ano e meio de tray entrei pq me encaixava no perfil desenvolvedor/testador me tornei líder técnico no projeto de automação de testes provas de conceito, teste de ferramentas dev de casos de teste e ferramentas, treinamento da equipe essa palestra conta um pouco do que aprendemos
  3. aí vcs me perguntam “como assim…” “de que tipo de testes vc tá falando?” “a gente já faz TDD, já automatiza testes unit” “eu faço casos de teste no excel ainda” é uma ideia antiga...
  4. vamos voltar no tempo pra ver de onde vem essa ideia
  5. o modelo V é apresentado pela primeira vez divide os testes em etapas usado até hoje com variações
  6. já se automatizava testes unitários já se escrevia trechos de código para testar outros trechos de código
  7. ferramentas que automatizavam testes de interface de usuario mas de uma maneira ainda superficial
  8. por causa disso se popularizam os testes de regressão regressão é uma falha que aparece depois de uma modificação ela aparece em outra parte do sistema que já estava testada
  9. no TDD é essencial ter uma ferramenta de automação feedback precisa ser rápido
  10. estes testes se popularizam internet se populariza aplicações web ficam mais complexas
  11. integração continua é você estar entregando o sistema varias vezes ao dia em pequenas partes. você resolve uma falha ou adiciona uma funcionalidade e ela ja é testada e entregue entrega várias vezes ao dia automação não só dos testes mas como do processo todo contribui muito pra isso
  12. ferramenta mais utilizada na automação de testes automatiza os navegadores simulando um usuário humano real como se ele tivesse sentado em frente ao computador ações na aplicação são executadas a partir de scripts de teste possível automatizar testes funcionais e de aceitação em qualquer aplicação web porque eu to falando isso? porque apesar de ser uma ideia antiga, na prática é diferente como é na prática?
  13. 1- dev faz toda a análise e implementa a funcionalidade
  14. 2- ele escreve os testes unitários e ainda fala que faz TDD, mas pelo menos tem teste unitário.
  15. 3- dev avisa o tester que ele já terminou de implementar tester começa a testar a funcionalidade e...
  16. 4- testa manualmente abre o navegador preenche formulario verifica mensagem faz login clica no botão
  17. aí eu mudo a pergunta… alguns dizem que é complicado, trabalhoso, o código da automação é difícil de manter e desiste sendo que esses são os mesmos desafios de qualquer projeto de desenvolvimento de software automação traz benefícios e agrega valor e qualidade ao produto.
  18. então, quais são esses valores? quais são os benefícios que eu vou ter ao automatizar os testes?
  19. 1- melhora na detecção de regressões (falar o que é regressão) (falar da API do commerce)
  20. Portanto...
  21. Isso aumenta a confiabilidade da equipe no produto que ela desenvolve testes automatizados cobrem todo o sistema quando o teste é executado ele testa todo o sistema e não só a funcionalidade que está sendo desenvolvida atualmente assim a equipe tem a certeza de que não quebrou nada que já estava funcionando
  22. menor envolvimento humano em tarefas repetitivas humanos não são bons em tarefas repetitivas humanos não executam a mesma tarefa igualmente todas as vezes e execução de testes é uma tarefa repetitiva que tem que ser executada igualmente todas as vezes
  23. cansaço, stress e outras condições mentais e físicas podem mascarar falhas (falar do funcionário que quer ir embora logo na sexta-feira) um teste automatizado executa igualmente todas as vezes não existem julgamentos errados falhou é falha passou é sucesso nada além disso
  24. evolução intelectual da equipe de testes testers vão gastar mais tempo elaborando casos de teste melhores e desenvolvendo técnicas e estratégias de teste testers vão gastar menos tempo nas tarefas repetitivas de execução de casos de teste testers vão ter a oportunidade de aprender a programar, desenvolver, aprender a ler código, aprender as lógicas internas do sistema
  25. execução de testes disponível a qualquer hora quem executa os testes é uma máquina agendar de madrugada, domingo, feriado, qualquer horário testes funcionam como monitoramento do sistema (testes de performance na tray) (testes do fluxo de compra na tray)
  26. por fim, o desejo de todo time de desenvolvimento: integração contínua automação das etapas de teste é fundamental para se implantar a integração contínua sem automação de testes não existe integração contínua
  27. nesse 1 ano e meio ganhamos experiência ao automatizar testes acertamos em algumas coisas, estamos melhorando em outras tambem ouvimos muitas ideias diferentes sobre automação algumas são verdade, outras não são nessa parte eu vou mostrar pra vcs verdades e mitos sobre a automação
  28. primeira ideia dar uma caneta pra quem responder se é mito ou verdade essa afirmação
  29. equipe de testes que vai começar a fazer automação precisa de treinamento automatizador de testes tem o perfil de um desenvolvedor com habilidades de testador ele sabe planejar o desenvolvimento, fazer análise de requisitos, programar também tem conhecimento das técnicas de teste, das estratégias de teste de software a automação é um projeto de desenvolvimento completo, não é só aquela parte de um projeto onde são executados os testes tem que planejar o que vai ser desenvolvido, tem que ter versionamento de código tem que ter alguma forma de rastrear os defeitos do código de testes como um projeto normal
  30. segunda ideia dar uma caneta pra quem responder se é mito ou verdade essa afirmação
  31. automatizados não substituem manuais abordagens de testes diferentes que se reforçam mutuamente Um teste exploratório não é um candidato a automação no teste exploratório o testador experimenta novos caminhos no sistema, novas situações e pode descobrir novas condições que levam a novas falhas um teste automatizado é aquele que sempre testa a mesma coisa, é um caso de teste que já está mto bem definido
  32. terceira ideia dar uma caneta pra quem responder se é mito ou verdade essa afirmação testes quebradiços, falham toda hora, tão sempre vermelhos é verdade. mas calma! tem um lado ruim e um lado bom
  33. lado ruim falsos positivos uma falha que não é de fato uma falha facilmente mitigado seguindo boas práticas maturidade do projeto leva a identificação de falsos positivos e a melhoria dos casos de teste para eliminá-los
  34. lado bom pela assertividade precisa do teste automatizado, qualquer mínimo desvio do que você especificou como resultado esperado fica claramente evidente
  35. quarta ideia dar uma caneta pra quem responder se é mito ou verdade essa afirmação aqui tem duas questões
  36. 1- testabilidade capacidade de uma aplicação ser testada e eu vou mais longe ainda, é a capacidade dos casos de teste daquela aplicação serem automatizados pra automatizar os testes, o sistema tem que prover maneiras de coletar evidências internas das ações que você tá executando com os testes se o seu sistema tá um caos, ou seu processo de desenvolvimento e teste tá um caos, ou seus casos de teste tão um caos, tem que fazer uma faxina primeiro, pq não é possível automatizar o caos.
  37. 2- precisa automatizar tudo? tem coisa que não precisa a não ser que você tenha dinheiro e tempo infinitos, aí você automatiza tudo quando você não tem dinheiro e tempo infinitos o ideal é focar nas funcionalidades mais críticas a primeira coisa a ser automatizada são os testes daquela funcionalidade do seu sistema que faz você ganhar dinheiro e depois as outras funcionalidades menos críticas.
  38. quinta ideia dar uma caneta pra quem responder se é mito ou verdade essa afirmação é verdade. mas calma!
  39. automatizar testes é divertido! é um desafio que mantém a gente querendo aprender coisas novas e querendo sempre estar melhorando e evoluindo cada tester tem um perfil um tester não tem o perfil de desenvolvedor, mas ele tem um profundo conhecimento da aplicação a ser testada outro tester pode ser um excelente automatizador, mas ter só um conhecimento superficial da aplicação colocar os dois pra trabalharem juntos então tem espaço pra todo mundo!
  40. pra quem tem interesse em conhecer mais dessa área falar das ferramentas essas quatro são essenciais (explicar)
  41. BDD vem de behavior driven development ou desenvolvimento guiado por comportamento especificação do comportamento da sua funcionalidade utilizando uma linguagem que é comum entre todos os envolvidos (dev, teste, pessoal que não é desenvolvedor como o cliente) isso se torna uma especificação executável vc diz como seu sistema deve se comportar e depois executa essa especificação como forma de verificar e testar o sistema
  42. alguns exemplos praticamente toda linguagem já tem o seu framework BDD
  43. alguns exemplos de como é um caso de teste especificado nessas linguagens um exemplo do cucumber dar uma caneta pra quem dizer o que está sendo testado outro exemplo do rspec dar uma caneta pra quem dizer o que está sendo testado
  44. ferramenta mais utilizada para testes de aplicações web ele encontra elementos da interface do usuario e executa ações nesses elementos com ele podemos rodar testes em todos os navegadores testes mobile em android, iOS e windows phone e ele é uma biblioteca disponível em várias linguagens ruby, python, php, c++, etc
  45. padrão de projeto que foi desenvolvido junto com o selenium utilizando um padrão de projeto a gente melhora muito a manutenção do código do projeto e ele separa a lógica de acesso às funcionalidade da aplicação do fluxo de teste onde ficam os passos das ações a serem executadas
  46. cada página da aplicação é representada como uma classe no projeto em cada classe a gente define os elementos da página e as funcionalidades que aquela pagina provê isso melhora muito a manutenção do codigo porque a gente tem um mapeamento de todas as paginas da aplicação no nosso codigo de testes se os devs mudarem uma pagina da aplicação eu já sei exatamente onde mudar no codigo de teste explicar exemplo
  47. por fim servidor de integração contínua ele é quem constrói o ambiente para a sua aplicação e executa os testes pode ser uma execução agendada ou disparada por modificações no código exemplos
  48. pra concluir a automação não é uma solução mágica pra todos os problemas de qualidade. o caminho até a maturidade na automação pode ser longo e demorado. mas os beneficios valem a pena o importante é sempre manter o foco na evolução do processo de testes que assim a necessidade de automação vem naturalmente
  49. obrigado! agradecer tray agradecer univem agradecer platéia falar que a tray está contratando falar do tray labs perguntas?
  50. video da execução dos testes automatizados