SlideShare uma empresa Scribd logo
1 de 29
ARQUITETURA PARA AUTOMAÇÃO
DE TESTE DE SOFTWARE

Em quais pontos pensar quando
automatizamos funcionalmente os testes de
uma aplicação?
O que é Arquitetura de
Automação de Teste
pra mim?


                     2
Automação sem uma
    arquitetura
     é pobre!



                    3
Olha, eu automatizo!!!

Gravar um script através do Record and Play

Alterar o script em cada execução

Analisar o resultado em tela após e execução do script

Talvez documentar a execução

Talvez documentar um erro encontrado

Reexecutar o script


                                                   4
Automatiza mesmo???

[Humano] Gravar um script através do Record and Play

[Humano] Alterar o script em cada execução

[Humano] Analisar o resultado em tela após e execução do script

[Humano] Talvez documentar a execução

[Humano] Talvez documentar um erro encontrado

[Humano] Reexecutar o script


                                                            5
Automação por record
     and play...

Você está fazendo isso
       errado!
                         6
A automação deve ser
rápida...
... e o mais rápido que puder!



                            7
Porque???

É um dos maiores ganhos que temos com a automação


Em automação funcional não precisamos de think time!




                                                       8
Evite!!!

Evite usar mecanismos de pausas implícitas (bare
sleeps)

       Preencher o campo de usuário e senha
       Clicar no botão Login
       Esperar por 30 segundos
       Clicar no link Relatórios




                                              9
Use!

Use mecanismos nativos para esperas (callback or
polling)

    Preencher o campo de usuário e senha
    Clicar no botão Login
    Esperar pelo carregamento da página
       carregou?
          não: espere mais 1 segundo
          sim: continue
    Clicar no link Relatórios



                                            10
Gerenciar os erros (ou possíveis
erros)
é essencial!



                              11
Como analisar e tratar os erros?




                                   12
Mecanismos


Geração de arquivos de logs

Utilização de mecanismos da própria linguagem de programação
    • raise-rescue    Ruby
    • try-cath        Java/C#
    • try-except      Phyton


Uso de alguma ferramenta



                                                               13
14
Programe!




            15
Programe!

Fica esperto se ocorrer algum erro
    Carregar dados do arquivo externo
    Clicar sobre o link Cadastro
        Enquanto existir dados no arquivo externo
            Preencher Nome: <nome>
            Preencher CPF: <CPF>
            Clicar no botão OK
            Validar mensagem apresentada <mensagem>
            Clicar no link Voltar
Deu erro? Fu....
   Se erro for Não encontrou campo
        Tente novamente
    Se erro for Registro não chegou
        Tente carregar o registro novamente
    Se erro foi qualquer outro
        Gere um arquivo de log
Finalize
    Gere o relatório de evidência
                                                      16
Programe!

