Tech Chat – Migração para Playwright – de Katalon (Selenium) – com Jéssica Silva

Neste Tech Chat recebi a Jess. Ela também participa do grupo de WhatsApp do Playwright e conta um pouco pra gente como foi o processo de migração de Katalon (Selenium) para Playwright e ninguém melhor do que ela mesma pra se apresentar pra gente:

Sou a Jéssica Silva, 30 anos e atuando na área da qualidade desde 2015. Formada em Ciências contábeis, o meu primeiro emprego foi em uma empresa de tecnologia para trabalhar com BA (ou analista de negócios) em um sistema de contabilidade pública. Não conhecia até então o que era desenvolvimento e termos tech. O fun fact disso tudo é que eu sempre achei que não estava cursando o que eu queria, pois entrei na faculdade com 17 anos e sem muita orientação do que iria cursar, cursei longos 4 anos de contábeis para depois me encontrar na área de tecnologia. Penso que tive que passar por todo esse caminho para só depois entender o meu propósito. 

Fiz a migração de área para IT e durante a migração cursei Engenharia de Software na PUC Minas a fim de me desenvolver mais dentro da área. Trabalhei cerca de 7 anos na empresa onde passei a atuar como QA até decidir fazer um intercâmbio na Inglaterra em 2020 e um ano depois em 2021 decidir mudar para Portugal para me jogar no mercado de tecnologia. Trabalhei em vários projetos desde então na Europa, no entanto, com o poder do destino tenho atuado em projetos na África.

Hoje sou QA Tech Leader do time de automação e tenho ajudado a desenvolver profissionais Angolanos na área de automação de testes. Tem sido uma experiência única levar o meu conhecimento para um País em ascensão na área de tecnologia e tenho como propósito ser pioneira na implantação e capacitação de profissionais para utilizar a ferramenta Playwright e a metodologia QAOps em Angola.

Que inspiração Jess! Sou muito grata por ter conhecido através do grupo. Obrigada por participar desse Tech Chat!

1. Qual era o framework antigo e qual o principal problema que vocês tinham com ele?

A ferramenta que utilizávamos para implementar testes automatizados era o Katalon, uma ferramenta paga baseada em Selenium. Era utilizado o recurso de script da ferramenta, o qual somente suporta a linguagem Groovy/Java. O nosso maior e principal problema era na limitação da ferramenta quanto na autonomia de escolher a linguagem, de estruturar as folders e utilizar padrão Page Objects bem como no uso do debug, uma vez que a ferramenta não é open source e limita o uso dos recursos essenciais. A ideia inicial de se utilizar o Katalon dava-se por conta que a maioria dos QA’s eram manuais e não tinham conhecimento de automação, assim não era necessário conhecimento técnico no Katalon e utilizavam inicialmente a ferramenta para gravar a tela e gerar os scripts. 

2. Como surgiu a ideia de migrar para um outro framework?

Com base nas diversas limitações da ferramenta e na lentidão por possuir uma interface pesada baseada na IDE Eclipse era possível enxergar um gap na velocidade da entrega do time, bem como ter mais problemas relacionados à ferramenta do que no código e no sistema em questão, além dos testes que demoravam cerca de 5 a 10 minutos para serem executados totalmente. 

Desta forma, naquela altura assumi a posição de Arquiteta de Testes e logo sugeri para a liderança a migração para uma ferramenta open source a fim de nos dar mais autonomia e agilidade na automação dos testes.

3. Como foi o processo de decisão pelo Playwright?

No último projeto que atuei em Portugal a stack era em Playwright e tive a oportunidade de participar da decisão da ferramenta bem como na migração da framework anterior Taiko Gauge para o Playwright e pude perceber já no primeiro mês de migração que os desenvolvedores tiveram uma curva de aprendizado muito alta na ferramenta bem como na velocidade de migrar os testes escritos em outra linguagem para Typescript no Playwright. Assim, neste novo projeto já na África, sugeri a utilização do Playwright e bem como realizei uma POC entre as principais ferramentas como Robot, Cypress e Playwright a fim de analisar qual delas atenderia o projeto com base na arquitetura do sistema. Assim, após a criação da prova de conceito, fui convidada a então assumir a liderança do time de automação e iniciar um processo de reestruturação na área. O time não tinha experiência com nenhuma das ferramentas utilizadas na POC e foi então iniciado um processo de mentoria e capacitação para posteriormente implantar o Playwright pois até então era a única que tinha um bom domínio além de previamente ter a experiência em atuar em uma migração para o Playwright.

4. O Playwright suporta várias linguagens, qual linguagem vocês usam e o que levou a decidir por ela?

Utilizamos Playwright com TypeScript e a decisão foi pela curva de aprendizagem leve da linguagem bem como o time tinha conhecimento em JavaScript, além de utilizar o node.js facilitando muito na configuração e recursos da ferramenta.

5. Como vocês estruturaram a migração (em quanto tempo ela seria feita, quem participaria desse projeto, qual técnica de priorização de testes foi utilizada)?

