Por que você deve considerar o Cypress em sua stack tecnológica

Cypress.io é um framework de testes automatizados moderno e está se popularizando cada vez mais no mercado de tecnologia da informação.

Por desconhecimento, acabamos pensando que é só mais um framework de testes, que é hype e que logo vai passar e outro virá para o substituir.

Eu também pensava assim, até dar-lhe uma chance, em meados de 2018-2019, e desde então, venho usando Cypress com sucesso em diferentes projetos de software. Além disso, tenho recebido ótimos feedbacks dos alunos da Escola Talking About Testing, os quais estão estudando a ferramenta e colocando os conhecimentos aprendidos em prática em projetos reais.

Portanto, pra te ajudar nessa tomada de decisão, separei dez motivos para você considerar Cypress na automação de testes de aplicações web.

1. Zero configuração para começar

Após instalar e inicializar o Cypress, tudo já está pronto para sair usando, sem a necessidade de configurações.

Instalou, inicializou e você já pode começar a escrever testes automatizados para garantir que as funcionalidades mais importantes da aplicação estão cobertas. Fácil assim.

O Cypress já traz até exemplos executáveis de como usar cada uma de suas funcionalidades, pra te ajudar a testar as mais diversas situações encontradas em aplicações web modernas.

A propósito, fiz uma série de lives explorando todos esses exemplos.

2. Baixa curva de aprendizado

Esta é minha percepção e de todos os profissionais com os quais já conversei sobre o quão fácil acharam aprender a usar a ferramenta.

Porém, devemos considerar que o time já possua conhecimentos de JavaScript e seletores CSS, afinal, tais conhecimentos são necessários independentes do framework de testes escolhido.

Aproveite para conhecer a série JavaScript para QAs!

3. Excelente experiência de desenvolvimento

Desenvolver testes com Cypress é prazeroso.

Quando inicializado para execução de testes em modo interativo, o Cypress possui um test runner, o qual disponibiliza funcionalidades tais como:

  • Watch mode – para que assim que um arquivo de teste for salvo, os testes sejam re-executados
  • Time-travel – pra te ajudar a depurar falhas em testes (onde snapshots do estado da aplicação são salvos antes e depois de cada ação, e você pode “voltar no tempo” para ver exatamente tudo que aconteceu enquanto os testes rodavam)
  • Dev tools – Aqui você vai encontrar logs no console do navegador com elementos retornados por seletores CSS, requisições que ocorreram, e muito mais.
  • Screenshots – quando um teste falha com Cypress, uma screenshot é automaticamente tirada como evidência do teste, facilitando o entendimento da falha e então sua resolução
  • Vídeos – quando executados em modo headless, vídeos da execução dos testes são automaticamente salvos, também podendo ser utilizados como evidências de bugs.

4. Tudo já vem empacotados para sair usando

No Cypress, diferentes ferramentas famosas e conhecidas pela comunidade JavaScript vem empacotadas para uso, tais como as bibliotecas de assertions Mocha e Chai, a biblioteca Sinon, para mocks, o Lodash, com suas diversas funcionalidades (minha favorita é o _.times), além do jQuery.

5. Esperas automáticas

Por padrão, o Cypress já espera por elementos estarem visíveis antes de tentar interagir com estes, já aguarda automaticamente por requisições acabarem antes de seguir adiante com os testes, e até mesmo aguarda por animações finalizarem.

Ainda assim, a ferramenta permite a customização destes comportamentos, para tornar os testes ainda mais robustos e confiáveis.

6. Controle do tráfego de rede

Com funcionalidades como o cy.intercept(), você pode interceptar requisições HTTP, dar nome à estas, e aguardar que sejam concluídas antes de seguir adiante com os testes, tornando-os robustos.

Além disso, você pode até mesmo mockar a resposta de tais requisições, para testar o frontend independente do backend.

Com o cy.intercept(), dá até pra simular falhas na rede ou no servidor.

7. Diversos tipos de testes automatizados

Com Cypress, além de testes end-to-end, você pode também escrever e executar testes de APIs, testes de frontend applications, testes de componentes de frontend, testes de regressão visual, testes de acessibilidade, e se você quiser, até mesmo uma combinação dos anteriores.

8. Documentação de alta qualidade

Quando dei uma chance ao Cypress, fiquei extremamente impressionado com o alto nível de sua documentacão.

Além de detalhadas explicações de seu uso, a documentação também cobre boas e más práticas na escrita de testes automatizados, trade-offs e suas respectivas alternativas, vídeos demonstrando seu uso, blog posts densos e detalhados, links para palestras em grandes conferências, webinários, etc.

9. Ajuda das(os) frontend developers

Ainda hoje, muitas(os) desenvolvedoras(es) não são acostumadas(os) em escrever testes end-to-end.

Não as(os) culpo, pois até antes do Cypress, esse trabalho era doloroso.

Porém, como o Cypress diz em seu slogana web evoluiu. Finalmente os testes também. E é isso mesmo. O Cypress é uma ferramenta de testes automatizados diferenciada.

Com isso, a ferramenta está atraindo cada vez mais frontend developers ao seu ecosistema, visto que estas(es) são grandes conhecedoras(es) de JavaScript.

E ter devs ajudando, ou por que não, se responsabilizando pela escrita dos testes automatizados, é uma bela conquista!

10. Comunidade

Pelo fato de ser uma ferramenta open-source, o Cypress possui uma comunidade engajada, com profissionais ao redor do globo ajudando e difundindo seus aprendizados e casos de sucesso.

Eles tem até mesmo um programa de embaixadores(as), o qual me orgulho de fazer parte.

Aproveito para recomendar a série “Pitadas de Cypress” (aqui no blog) e as playlists explorando a Cypress Real World Appcy.chat() e cy.handsOn(),  no YouTube.


Minha recomendação pessoal.

Vai começar um projeto web do zero. Vai de Cypress!

Ou então, se você está tendo problemas com sua suite de testes atual, tais como instabilidade nos resultados (flaky tests), ou dificuldade de engajar desenvolvedoras e desenvolvedores a escreverem (ou ao menos corrigirem) testes, faça uma prova de conceito com o Cypress. Quem sabe esses problemas serão eliminados.

Espero que este conteúdo tenha esclarecido os motivos para você considerar o framework de testes automatizados Cypress.io em sua stack tecnológica.


Quer aprender mais sobre Cypress?

Conheça a formação de Cypress da Escola Talking About Testing.

Inicie com o curso básico de Cypress.

Depois, no curso intermediário, aprenda como criar testes end-to-end mais rápidos, independentes e robustos, com a ajuda de chamadas de API.

No curso de testes de regressão visual com Cypress e Percy, garanta o aspecto visual da aplicação.

Então, vá além, e aprenda como testar aplicações web desacoplando o frontend do backend, com o curso avançado de Cypress.

Conheça também as boas práticas na escrita de testes automatizados escritos com Cypress e garanta testes robustos e direto ao ponto.

Por fim, aprenda como testar aplicações web de ponta-a-ponta, executando testes automatizados e análise estática de código em um pipeline de integração contínua com múltiplas fases, paralelização e integração com o Dashboard do Cypress.


Até a próxima e bons testes! 👋


Este conteúdo foi traduzido para inglês e pode ser encontrado no DEV Community.

5 comentários em “10 motivos para você usar Cypress na automação de testes web

  1. só senti falta do termo QA, afinal, muitos profissionais da área de qualidade está partindo para teste automatizados com uso do Cypress, eu sou uma dela, no mais, ótimo pontos levantados !

Deixe uma resposta para Walmyr Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s