QA Xperience — Blowing my mind!
O QA Xperience está se tornando hoje, para mim, um dos melhores eventos voltados para a qualidade de software. Isso porque ele trás diversos temas , desde processos de qualidades a automações em banco de dados e experiências de profissionais em seu âmbito de trabalho. Cada palestra com sua particularidade e seu jeito bastante dinâmico de ser apresentado, o que nos instiga a querer conhecer ainda mais sobre o assunto.
Confesso que não tenho ido a muitos eventos voltados a área de Qualidade de Software mas não vou entrar nesse mérito agora. Porém, de todos os eventos que participei, o QA Xperience me chamou mais atenção por proporcionar não só momentos onde podemos ouvir, mas trocar experiências com outros profissionais, ouvirem suas realidades e expor a nossa, sempre buscando soluções juntos.
Algumas palestras nesse evento me chamaram bastante atenção porém, para não ficar muito extenso esse artigo, focarei em três delas a partir de agora.
# DataOps, Big Data e Qualidade de Dados: O que mudou nas organizações?
Essa palestra foi apresentada pela Danielle Monteiro que, com muita maestria, nos mostrou como dar muita qualidade aos processos de banco de dados, tornando-os independentes para cada time/dev/tester.
Para ela, o planejamento é o ponto primordial para o sucesso. Deve-se saber exatamente quais dados precisamos e como usaremos, pois trabalhar com dados não é algo tão trivial ou barato quanto gostaríamos.
Como disse a Danielle, de um lado temos os desenvolvedores, testers, operações, enfim, vários times demandando dados para realizar suas atividades. De outro lado, temos a equipe de Banco de Dados que possui naturalmente muito trabalho e a todo momento chegam novas demandas que, de certa forma, são pedidos que possuem uma complexidade maior e não é algo rápido e barato de se fazer. Chegamos então a um impasse!
Aí veio a ideia do DataOPS que tem como principal objetivo alinhar pessoas, processos e tecnologia com gerenciamento rápido, automatizado e seguro — palavras da Danielle — e fazer com que o time de BD, devs e testers se transformem em um único time.
Um dos passos para isso é focar em automação para que as equipes tenham todos os dados necessários para realizar suas atividades! Automatizando, criaremos padrões e criando esses padrões, teremos muito mais controle de todo o processo de teste e desenvolvimento. Indo mais além da automação, também é necessário versionar tudo, para que tudo seja reproduzível caso necessário.
Ok! Agora sabemos que o time de BD tem que se unir aos outros times e que automatizar vai resolver todos os problemas, certo?! Evidente que não! Isso porque se não mudar a cultura, investir em infra e treinamento para que todos falem a mesma língua, sua empresa pode não estar preparada para esse grande passo.
Enfim, se sua empresa quer ser mais ágil e garantir mais qualidade nas entregas, invista não só em infra, mas em fazer com que os colaboradores interiorizem a cultura ágil para qualquer área e automatize seus processos.
# Automatizando a Infraestrutura de Testes sob demanda com Go, Docker e Kubernetes
Mais uma vez uma palestra que fala de automação! Será que é um sinal? É quase que um tapa na cara me mandando acordar para a vida, mas vamos seguir o baile (coisa velha isso!). A segunda palestra que vou falar é do Alexandre Gama. Nem vou tocar muito no assunto da Go Lang pois é algo que ainda não estudei, mas Docker e Kubernetes pude conhecer um pouco melhor.
O Alexandre começou a palestra contando um histórico da empresa que trabalhava, como eram realizados os testes, as dificuldades que todo começo de startup tem e como foi a expansão.
Todas as dificuldades encontradas por eles, estavam relacionadas ao grande crescimento da empresa e, junto disso, a dificuldade de escalar a infra pra diversos colaboradores. O uso do Docker veio para auxiliar justamente para evitar retrabalhos ou conflitos entre desenvolvedores.
Atualmente, utilizamos na Equals o Jenkins, que ajuda bastante na administração do nosso ambiente de trabalho, mas ainda não usamos tudo o que essa ferramenta pode fornecer. A ideia agora, tendo em vista as dificuldades que o Alexandre apresentou, é criar ambientes separados para cada dev ou tester poder trabalhar sem nenhuma interferência de outros, e utilizando os containers seria a melhor maneira por agora.
Mas até que consigamos chegar a esse ponto, ainda há muita evolução na área da qualidade que precisa ser feita e agora, com essas palestras, já temos um caminho bem claro a seguir.
Voltando a palestra, um dos pontos que o Alexandre levantou é o momento em que, para orquestrar tudo isso, demanda muito esforço e tempo. Foi aí que surgiu a ideia de usar o Kubernetes. O Kubernetes nada mais é que um “orquestrador de containers”. É uma ferramenta bastante parruda que aguenta orquestrar centenas de containers.
Uma das belas soluções que o Kubernetes trás pra gente é a não dependência de outras aplicações rodando na máquina do dev ou do tester, principalmente quando há muita dependência de outras ferramentas. O Kubernetes permite que você possa configurar a maneira que é necessária para realizar seu trabalho de forma independente e com o bônus de ter praticamente um banco de dados próprio! Nada de lixo de banco ou outras pessoas enchendo seu banco com dados inúteis.
Poderia ficar falando diversos outros pontos positivos do Kubernetes, mas vamos parar por aqui.
Caso queiram saber mais sobre o Kubernetes, acessem o site da ferramenta que tem muito conteúdo bacana lá.
# Testes de API com frisby.js — Do básico ao avançado
Por fim, tive o prazer de ver a palestra do Marcelo Soares. Uma palestra mais técnica que me chamou bastante atenção por estar em um momento na Equals em que preciso automatizar testes em API.
Marcelo iniciou a palestra conceituando Testes de Software e tecendo, aos poucos, a evolução do próprio tester desde o início da carreira em que o tester só analisa requisitos e valida se o que o desenvolvedor fez o seu trabalho. Após isso, apresentou o anti-padrão da pirâmide de testes e a pirâmide ideal.
Normalmente focamos muito nos testes manuais, porém, muitas vezes, demandam mais tempo e mais custo e dependendo de sua aplicação, não garantem tanto a qualidade do seu produto. O primeiro ponto então é estudar sua aplicação antes de testar, evitando trabalho desnecessário levando em conta alguns questionamentos como: Qual meu objetivo com essa aplicação? Quais os dados mais importantes? Como posso testar e validar esses dados?Esses testes podem ser feitos apenas com testes end-to-end? Será que não preciso focar mais nos testes unitários ou testes de API?
São muitos questionamentos que as vezes deixamos passar batido ou não sabemos responder e ignoramos. Por isso o conhecimento do negócio é de extrema importância para o tester.
O frisby.js é uma ferramenta focada nos testes de API, com assertions do Jasmine e com uma simplicidade enorme para implementar. Os testes rodam muito rápidos e são bem organizados.
Não vou entrar na parte técnica mas a ferramenta se mostrou bastante eficiente, simples e objetiva para os testes de API. Ainda não comecei a automatizar meus testes usando o frisby mas logo escreverei um outro artigo falando da minha experiência técnica dessa ferramenta.
Enfim, a ideia principal desse artigo é simplesmente apresentar um pouco da minha visão do evento, ideias e ferramentas que achei interessante e que gostaria de trabalhar. Espero que possa ajudar a evoluir seu modo de trabalho como estou evoluindo o meu.
Ainda voltarei ao QA Xperience outras vezes e aconselho bastante a participação. A comunidade de qualidade de software precisa de mais eventos assim e o Papini e o Demis estão mandando muito bem.
Qualquer dúvida ou questionamento, não deixe de me enviar, ficarei feliz em responder!
Referências: