Kundalini and Activating the Seven Chakras

Kundalini and Activating the Seven Chakras is the full video of a guided meditation session with Dhyanse in Basel, Switzerland. In this session, Dhyanse takes you through the foundations of Kundalini…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




5 Motivos porque todo QA deveria saber testes de API

Em abril de 2014 eu encarei um desafio de atuar como QA em um time ágil, exclusivamente de back end, onde desbravei um novo mundo, comecei de maneira efetiva explorar outros níveis de testes da tão famosa pirâmide de automação de testes. Naquela época eu já frequentava eventos, meetups e comunidades e pouco se ouvia falar sobre testes de APIs, pelo ao menos em eventos voltados diretamente para QAs.

Vou tentar colocar os motivos de maneira cronológica, o critério de ordenação dos motivos será do menos técnico para o mais técnico :)

Acho que quase todo(a) e qualquer QA quando inicia a carreira, começa a testar software na camada de UI, independente da plataforma, seja ela mobile, web ou desktop. Em alguns casos permanecemos na camada de UI por anos e anos.

Pensando numa carreira mais técnica de QA, começar a aprender e exercitar, testes em outros níveis muitas vezes é uma quebra de paradigma e ainda é notável o grande números de pessoas que possuem este receio, cada um tem seus motivos, mas você ao menos já tentou? Parou e dedicou algum tempo de estudo para isso? Fez algum curso? Frequentou algum meetup/evento sobre o assunto?

Na linha de evoluir na sua carreira, conhecer outros níveis de testes, aproximar de desenvolvedores, conseguir contribuir com estratégias de testes para diferentes arquiteturas e padrões de projetos, tudo isso faz parte de uma possível evolução, independente do contexto que você esteja inserido(a).

Comece devagar, estude primeiro os conceitos(Soap, Rest, API) do novo mundo a ser explorado, identifique os protocolos(HTTP, gRPC entre outros) em questão, estude boas práticas, estratégias, como testar de forma manual e automatizada e por fim ferramentas que suportam este nível de teste, incluindo aspectos de segurança e performance.

Assim como eu passei por uma situação na minha carreira, porque você também não poderia passar?

Existe no mercado hoje, mas acredito que há uns 2 anos atrás já existia, vagas específicas para QAs atuar em times de back end, muitas vezes se você tem experiências exclusivamente em Front End, talvez não seja suficiente para que uma empresa lhe dê uma oportunidade.

Entendendo os principais conceitos e conseguir falar a mesma língua dos recrutadores, com certeza isso vai te abrir mais portas e talvez seja o primeiro passo para de repente entrar em uma empresa que você tanto almeja ou sonha.

Em diversos ramos de negócio, incluindo mercado financeiro, e-commerce e programas de fidelização é bastante comum ter uma grande parte das regras de negócio tratadas com grandes processamentos em batch, mas também bastante integrações com outros serviços que são feitos via APIs.

Portanto pode chegar sua vez de trabalhar em um time de back end onde pode não existir praticamente nada na UI para você testar…

Como dica explore a descrição da vaga, procure conversar com profissionais da empresa que almeja, pergunte a stack e se aperfeiçoe nela, por fim tente procurar informações dos protocolos usados, serviços externos consumidos e o tipo de arquitetura aplicada.

Você hoje que automatiza testes na UI, mesmo sem levar em consideração o framework utilizado, muito menos a stack e ainda plataforma…

Imagine a seguinte situação:

Considerando que para automatizar este cenário você irá precisar ter um pedido criado e então fazer a alteração do endereço e validar o novo valor do pedido.

Como você hoje resolve esta dependência de massa para automatizar este cenário atualmente no seu contexto/projeto/empresa ?

Independente das suas respostas para as perguntas acima, uma opção para resolver este problema de gerenciamento de massa é uma chamada de API. Mesmo que esta chamada irá disparar um dump de banco/tabela de banco ou ainda disparar uma task ou procedure para criar esta massa.

Dependendo do seu contexto, sua autonomia ou da arquitetura do sistema em teste, uma chamada de API pode servir para manipular massa de maneira mais efetiva, deixando assim seus cenários/casos de testes automatizados ou não mais atômicos e independentes.