Após a reestruturação de processos, foi então desenhado um plano de migração onde projetamos uma migração total prevista em 3 meses, contando com contratações, capacitações, treinamentos e implementação do CI/CD. Assim, a nível dos testes, priorizamos primeiramente os testes funcionais e/ou unitários para que ao migrar nossos métodos, criaríamos os testes unitários para validar as partes mais essenciais do nosso código. Fizemos uma divisão de tarefas e convidamos um desenvolvedor e DevOps para participar da migração e auxiliar nos processos de integração contínua o que foi muito valioso. No total 5 pessoas participaram da reestruturação e migração da ferramenta, sendo 3 envolvidos diretamente na migração do código e 2 no CI/CD.

Tínhamos uma preocupação a levar em conta que eram os diferentes projetos e a unificação deles no Playwright. No Katalon, tínhamos que criar um projeto para cada sistema e dividir também no repositório remoto. Já no playwright fizemos a configuração da separação dos sistemas no arquivo playwright.config.ts de forma rápida e sem complicações e utilizamos todos os sistemas dentro de um único repositório remoto.

6. Ao iniciar a migração, em quanto tempo vocês viram resultados significativos?

A migração teve seu marco significativo já no primeiro mês, quando a primeira suíte de testes regressivos críticos foi migrada em 1 semana. A resposta foi tão rápida que no final do primeiro mês já começamos a puxar backlog de demandas novas não previstas e finalizamos a migração. Assim, a migração prevista para 3 meses durou cerca de 1 mês, contando com capacitações, treinamentos e migração.

7. Qual foi o resultado mais valioso ao adotar Playwright?

O maior resultado foi a agilidade e superação do gap que tínhamos na velocidade da entrega do time, além da satisfação dos QA’s e Dev relatadas nas reuniões de 1:1 e nas daily meetings. Também houve uma melhora absurda no tempo total da execução dos testes e2e que demoravam 5 min ~ 10 min e diminuíram para aproximadamente 1 min cada.

8. Qual a funcionalidade que vocês mais gostam no Playwright?

Com toda a certeza as várias formas de debug, além do trace e autonomia na configuração da ferramenta de acordo com os projetos que temos.

9. O que ainda não está legal no projeto de testes após a migração?

Acredito que temos muito a melhorar, pois após a migração temos estamos realizando várias refatorações no código, o que é normal nesta fase.

Porém nossos testes de API são um ponto de atenção uma vez que os sistemas utilizam protocolo SOAP para se comunicarem e a automação destes casos de testes são feitos na ferramenta SoapUI com Groovy. Acredito que em um futuro próximo temos que pensar numa solução para utilizar a collection destes testes integrados no Playwright sem perder esta automação. A nível do CI/CD conseguimos integrar com a imagem docker, porém para execução local não encontramos uma forma de integrar com o Playwright como forma de uma ferramenta de terceiro a fim de gerar alguns dados de pré condições antes de continuarmos com os testes no frontend.

10. Tem algo que vocês fariam diferente?

No momento não, acredito que com base na reestruturação e na abertura do time em fazer dar certo, fizemos exatamente o que tinha que ser feito no tempo certo e com as técnicas adequadas. Porém, acredito que esta questão irá surgir quando tivermos por volta de um ano de migração e uso da ferramenta.

11. Você chegou a utilizar (ou pretende) Inteligência artificial em alguma etapa da migração? Qual sua opinião em relação a isto?

Sim, inclusive utilizamos IA como forma de aprendizagem na interpretação dos nossos códigos desenvolvidos em Groovy para TypeScript a fim de fixar o conhecimento e evidenciar as principais diferenças e ganhos. Foi uma boa experiência pro time, visto que muitos tinham facilidade de ler os códigos escritos em Groovy e no primeiro momento tiveram dúvidas quanto às tipagens do TypeScript. 

A minha opinião sincera sobre este ponto é que se aprendermos a dar os comandos necessários para a AI e ter em mente que é uma ferramenta para nos auxiliar na aprendizagem vale muito a pena a utilização. No entanto, se invertemos a situação e utilizamos ela como resposta para nossos problemas talvez não chegamos ao ponto principal de agregar conhecimento além de gerar código incorreto e bugs indesejados no projeto.

12. Qual a dica de ouro você daria para quem está pensando em migrar de algum outro framework para Playwright?

Primeiramente, estudar se é a ferramenta certa para o propósito do projeto, analisar a arquitetura e principais aspectos do sistema para verificar se o playwright seria a ferramenta ideal para a automação dos testes de acordo com a interface do sistema. O Playwright é uma ferramenta muito poderosa, porém para algumas ferramentas legados ou com interface de componentes antigos como o PrimeFaces.jsf o Playwright não se sairia muito bem na nível de performance da página, não pela ferramenta em si, mas pelos componentes e forma de carregamento das páginas o que prejudicaria muito na automação dos testes e claro, com uma boa prova de conceito seria fácil identificar estes pontos de atenção. 

Esta situação ocorreu comigo e a prova de conceito foi levada em consideração pelo desenvolvimento para mudança da aplicação web para o Angular o que para o uso do Playwright será extremamente poderoso uma vez que utilizam TypeScript no componente do frontend. Esta talvez possa ser uma dica de ouro para pensar fora da caixa e ajudar a melhorar também o frontend do projeto.

Referências Complementares:

2 thoughts on “Tech Chat – Migração para Playwright – de Katalon (Selenium) – com Jéssica Silva

Leave a Reply

Your email address will not be published. Required fields are marked *