Continuous Testing (QA Team) - Bamboo CI

Continuous Testing (QA Team) - Bamboo CI

E ai pessoal, tudo bem? Vou compartilhar com vocês algumas ideias e maneiras que costumo trabalhar com Continuous Testing utilizando o Bamboo CI como ferramenta.

Vale a pena mencionar que o conteúdo abaixo, é a minha perspectiva e também é um cenário que ja criei, implementei e que deu muito certo, porém a estratégia de Continuous Testing varia de projeto para projeto, a ideia é criar alguns artigos para dar uma "luz" para os colegas de QA que querem iniciar na ferramenta.

Chega de bla bla e vamos ao que interessa :D

Automação sem Continuous Testing?

Quando falamos de automação de testes, é importante vincular esse tema com o Continuous Testing ou Continuous Integration para agregar mais valor ao projeto e para localizar cada vez mais rápido os problemas.

Neste artigo vou explicar o conceito que utilizo para Continuous Testing na automação de testes de uma forma simples, espero que ajude.

Continuous Testing x Continuous Integration?

O CT (Continuous Testing) não está inserido em um pipeline de entrega do Continuous Integration e o que isso quer dizer?

Primeiro vamos falar rapidamente de Continuous Integration de uma maneira simples.

Para gerar uma build, uma release ou até mesmo lançar uma app na Play Store/Apple Store, temos o famoso pipeline, que basicamente consiste em uma linha produção, onde só passa para o próximo estágio, se todas as atividades anteriores estiverem sido executadas com sucesso. Abaixo temos uma pequena ilustração desse conceito:

Não foi fornecido texto alternativo para esta imagem

Temos uma serie de validações que antes de gerar uma nova versão da App, devem ser cumpridos com sucesso. Nesse caso, podemos inserir a nossa automação de testes nessa "linha produção", onde é necessário os testes passarem para que seja possível ir para o próximo estágio.

Continuous Testing

O Continuous Testing é uma maneira prática de termos validações continuas focada em uma versão da App ou até mesmo em uma funcionalidade especifica.

Imagine uma sprint de duas semanas, ao final da sprint é gerado uma nova versão de release (Uma app utilizável) e pegamos nessa versão para executar os nossos testes automatizados (Por exemplo, .ipa, apk etc.) e fazemos agendamentos, como por exemplo, executar uma suite de testes de UI todos os dias 23h00 e testes de API todos os dias 00h00.

E o nosso pipeline de testes, pode ter diferentes tipos de testes automatizados, que após passar por todos os estágios dos testes, o projeto terá uma maior integridade na qualidade da entrega:

  • Testes UI;
  • Performance;
  • Teste de API;
  • Segurança;
  • Etc.
Não foi fornecido texto alternativo para esta imagem

O que é o Bamboo CI?

O Bamboo é um servidor de integração contínua (CI) que pode ser usado para automatizar o gerenciamento de release de um software, criando um pipeline de entrega contínua, testes automatizados e relatórios contínuos sobre o status das execuções.

Estrutura para o Continuous Testing - Bamboo

  • Plan: Recomendo que cada projeto tenha um plan dedicado, pois no Plano irá conter todas as Stages e Tasks para executar os seus testes;
  • Stage: Costumo separa a stage por plataforma, por exemplo, um projeto tem desenvolvimento para Android, iOS e Web, para cada plataforma crio uma stage diferente para agrupar meus testes por plataforma (existem outras estratégias referentes a utilização da stage);
  • Tasks: As tasks é para definir quais atividades queremos que seja executada, o Bamboo CI oferece diferentes plugins para que isso seja possível (vou explicar sobre elas logo abaixo);
  • Report: Após a execução dos testes, é possível exportar o relatório para o Jira ou para outra ferramenta que tenha test management.


Não foi fornecido texto alternativo para esta imagem

Tasks

Como mencionei, as tasks são atividades pré-definidas que são executados no Bamboo CI, para testes automatizados costumo utilizar 3 tasks super simples:

  • Git Checkout: Precisamos definir qual o repositório que o servidor do Bamboo CI irá realizar o checkout do código;
  • Run Tests: Definimos quais suites de testes que queremos executar (Logo abaixo irei explicar melhor sobre isso);
  • Results Import: Irá analisar o XML gerado automaticamente pela task "Run Tests" e importará os relatórios para o Jira ou outra ferramenta que for de sua escolha.

Na imagem abaixo é possível visualizar um exemplo da interface do Bamboo CI com as tasks criadas.

Não foi fornecido texto alternativo para esta imagem

Run Tests

Para executar os testes é necessário saber qual framework de automação de testes você esta utilizando, mas posso mencionar alguns exemplos:

  • Selenium WebDriver: É possível configurar uma task do JUnit para definir quais as suites de testes vão ser executadas, via JUnit Runner. A task vai ler o arquivo Runner do JUnit e irá executar os testes que estiverem descritos;
  • Robot Framework (Appium/SeleniumLibrary): Criamos um .batch com o nome das suites/testes que queremos executar e o Bamboo CI irá interpretar esse .batch e irá correr somente os testes mencionados no arquivo .batch. Por exemplo: robot suite1.robot suite2.robot
  • Cucumber: É possível definir quais features queremos executar, separadas por suite ou definir um grupo especifico de testes.

Abaixo é possível ver alguns exemplos de tasks que o Bamboo disponibiliza para os testes automatizados. Alguns plugins pode ser que seja pago e outros já estão inclusos nos Tasks Types.

Não foi fornecido texto alternativo para esta imagem

Pessoal, espero que tenha ajudado a entender o conceito e a estrutura. Vou fazer uma segunda parte explicando como configurar o Bamboo CI para essa estrutura que mencionei.

Espero que tenham gostado e se quiserem adicionar mais informações e compartilhar experiência que tiverem, fiquem a vontade para comentar.

Um abraço e obrigada!!

Até a próxima.




Wesley Barros

QA | Analista de testes | Cypress | Jmeter | API | Mobile | Performance | Membro ANPPD®

5 a

Muito bom gostei da ideia, vou procurar estudar mais para conseguir elevar os meus testes até esse nível. Parabéns pelo post.

Gostaria sim de conhecer mais o bamboo

Entre para ver ou adicionar um comentário

Outros artigos de Amanda Lacerda

Outras pessoas também visualizaram

Conferir tópicos