try {
     ArrayList dados = CarregaDados.carrega(C:massaDados.xls);
     driver.findElement(By.visibleText(“cadastro”)).click();
         for (int i = 0; i < dados.size() ; i++) {
             driver.findElement(By.id(“nome”)).sendKeys(dados[i]);
             driver.findElement(By.id(“cpf”)).sendKeys(dados[i+1]);
             driver.findElement(By.id(“ok”)).click();
             Assert.assertEquals(“Sucesso!”, alert.getAlert());
             Driver.findElement(By.visibleText(“Voltar”)).click();
         }
catch (ElementNotFound enf) {}
catch (DataNotFound dnf) {}
catch (Exception e) {}
finally {
     Report.geraEvidencia();
}
                                                                 17
Data Driven Testing!




                       18
Como executamos testes com dados?

Cenário de Teste: efetue transferências entre contas do mesmo
banco

Caso de Teste: Efetuar transferência de conta corrente para conta
corrente
 Passo                            Resultado Esperado

Clicar sobre o link “Transferência entre contas”   Apresentar tela de Transferência com os dados
                                                   básicos do usuário apresentados:
                                                        •   Agencia: 1234
                                                        •   Nome: Fulano da Silva
Preencher os seguintes campos e clicar em          Apresentar nova tela com os seguintes dados:
“Transferir”
                                                        •   Mensagem: Saldo Suficiente para
     •   Minha Conta: 98765-1                               transferir
     •   Agencia creditada: 7489                        •   Para: Ciclano Souza
     •   Conta Creditada: 361029-5                      •   Valor (R$): 400.00
     •   Retirar da: Poupança

Clicar•no Valor (R$): 400.00
          botão “Efetivar”                         Apresentar nova tela com a mensagem:
                                                   “Transferência efetuada com sucesso”
                                                                                                   19
Script?

Clicar sobre o link “Transferência entre contas”
Validar Agencia: 1234
Validar Nome: Fulano da Silva
Preencher Minha Conta: 98765-1
Preencher Agencia creditada: 7489
Preencher Conta Creditada: 361029-5
Preencher Retirar da: Poupança
Preencher Valor (R$): 400.00
Clicar em Transferir
Validar Mensagem: Saldo suficiente para transferir
Validar Para: Ciclano Souza
Validar Valor (R$): 400.00
Clicar em Efetivar
Validar mensagem: Transferência efetuada com sucesso


                                                       20
Não mantenha dados
fixos em casos/scripts
de teste... NUNCA!


                        21
Nunca crie N Casos de
Teste “diferentes”
somente para mudança
dos dados!

                        22
Script Data Driven

Carrega arquivo dados.csv
Enquanto existir dados no arquivo
   Clicar sobre o link “Transferência entre contas”
   Validar Agencia: <agencia>
   Validar Nome: <nome cliente>
   Preencher Minha Conta: <minha_conta>
   Preencher Agencia creditada: <agencia_cred>
   Preencher Conta Creditada: <conta_cred>
   Preencher Retirar da: <retirar_da>
   Preencher Valor (R$): <valor_retirada>
   Clicar em Transferir
   Validar Mensagem: <mensagem>
   Validar Para: <favorecido>
   Validar Valor (R$): <valor_retirada>
   Clicar em Efetivar
   Validar mensagem: <mensagem_sucesso>
                                                      23
Gerar relatórios é essencial!




                                24
Quais relatórios gerar?

High-Level
  •   Relatório Sumarizado do Teste
  •   Relatório individual de execução

Low-Level
  •   Relatório de Evidências de Teste
  •   Relatório das validações de cada Teste




                                               25
Como gerar?

Funcionalidade existente dentro da própria
ferramenta

Ferramentas externas

Desenvolver sua própria engine de relatórios




                                               26
Defina uma estratégia para
execução




                            27
Como?




        28
@eliasnogueira

http://about.me/eliasnogueira

http://slideshare.net/elias.nogueira




                                       29

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Katalon Studio - Successful Test Automation for both Testers and Developers
Katalon Studio - Successful Test Automation for both Testers and DevelopersKatalon Studio - Successful Test Automation for both Testers and Developers
Katalon Studio - Successful Test Automation for both Testers and Developers
 
Cross browser testing
Cross browser testingCross browser testing
Cross browser testing
 
Jira as a Tool for Test Management
Jira as a Tool for Test ManagementJira as a Tool for Test Management
Jira as a Tool for Test Management
 
Cross browser testing using BrowserStack
Cross browser testing using BrowserStack Cross browser testing using BrowserStack
Cross browser testing using BrowserStack
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
 
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...
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssured
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
Xray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA processXray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA process
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
 
Katalon Studio - GUI Overview
Katalon Studio - GUI OverviewKatalon Studio - GUI Overview
Katalon Studio - GUI Overview
 
New trends in testing automation
New trends in testing automationNew trends in testing automation
New trends in testing automation
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 

Destaque

Destaque (20)

Como tornar o testador parte da equipe
Como tornar o testador parte da equipeComo tornar o testador parte da equipe
Como tornar o testador parte da equipe
 
Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014
 
Testes Funcionais em um ALM Open Source - TDC 2012 SP
Testes Funcionais em um ALM Open Source - TDC 2012 SPTestes Funcionais em um ALM Open Source - TDC 2012 SP
Testes Funcionais em um ALM Open Source - TDC 2012 SP
 
Abertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 GoiåniaAbertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 Goiånia
 
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
 
Automação no Processo de Teste
Automação no Processo de TesteAutomação no Processo de Teste
Automação no Processo de Teste
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testar
 
Como se tornar Agile Tester
Como se tornar Agile TesterComo se tornar Agile Tester
Como se tornar Agile Tester
 
Testes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP LabsTestes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP Labs
 
Automação de Teste não é um bicho de 7 cabeças
Automação de Teste não é um bicho de 7 cabeçasAutomação de Teste não é um bicho de 7 cabeças
Automação de Teste não é um bicho de 7 cabeças
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
 
Testes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e BlazemeterTestes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e Blazemeter
 
Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem prática
 
Palestra ALATS SP - FIAP Teste de Software
Palestra ALATS SP - FIAP  Teste de SoftwarePalestra ALATS SP - FIAP  Teste de Software
Palestra ALATS SP - FIAP Teste de Software
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e grid
 
A importância dos Testes no Devops
A importância dos Testes no DevopsA importância dos Testes no Devops
A importância dos Testes no Devops
 
Teste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoTeste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercado
 
Reconhecendo suas habilidades como Testador
Reconhecendo suas habilidades como Testador Reconhecendo suas habilidades como Testador
Reconhecendo suas habilidades como Testador
 
Automação em Wearables para Android
Automação em Wearables para AndroidAutomação em Wearables para Android
Automação em Wearables para Android
 
Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010
 

Semelhante a Arquitetura de Automação de Teste

Forca de Digital & RPA
Forca de Digital & RPAForca de Digital & RPA
Forca de Digital & RPA
Eduardo Britto
 
Roteiro certificado-aplicaçao-iis(win 2000) v4
Roteiro certificado-aplicaçao-iis(win 2000) v4Roteiro certificado-aplicaçao-iis(win 2000) v4
Roteiro certificado-aplicaçao-iis(win 2000) v4
Fábio Junior
 
Cópia de manual da plataforma oficial - para clientes finais
Cópia de manual da plataforma   oficial - para clientes finaisCópia de manual da plataforma   oficial - para clientes finais
Cópia de manual da plataforma oficial - para clientes finais
SimoneBrito43
 
Cópia de manual da plataforma oficial - para clientes finais
Cópia de manual da plataforma   oficial - para clientes finaisCópia de manual da plataforma   oficial - para clientes finais
Cópia de manual da plataforma oficial - para clientes finais
itatianechaveschaves
 
Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso práticoDesenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático
elliando dias
 

Semelhante a Arquitetura de Automação de Teste (20)

Express checkout PayPal
Express checkout PayPalExpress checkout PayPal
Express checkout PayPal
 
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
 
Ns tutorial so
Ns tutorial soNs tutorial so
Ns tutorial so
 
Forca de Digital & RPA
Forca de Digital & RPAForca de Digital & RPA
Forca de Digital & RPA
 
Entrega Contínua - do Zero ao Sucesso
Entrega Contínua - do Zero ao SucessoEntrega Contínua - do Zero ao Sucesso
Entrega Contínua - do Zero ao Sucesso
 
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
O Impacto das Capacidades Robóticas - Adoção da Força de Trabalho Digital (RPA)
 
Manual de instalação de https no iis7 1
Manual de instalação de https no iis7   1Manual de instalação de https no iis7   1
Manual de instalação de https no iis7 1
 
Roteiro certificado-aplicaçao-iis(win 2000) v4
Roteiro certificado-aplicaçao-iis(win 2000) v4Roteiro certificado-aplicaçao-iis(win 2000) v4
Roteiro certificado-aplicaçao-iis(win 2000) v4
 
Roteiro certificado-aplicaçao-iis(win 2000) v4
Roteiro certificado-aplicaçao-iis(win 2000) v4Roteiro certificado-aplicaçao-iis(win 2000) v4
Roteiro certificado-aplicaçao-iis(win 2000) v4
 
Cópia de manual da plataforma oficial - para clientes finais
Cópia de manual da plataforma   oficial - para clientes finaisCópia de manual da plataforma   oficial - para clientes finais
Cópia de manual da plataforma oficial - para clientes finais
 
Cópia de manual da plataforma oficial - para clientes finais
Cópia de manual da plataforma   oficial - para clientes finaisCópia de manual da plataforma   oficial - para clientes finais
Cópia de manual da plataforma oficial - para clientes finais
 
[slides] CMMI (2011: 1º semestre)
[slides] CMMI (2011: 1º semestre)[slides] CMMI (2011: 1º semestre)
[slides] CMMI (2011: 1º semestre)
 
Manual GESP - Gestão Eletrônica de Segurança Privada
Manual GESP - Gestão Eletrônica de Segurança PrivadaManual GESP - Gestão Eletrônica de Segurança Privada
Manual GESP - Gestão Eletrônica de Segurança Privada
 
Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso práticoDesenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático
 
Slide 05 implementando o login , logout e flash data
Slide 05   implementando o login , logout e flash dataSlide 05   implementando o login , logout e flash data
Slide 05 implementando o login , logout e flash data
 
Cópia 2 de manual da plataforma
Cópia 2 de manual da plataformaCópia 2 de manual da plataforma
Cópia 2 de manual da plataforma
 
Manual do desenvolvedor 1.5.5
Manual do desenvolvedor 1.5.5Manual do desenvolvedor 1.5.5
Manual do desenvolvedor 1.5.5
 
Fiaa encerramento anual do ativo imobilizado
Fiaa   encerramento anual do ativo imobilizadoFiaa   encerramento anual do ativo imobilizado
Fiaa encerramento anual do ativo imobilizado
 
Fiaa encerramento anual do ativo imobilizado
Fiaa   encerramento anual do ativo imobilizadoFiaa   encerramento anual do ativo imobilizado
Fiaa encerramento anual do ativo imobilizado
 
Start Up Guide 2017
Start Up Guide 2017Start Up Guide 2017
Start Up Guide 2017
 

Mais de Elias Nogueira

Mais de Elias Nogueira (20)

API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de API
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o time
 
O Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnico
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
BDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum Gathering
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - Tests
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de Testes
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com Appium
 
Como ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaComo ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnica
 
Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?
 
Tem que testar mesmo?
Tem que testar mesmo?Tem que testar mesmo?
Tem que testar mesmo?
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
Coaching the Agile Coach
Coaching the Agile CoachCoaching the Agile Coach
Coaching the Agile Coach
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 

Último

Último (9)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Arquitetura de Automação de Teste

  • 1. ARQUITETURA PARA AUTOMAÇÃO DE TESTE DE SOFTWARE Em quais pontos pensar quando automatizamos funcionalmente os testes de uma aplicação?
  • 2. O que é Arquitetura de Automação de Teste pra mim? 2
  • 3. Automação sem uma arquitetura é pobre! 3
  • 4. Olha, eu automatizo!!! Gravar um script através do Record and Play Alterar o script em cada execução Analisar o resultado em tela após e execução do script Talvez documentar a execução Talvez documentar um erro encontrado Reexecutar o script 4
  • 5. Automatiza mesmo??? [Humano] Gravar um script através do Record and Play [Humano] Alterar o script em cada execução [Humano] Analisar o resultado em tela após e execução do script [Humano] Talvez documentar a execução [Humano] Talvez documentar um erro encontrado [Humano] Reexecutar o script 5
  • 6. Automação por record and play... Você está fazendo isso errado! 6
  • 7. A automação deve ser rápida... ... e o mais rápido que puder! 7
  • 8. Porque??? É um dos maiores ganhos que temos com a automação Em automação funcional não precisamos de think time! 8
  • 9. Evite!!! Evite usar mecanismos de pausas implícitas (bare sleeps) Preencher o campo de usuário e senha Clicar no botão Login Esperar por 30 segundos Clicar no link Relatórios 9
  • 10. Use! Use mecanismos nativos para esperas (callback or polling) Preencher o campo de usuário e senha Clicar no botão Login Esperar pelo carregamento da página carregou? não: espere mais 1 segundo sim: continue Clicar no link Relatórios 10
  • 11. Gerenciar os erros (ou possíveis erros) é essencial! 11
  • 12. Como analisar e tratar os erros? 12
  • 13. Mecanismos Geração de arquivos de logs Utilização de mecanismos da própria linguagem de programação • raise-rescue Ruby • try-cath Java/C# • try-except Phyton Uso de alguma ferramenta 13
  • 14. 14
  • 15. Programe! 15
  • 16. Programe! Fica esperto se ocorrer algum erro Carregar dados do arquivo externo Clicar sobre o link Cadastro Enquanto existir dados no arquivo externo Preencher Nome: <nome> Preencher CPF: <CPF> Clicar no botão OK Validar mensagem apresentada <mensagem> Clicar no link Voltar Deu erro? Fu.... Se erro for Não encontrou campo Tente novamente Se erro for Registro não chegou Tente carregar o registro novamente Se erro foi qualquer outro Gere um arquivo de log Finalize Gere o relatório de evidência 16
  • 17. Programe! try { ArrayList dados = CarregaDados.carrega(C:massaDados.xls); driver.findElement(By.visibleText(“cadastro”)).click(); for (int i = 0; i < dados.size() ; i++) { driver.findElement(By.id(“nome”)).sendKeys(dados[i]); driver.findElement(By.id(“cpf”)).sendKeys(dados[i+1]); driver.findElement(By.id(“ok”)).click(); Assert.assertEquals(“Sucesso!”, alert.getAlert()); Driver.findElement(By.visibleText(“Voltar”)).click(); } catch (ElementNotFound enf) {} catch (DataNotFound dnf) {} catch (Exception e) {} finally { Report.geraEvidencia(); } 17
  • 19. Como executamos testes com dados? Cenário de Teste: efetue transferências entre contas do mesmo banco Caso de Teste: Efetuar transferência de conta corrente para conta corrente Passo Resultado Esperado Clicar sobre o link “Transferência entre contas” Apresentar tela de Transferência com os dados básicos do usuário apresentados: • Agencia: 1234 • Nome: Fulano da Silva Preencher os seguintes campos e clicar em Apresentar nova tela com os seguintes dados: “Transferir” • Mensagem: Saldo Suficiente para • Minha Conta: 98765-1 transferir • Agencia creditada: 7489 • Para: Ciclano Souza • Conta Creditada: 361029-5 • Valor (R$): 400.00 • Retirar da: Poupança Clicar•no Valor (R$): 400.00 botão “Efetivar” Apresentar nova tela com a mensagem: “Transferência efetuada com sucesso” 19
  • 20. Script? Clicar sobre o link “Transferência entre contas” Validar Agencia: 1234 Validar Nome: Fulano da Silva Preencher Minha Conta: 98765-1 Preencher Agencia creditada: 7489 Preencher Conta Creditada: 361029-5 Preencher Retirar da: Poupança Preencher Valor (R$): 400.00 Clicar em Transferir Validar Mensagem: Saldo suficiente para transferir Validar Para: Ciclano Souza Validar Valor (R$): 400.00 Clicar em Efetivar Validar mensagem: Transferência efetuada com sucesso 20
  • 21. Não mantenha dados fixos em casos/scripts de teste... NUNCA! 21
  • 22. Nunca crie N Casos de Teste “diferentes” somente para mudança dos dados! 22
  • 23. Script Data Driven Carrega arquivo dados.csv Enquanto existir dados no arquivo Clicar sobre o link “Transferência entre contas” Validar Agencia: <agencia> Validar Nome: <nome cliente> Preencher Minha Conta: <minha_conta> Preencher Agencia creditada: <agencia_cred> Preencher Conta Creditada: <conta_cred> Preencher Retirar da: <retirar_da> Preencher Valor (R$): <valor_retirada> Clicar em Transferir Validar Mensagem: <mensagem> Validar Para: <favorecido> Validar Valor (R$): <valor_retirada> Clicar em Efetivar Validar mensagem: <mensagem_sucesso> 23
  • 24. Gerar relatórios é essencial! 24
  • 25. Quais relatórios gerar? High-Level • Relatório Sumarizado do Teste • Relatório individual de execução Low-Level • Relatório de Evidências de Teste • Relatório das validações de cada Teste 25
  • 26. Como gerar? Funcionalidade existente dentro da própria ferramenta Ferramentas externas Desenvolver sua própria engine de relatórios 26
  • 27. Defina uma estratégia para execução 27
  • 28. Como? 28

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n