Article image
Aline Radzikowski
Aline Radzikowski01/03/2023 13:13
Compartilhe

Cypress. Testes automatizados.

    No artigo de hoje vamos falar sobre o cypress. Escolhi esse tema por que além de ter um grande apreço acredito que testes automatizados nos mostra muitas soluções. Então, dito isso, vamos lá...

    Atualmente o trabalho de um bom QA (Analista de qualidade) é desafiador, devido ao cenário complexo em que os sistemas são desenvolvidos. Tendo como base esse cenário dentro de um contexto ágil, torna-se moroso o trabalho do QA quando necessita realizar a mesma bateria de testes mais de uma vez, para garantir assim a qualidade do software que será entregue. Diante disso, a importância da automatização de testes aumenta exponencialmente, pois facilita o trabalho desses profissionais, tornando a execução de testes de regressão mais simples, rápida e com resultados imediatos. A garantia da qualidade também é maior, pois um teste End-to-End (E2E) automatizado pode ser rodado após a entrega de um pacote e encontrar bugs(defeitos) em features anteriores, facilitando e agilizando o trabalho não só do QA como do desenvolvedor.

    Existem no mercado muitas ferramentas que auxiliam e facilitam na automação de testes de software, cada uma com suas características, vantagens e desvantagens, e nesse artigo vamos conhecer uma delas: o Cypress.

    Os testes automatizados basicamente permitem simular o comportamento do usuário no sistema via navegador. Hoje o mercado faz uso do framework Selenium para criação de testes automatizados E2E, este é bastante difundido no meio por ser uma ferramenta livre e gratuita, que permite a criação de scripts de testes pelas principais linguagens de programação como Java, Python, Ruby, C# e outras, mas conta com uma curva de aprendizado íngreme.

    Uma alternativa recente é a ferramenta Cypress, um novo framework de testes também de código aberto e de fácil configuração, sem a necessidade de baixar inúmeras ferramentas e bibliotecas separadas para configurar seu conjunto de testes. Esse novo executor de testes auxilia e facilita muito a criação de testes automatizados E2E de forma simples, prática e rápida. Sua curva de aprendizado é bem menor e seus scripts são escritos via JavaScript. O Cypress veio para revolucionar e contribuir para um desenvolvimento de testes automatizados de maneira mais ágil.

    O que é o Cypress?

    Cypress é uma ferramenta poderosa de última geração desenvolvida especialmente para engenheiros de controle de qualidade (analistas QA) e desenvolvedores, que podem usá-la para os testes unitários. Totalmente baseado em uma nova arquitetura isenta do Selenium, apresenta o próprio painel exibindo exatamente o que está acontecendo durante a execução dos testes. À medida que o script é escrito é possível acompanhar como será a execução do teste através desse painel, auxiliando o técnico em quais partes precisam de ajustes no teste.

    O Cypress utiliza o Node JS como servidor e interpretador de sua linguagem JavaScript. Trabalhando juntos, cypress e Node JS estão em constante sincronização e comunicação para execução de tarefas, tornando a experiência da escrita e execução dos testes muito mais ágil, já que o Cypress também opera na camada de rede, na leitura e alteração de tráfego na web em tempo real.

    Cypress contém uma completa documentação disponível em cypress.io que facilita a escrita dos testes tornando-os mais confiáveis, com dicas e exemplos que podem ser aplicados sem haver necessidade de perder tempo na busca pela web já que todo conteúdo se encontra concentrado nesse site.

    Por que utilizar o Cypress?

    Seu principal foco é o teste E2E. Dentre uma gama extensa de ferramentas que utilizam o Selenium para automatização de testes, operando-os fora do navegador e executando os comandos remotamente pela rede, o Cypress surge para criar uma nova forma de automatizar os testes. Ele executa todos os testes no mesmo ciclo de execução do sistema que está sendo testado, sem usar o controle remoto que o Selenium utiliza para acesso ao sistema. Seu principal diferencial é ter sido desenvolvido para que os testes aconteçam simultaneamente ao desenvolvimento da aplicação. Claro que depende muito do processo utilizado no desenvolvimento, mas o Cypress sendo simples contribui com o aumento de produtividade no quesito de escrita de testes e aumenta a qualidade do sistema final.

    Há possibilidade de criar testes apenas de front-end e back-end, não só testes E2E. Como ele tem o controle nativo da aplicação controlando-a de cima para baixo, além de operar dentro da camada de rede, lendo e alterando o tráfego da web em tempo real.

    Os logs de comandos são gravados para revisitar posteriormente os resultados. Eles são exibidos em tempo de execução dos testes, à medida que os testes são escritos e salvos o Cypress já executa a automação para que o técnico possa verificar se o que foi codado está aderente ao teste, facilitando e muito no debug da automação.

    Captura de tela para testes falhos e gravação de vídeos de toda execução dos testes, sem configurações extras uma vez que o Cypress tem acesso nativo ao SO uma vez que ele todo é instalado localmente na máquina, e não utilizado de forma remota, além de possibilitar criação de relatórios de testes de forma mais simples que o Selenium.

    Cypress tem controle e acesso nativo a toda aplicação, e com esse recurso torna o teste muito mais rápido e confiável para quem está automatizando. Isso possibilita a criação dos casos de teste automatizados de forma simultânea com o próprio desenvolvimento da aplicação. O Cypress controla a aplicação de cima para baixo, onde assim interpreta o que ocorre fora e dentro do navegador que está sendo testado, fornece ndo resultados muito mais consistentes do que o Selenium, por conta de a ferramenta ser capaz de compreender os eventos assim que eles acontecem . Além de operar dentro da camada de rede, a ferramenta interpreta e altera o tráfego da web em tempo real.

    Já o Selenium controla a aplicação de forma remota, é necessário um suporte diferente para cada tipo de navegador que será testado, e sua curva de aprendizado é bem ígreme, sendo necessária a instalação e configuração de inúmeras ferramentas e bibliotecas para que o conjunto do teste possa funcionar corretamente, uma vez que não são instalados localmente na máquina usando tais recursos de forma remota. O Selenium também necessita de várias ferramentas para auxiliar no controle dos navegadores, mas também é bem mais livre no quesito de linguagens de programação, pois tem suporte para a maioria das linguagens usadas atualmente.

    O Cypress é uma ferramenta poderosa, completa e fácil de utilizar, e mesmo sendo iniciante você consegue criar um teste automatizado de forma simples sem precisar de tantas configurações para ter em mãos um teste robusto e monitorado. Claro que algumas dúvidas podem surgir, mas basta recorrer ao cypress.io para encontrar um exemplo que te ajude de forma concisa na vasta documentação disponível.

    Compartilhe
    Comentários (0)