Advertisement
Advertisement

More Related Content

Similar to Testes automatizados.pptx(20)

Recently uploaded(20)

Advertisement

Testes automatizados.pptx

  1. TESTES AUTOMATIZADOS Carlos Gonzaga |Analista de Tecnologia https://www.linkedin.com/in/carlos-gonzaga-1b84137a/
  2. OBJETIVO – Compreender a necessidade dos testes – Identificar casos de testes a serem automatizados – Conhecer as principais características das ferramentas de automação de testes funcionais – Aprender a identificar elementos web e como fazer a interação com estes – Conhecer e desenvolver testes com Selenium ,Cucumber, Java, Maven, Eclipse. – E muito mais!
  3. CONTEÚDO • Fundamentos da automação de testes • O que preciso conhecer para trabalhar com automação • Diferenças entre tipos de testes • Identificando cenários de testes a serem automatizados • Identificando quando e o quê automatizar • Linguagens de programação para se trabalhar com automação • Principais frameworks de automação de testes existentes no mercado • Instalação • Configuração • Gravação do script • Criação do teste • Estrutura do projeto eclipse • Git/Github • Maven
  4. “Teste automatizados significa: automatizar atividades de teste de software, incluindo o desenvolvimento dos roteiros de teste, a execução desses roteiros e a verificação dos resultados.” AUTOMAÇÃO DE TESTES
  5. Toyota atualiza controle de estabilidade da Hilux após falha no “teste do alce” “A prova conhecida como "teste do alce" consiste em mudança brusca de trajetória com desvio de obstáculos em velocidades entre 64 e 68 km/h, com meia carga na caçamba. O teste reuniu as mais principais picapes médias do mercado, como Nissan Frontier, Mitsubishi L200 Triton, Isuzu D-Max (versão da Chevrolet S10), Ford Ranger, Volkswagen Amarok e RAM 1500” TESTE DE ESTABILIDADE
  6. Toyota atualiza controle de estabilidade da Hilux após falha no “teste do alce” TESTE DE ESTABILIDADE
  7. TIPOS DE TESTES
  8. TDD TDD é a sigla utilizada para Test Driven Development, ou em português “Desenvolvimento Orientado por Testes. ” O uso de TDD também garante que o desenvolvedor irá programar cada vez melhor. Mesmo em pouco tempo usando estes testes ele já percebe uma diferença relevante em sua forma de programar. O código desenvolvido por quem utiliza a técnica ficará com cada vez mais qualidade, dando origem a objetos concisos e com menos dependências. POR ONDE COMEÇAR OS TESTES?
  9. BDD O Behavior Driven Development (BDD) ou desenvolvimento orientado por comportamento foi inventado por Dan North no ano de 2000, quando Dan percebeu que muitas equipes tinham dificuldades de adotar e usar eficazmente o TDD POR ONDE COMEÇAR OS TESTES?
  10. Exemplo de TDD.
  11. A refatoração é a melhoria no código, o que já é bom para as práticas tradicionais. Mas com o TDD ela torna-se obrigatória. Isto porque é escrito um teste, uma funcionalidade, porém esta funcionalidade não pode quebrar o outro teste. Se isto acontecer, será necessário um esforço para que o novo código esteja menos acoplado ao código restante. A IMPORTÂNCIA DA REFATORAÇÃO
  12. A IMPORTÂNCIA DA REFATORAÇÃO
  13. FERRAMENTAS DE MERCADO.
  14. XGH - GO HORSE PROCESS https://gohorseprocess.com. br/extreme-go-horse-xgh/ “If you have to think, it's not XGH” “Be authentic, XGH does not respect standards.” ”Testing is for the weak”
  15. Mãos na massa!!!
  16. NOT YET! Voltemos aos conceitos. Testes Unitários (Unit Testing) Testes de Integração (Integration Testing) Testes de Aceitação (Acceptance Testing) O objetivo de um teste unitário é validar a menor parte de um sistema de forma isolada, para garantir que funcione exatamente como é esperado Os testes de integração validam se comunicação entre dois ou mais componentes está funcionando corretamente. Testes de aceitação acontecem na camada da interface de usuário e normalmente envolvem todas as camadas da aplicação testada para validar um cenário de negócio.
  17. VISUA STUDIO CODE
  18. VISUA STUDIO CODE O Visual Studio Code é um editor de código-fonte / IDE de mínimos recursos desenvolvido pela Microsoft para Windows, Linux e macOS. Ele inclui suporte para depuração, controle Git incorporado, realce de sintaxe, complementação inteligente de código, snippets e refatoração de código. Linguagem: TypeScript, JavaScript, CSS Licença: Código-fonte: Licença MIT; Binários: Freeware; Lançamento: 29 de abril de 2015 (3 anos) Plataforma: IA-32, x64 Tamanho: Windows: 32,8 MB; Debian, Ubuntu: 34,1 MB; Fedora, Red Hat: 50,4 MB; macOS: 51,8 MB Gravado em: TypeScript, JavaScript, Cascading Style Sheets https://code.visualstudio.com/
  19. GIT/GITHUB O que preciso saber sobre GIT?
  20. GIT Git é um sistema de controle de versões distribuído, usado principalmente no desenvolvimento de software, mas pode ser usado para registrar o histórico de edições de qualquer tipo de arquivo.
  21. UMA BREVE HISTÓRIA DO GIT “Como com muitas coisas boas na vida, Git começou com um pouco de destruição criativa e controvérsia ardente. O kernel do Linux é um projeto de software de código aberto de grande alcance. Durante a maior parte da vida útil da manutenção do kernel do Linux (1991-2002), as alterações no software foram repassadas como patches e arquivos arquivados. Em 2002, o projeto do kernel Linux começou a usar um DVCS proprietário chamado BitKeeper. Em 2005, a relação entre a comunidade que desenvolveu o kernel do Linux e a empresa comercial que desenvolveu o BitKeeper quebrou, e o status de free-charge da ferramenta foi revogado. Isso levou a comunidade de desenvolvimento Linux (e em particular Linus Torvalds, o criador do Linux) a desenvolver sua própria ferramenta com base em algumas das lições que aprenderam ao usar o BitKeeper. Alguns dos objetivos do novo sistema foram os seguintes: •Rapidez •Design simples •Forte suporte ao desenvolvimento não linear (milhares de ramificações paralelas) •Totalmente distribuído •Capaz de lidar eficientemente com grandes projetos como o kernel do Linux (velocidade e tamanho dos dados) Desde o seu nascimento em 2005, o Git evoluiu e amadureceu para ser fácil de usar e ainda manter essas qualidades iniciais. É incrivelmente rápido, é muito eficiente em grandes projetos e possui um incrível sistema de ramificação para desenvolvimento *não-linear.” “Não linear refere-se a todas as estruturas que não apresentam um único sentido. Estrutura que apresenta múltiplos caminhos e destinos, desencadeando em múltiplos finais.”
  22. INSTALANDO O GIT https://git-scm.com/download/win
  23. COMANDOS DO GIT https://comandosgit.github.io/ Abrir o Git console instalado. •Para configurar o usuário digite: • git config –global user.name “Carlos gonzaga” < enter > •Para criar o e-mail digite: • git config –global user.email “carlosgonzaga.bsb@gmail.com” < enter > • git config –list < enter > http://www.asbpm.com.br/blog/manual-de-instalacao-do-git-plug-ins-eclipse-e-visual-studio-code-e-configuracao-de-solucoes/
  24. COMANDOS DO GIT Criar um repositório local e comandos básicos do Git Crie uma pasta no local desejado para o projeto. •Acesse a pasta: c:ProjetosExemplo < enter > •Para iniciar o repositório digite: • git init < enter > •Para checar o repositório criado. • git status < enter > •Para enviar arquivos para repositório local: • Crie um arquivo na pasta do projeto e digite: • git add << nome do arquivo >> < enter > ou • git add *.* < enter > •Para retirar o arquivo adicionado digite: • git reset << nome do arquivo >> < enter > ou • git reset *.* < enter > •Para registrar um commit digite: • git commit –m “Comentário do commit” < enter > •Verificar o histórico de commits digite: • git log < enter >
  25. CUCUMBER
  26. O que é cucumber? Cucumber é uma estrutura de automação, que permite a conversão de casos de teste escritos em inglês simples para ações usando codificação. A estrutura de automação segue principalmente uma abordagem conhecida como Behavior Driven Development (BDD), que fornece aos engenheiros de software a oportunidade de criar casos de teste da perspectiva do usuário final.
  27. O que é cucumber? Uma pessoa de background não técnico, que entenda o domínio e a implementação de negócios incorporada no aplicativo, pode fornecer cenários de teste que precisam ser verificados. Dessa maneira, um fluxo de negócios do aplicativo pode ser automatizado para testes. Isso também permite testar vários dados de teste para cenários positivos e negativos.
  28. Vantagens do cucumber sobre outras ferramentas 1 - Cucumber suporta diferentes linguagens como Java, .net e Ruby. 2 - Ele atua como uma ponte entre a linguagem comercial e técnica. 3 - Podemos fazer isso criando um arquivo de recurso em texto simples em inglês, cobrindo as áreas que precisam ser testadas. 4 - Ele permite que o script de teste seja escrito sem o conhecimento de qualquer código, permite o envolvimento de não- programadores também. 5 - Devido à arquitetura de script de teste simples, o cucumber fornece reutilização de código.
  29. Ferramentas que você precisa para começar 1 - Configuração Java 2 - Configuração do Eclipse 3 - Bibliotecas do cucumber para o Eclipse 4 - Bibliotecas de selênio para o Eclipse Um arquivo criado no cucumber, recebe uma extensão “.feature” O idioma no qual esse arquivo de recurso executável é gravado é conhecido como Gherkin . Gherkin é uma linguagem de texto simples Inglês, o que ajuda a ferramenta - cucumber para interpretar e executar os scripts de teste.
  30. Estrutura do cucumber
  31. Feature Uma feature pode ser definido como uma unidade independente ou funcionalidade de um projeto. Scenario O cenário é uma das principais estruturas do Gherkin. Cada cenário começa com a palavra-chave “Cenário:” (ou um localizado) e é seguido por um título de cenário opcional. Cada feature pode ter um ou mais cenários e cada cenário consiste em uma ou mais etapas.
  32. Estrutura do projeto
  33. Arquivo.feature Um Arquivo de feature é um ponto de entrada para os testes do cucumber . Este é um arquivo onde você descreverá seus testes em linguagem descritiva (em inglês). É uma parte essencial do cucumber, pois serve como um script de teste de automação, bem como documentos ao vivo. Um arquivo de feature pode conter um cenário ou pode conter muitos cenários em um único arquivo de recurso, mas geralmente contém uma lista de cenários.
  34. Arquivo.feature Funcionalidade: funcionalidade testar se houve falha no login da aplicacao Esquema do Cenario: Verificacao se ocorreu erro ao informar o login e a senha Dado que o usuario abriu o firefox e executou a aplicacao "GESTAO_WEB" Quando for informado o login <login> e a senha <senha> E foi clicado no botao Login Entao verifico se o houve falha durante o Login com a mensagem <mensagem>. @LoginFalhou Exemplos: | login | senha | mensagem | | "login111" | "senha111“ |"Ocorreu um erro interno de autenticação.“ | | "login222" | "senha222“ |"Ocorreu um erro interno de autenticação.“ | | "login333" | "senha333“ | "Ocorreu um erro interno de autenticação." |
  35. ArquivoStep.java @Quando("^for informado o login "([^"]*)" e a senha "([^"]*)"$") public void for_informado_o_login_User_senha_senha(String login, String senha) throws Exception { Thread.sleep(200); webDriver.findElement(By.xpath(".//*[@id=‘xdeerrff']")).sendKeys(login); webDriver.findElement(By.xpath(".//*[@id=‘dfggttf']")).sendKeys(senha); } @Quando("^foi clicado no botao Login$") public void a_credencial_sera_resetada() throws Exception { Thread.sleep(200); webDriver.findElement(By.xpath(".//*[@id=‘gttrrddd']")).click(); } @Entao("^verifico se o houve falha durante o Login com a mensagem "([^"]*)".$") public void verifico_se_o_houve_falha_durante_o_Login_com_a_mensagem(String mensagem) throws Exception { Thread.sleep(3000); if (mensagem.contentEquals((webDriver.findElement(By.xpath("html/body/div/div[2]/div[2]/div/div/h3")).getText()))) { ContaTestPage.fullScreenCapture(mensagem); logErrorDriver.info("Erro durante login " + " <><><> " + mensagem); webDriver.quit(); } } https://docs.cucumber.io/installation/
  36. Selenium
  37. Selenium O Selenium é uma ferramenta utilizada para automatização de testes de sistemas que permite ao desenvolvedor reproduzi-los rapidamente no ambiente real da aplicação, em função da sua integração direta com o navegador. Através de uma extensão podemos criar os scripts de testes de forma simples e utilizar nas mais diversas linguagens de programação. No geral, o script é gerado em HTML, porém pode ser exportado e editado para testes em Java, C#, etc.
  38. Selenium fluxo
  39. WEBDRIVER O que é o WebDriver? O WebDriver é uma estrutura de automação da web que permite executar seus testes em diferentes navegadores , não apenas no Firefox. As seguintes linguagens de programação são suportadas pelo WebDriver • Java • PHP • Python • Perl • Rubi
  40. GECKODRIVER What is Gecko Driver? O termo Gecko significa um mecanismo de navegação na Web que é embutido no navegador Mozilla Firefox. O Gecko Driver funciona como um proxy entre os clientes habilitados para Web Driver (Eclipse, NetBeans, etc.) e o navegador Mozilla Firefox. Em suma, o driver Gecko atua como um link entre os testes do Selenium Web Driver e o navegador Mozilla Firefox. Antes do Selenium 3, o navegador Mozilla Firefox era o navegador padrão do Selenium. Após o Selenium 3, os testadores precisam inicializar o script para usar o Firefox usando o GeckoDriver explicitamente. O Selenium usa o protocolo W3C Webdriver para enviar solicitações ao GeckoDriver, o que as converte em um protocolo chamado Marionette. O Firefox entenderá os comandos transmitidos na forma de protocolo Marionette e os executará.
  41. XPATH O que é XPath? XPath é definido como caminho XML . É uma sintaxe ou linguagem para encontrar qualquer elemento na página da web usando expressão de caminho XML . O XPath é usado para localizar o local de qualquer elemento em uma página da Web usando a estrutura HTML DOM. O formato básico do XPath é explicado abaixo:
  42. XPATH •//: Selecione o nó atual. •Tagname: Tagname do nó específico. •@: Selecione o atributo. •Atributo: nome do atributo do nó. •Valor: valor do atributo. Para encontrar o elemento em páginas da web com precisão, existem diferentes tipos de localizadores: Xpath = // tagname [@ attribute = 'valor']
  43. XPATH Tipos de caminho X Existem dois tipos de XPath: 1) XPath absoluto. 2) XPath relativo. XPath Absoluto : É a maneira direta de encontrar o elemento, mas a desvantagem do XPath absoluto é que, se houver alguma mudança feita no caminho do elemento, o XPath falhará. A principal característica do XPath é que ele começa com a barra simples (/), o que significa que você pode selecionar o elemento a partir do nó raiz. Abaixo está o exemplo de uma expressão xpath absoluta do elemento mostrado na tela abaixo. html / body / div [1] / seção / div [1] / div / div / div / div [1] / div / div / div / div / div [3] / div [1] / div / h4 [1 ] / b Abaixo está o exemplo de uma expressão xpath absoluta do elemento mostrado na tela abaixo.
  44. XPATH Xpath relativo: Para Xpath relativo, o caminho começa no meio da estrutura HTML DOM. Ele começa com a barra dupla (//), o que significa que ele pode procurar o elemento em qualquer lugar na página da web. Você pode começar do meio da estrutura HTML DOM e não precisa escrever o xpath longo. Abaixo está o exemplo de uma expressão XPath relativo Xpath relativo: // * [@ class = 'featured-box'] // * [text () = 'Teste'] String s = driver.findElement(By.xpath(xpath)).getText().trim();
  45. FIREBUG O Firebug é uma extensão de navegador da Web livre e de código aberto para o Mozilla Firefox que facilitou a depuração ao vivo, a edição e o monitoramento de qualquer CSS, HTML, DOM, XHR e JavaScript de qualquer site.
  46. EQUIPE DE TESTES Quem deve fazer parte da equipe de testes?
  47. EQUIPE DE TESTES a) Qualquer funcionário da empresa que esteja vinculado ao projeto em desenvolvimento b) Não precisa ter experiência nem conhecimentos aprofundados de informática c) Deve conhece as regras de negócios pertencentes ao sistema d) Deve conhecer as funcionalidades oferecidas na aplicação
  48. EQUIPE DE TESTES
  49. CONCLUSÃO 1. Desenvolvimento de software é uma tarefa complexa. 2. A automação dos testes dá segurança à equipe para fazer alterações no código 3. Fazer testes automatizados está relacionado com ser ou não profissional 4. Precisamos vencer nosso superiores que testes automatizados são importantes e que são eles que vão ganhar com isso 5. Teste automatizados é uma prática fundamental para garantir a qualidade do código.
  50. ANY QUESTIONS? https://www.linkedin.com/in/carlos-gonzaga-1b84137a/
Advertisement