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:
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.
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.
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.
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.
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.
QA | Analista de testes | Cypress | Jmeter | API | Mobile | Performance | Membro ANPPD®
5 aMuito bom gostei da ideia, vou procurar estudar mais para conseguir elevar os meus testes até esse nível. Parabéns pelo post.
QA Specialist | Keeggo
5 aGostaria sim de conhecer mais o bamboo
Analista de Qualidade
5 aShowwww