Se tem alguém lendo este post que não conhece o Appium, ele é um framework open source para automatizar aplicativos nativos(iOS e Android), apps híbridos mas também aplicações web que rodam em browsers mobile.

Podemos ver um resumo da sua arquitetura abaixo:

Em resumo o código que você escreve para automatizar seus testes, independente da linguagem como apresentado na figura acima, ele comunica com o Appium Server via protocolo HTTP passando no body um Json.

Então para refrescar a memória de vocês, lembram com Selenium Webdriver automatizando testes para a web, que em algumas situações precisamos clicar em um elemento?

Podemos utilizar em diferentes linguagens um dos comandos abaixo:

Quando você efetua um click em um elemento, nos bastidores a comunicação com o Appium Server nada mais é que uma chamada de API contendo o identificador, a ação(no caso um click) e mais alguns parâmetros existentes no contrato desta comunicação. Imagine agora que uma demanda de mercado, traga uma necessidade de uma ação que hoje seja inexistente no Appium, como poderíamos contribuir com o framework?

Implementar a ação apenas no lado client(webdriver script) não seria suficiente, precisaríamos também implementar no Appium server esta ação, portanto sem conhecimento da API se torna totalmente inviável fazer este tipo de implementação e o que ocorre na maioria das vezes é alguém abrir uma Issue no repositório para que alguém implemente isso.

Eu sei que pode parecer muito técnico para alguns QAs do mercado atual, mas um contra ponto disso é que existem algumas empresas que dão valor a este tipo de contribuição, em diversos processos seletivos que já fiz, já ouvi diversas vezes, “seu github tem coisas legais”, “eu vi um pull request seu em tal projeto” e etc. Portanto porque não sair da zona de conforto e contribuir para um projeto/frame open source? Além de ajudar diversas pessoas, você pode adquirir bastante conhecimento com uma ação dessa.

Não necessariamente você como QA precisa implementar uma integração externa seja ela uma integração a algum meio de pagamento, descoberta de alguma informação de um cliente ou ainda um login via API Google/Facebook entre outras existentes.

Até porque você junto do seu time pode precisar de adotar uma estratégia “mockista”, para conseguir fazer um testes end to end independente do nível do seu teste em questão. Dentro deste aspecto tem um teste conhecido como teste de contrato, que na minha opinião é de extrema importância para tentar garantir a integridade do tratamento de uma regra de negócio, ainda sobre teste de contrato existe uma questão de testar o contrato apenas dos seus serviços internos ou estender para alguma serviço externo.

Um ultimo detalhe que gostaria de ressaltar é que as vezes por mais que você faça uma chama rest em um endpoint e o mesmo não retorna nada no body, que pode acontecer por diversos motivos, pode ser que você precise fazer um assert com uma consulta em um banco de dados que seu serviço persiste dados. Isso vai de encontro com a stack, arquitetura e maneira que o serviço em questão foi implementado. Se importe com isso :)

Concorda com os pontos deste post? Discorda? mesmo estando do outro lado do oceano, ficaria feliz de entender o que vocês pensam sobre testes de APIs e me coloco a disposição para discussões e para conhecer algum outro ponto que vocês considerem porque um QA deveria saber teste de APIs.

Fico por aqui…

Alguns exemplos de testes de APIs em diferentes stacks:

Add a comment

Related posts:

Space as a medium for interaction design

In the past 50 years computers have infiltrated the work environment to the point where there’s hardly a job left where they are not in use. In the process, however, a rich continuum of understanding…

REDSLOT88 Situs Slot Deposit Pulsa Tanpa Potongan

Situs slot online kini sudah banyak beredar di Indonesia dengan suatu platform berupa situs website yang mudah diakses dimana saja. REDSLOT88 merupakan salah satu situs slot online terbesar di…

The Importance Of Orthopedic Doctors

Having the ability to walk is something that many people take for granted. They don’t appreciate being able to get up and walk freely around their homes or to the refrigerator for a glass of milk or…