continuous testing devops
O que é Teste Contínuo e Pipeline de Teste Contínuo no DevOps?
Espero que tenham gostado do último tutorial sobre Implantação contínua em DevOps .
Sabemos a importância de testar em qualquer entrega de software e DevOps sendo um ciclo curto de entregas, é impossível executar todos os casos de teste projetados a cada vez manualmente, quando uma única linha de código é atualizada na ferramenta de controle de versão e é aí que continua teste e pipeline de teste contínuo automatizado entram em cena no DevOps.
perguntas e respostas da entrevista de design de banco de dados
Leitura sugerida => Tutorial de treinamento DevOps desde o início
Benefícios do CT:
-
- Qualidade e rapidez são os grandes benefícios do CT.
- Feedback cada vez mais rápido sobre o código.
- Aumenta a confiança da equipe e os incentiva a melhorar continuamente.
VÍDEO Parte 3 Bloco 4: Teste Contínuo- 14 minutos e 39 segundos
Transcrição:
Neste bloco, aprenderemos sobre Teste contínuo e pipeline de teste contínuo em detalhe.
O teste contínuo é outro processo importante do pipeline de entrega contínua junto com a Integração Contínua, em um pipeline, que inclui, várias fases de teste em que os testes automatizados são executados junto com as portas de qualidade automatizadas no meio.
Assim, o teste contínuo é, executar testes automatizados, contínua e repetidamente contra a base de código e os vários ambientes de implantação.
Principalmente, testes de unidade, análise de código estático, análise de código de segurança, testes de integração, testes de carga e desempenho são parte de um teste contínuo que é executado em um pipeline de teste contínuo automatizado.
Como a integração contínua e a implantação contínua são chamadas de CI, CD, o teste contínuo é mais frequentemente chamado de CT.
Se você vir este diagrama, que é um pipeline de entrega contínua, esse pipeline inclui dois pipelines, um é um pipeline de construção que é pipeline de CI ou pipeline de integração contínua, que consiste em acionador de construção automatizado, compilação, construção e implantação.
O outro é um pipeline de teste, que é um pipeline de teste contínuo
Agora vamos ver mais sobre testes contínuos.
Sabemos a importância de testar, testar cada linha de código ... testar sempre ... e testar em diferentes estágios e é quase impossível executar todos os testes projetados manualmente a cada vez quando uma linha de código é atualizada para o controle de versão.
É aí que o teste contínuo entra em cena.
Portanto, a menos que o código que entra no pipeline integrado contínuo automatizado, seja testado exaustivamente e garanta a qualidade necessária, não há necessidade de liberar o software para os clientes. Quero dizer, a qualidade não pode ser garantida a menos que o código seja completamente testado.
Portanto, o teste contínuo, conforme definido anteriormente, é executar vários tipos de testes, continuamente na base do código e em diferentes ambientes nos quais ele é implantado, conforme predefinido e projetado no pipeline de entrega contínua.
Como você pode ver na imagem, os testes de unidade acontecem no próprio servidor de CI, que testa cada unidade do sistema isoladamente.
Os testes de integração acontecem no ambiente de integração que basicamente verifica os componentes integrados entre si. Testes de sistema no ambiente de teste de sistema, onde o sistema BIG com todos os componentes e interfaces integrados são testados por meio de cenários de nível de sistema em um ambiente de teste de sistema e assim por diante.
E a profundidade dos testes geralmente progride conforme a simulação do ambiente se aproxima da produção.
Os testes contínuos tornam-se progressivamente mais difíceis e longos com a progressão em direção ao ambiente de produção, pois precisamos adicionar lentamente uma série de testes e testes mais complicados conforme o código amadurece e a complexidade do ambiente avança.
como implementar uma tabela hash em java
Não é que os mesmos casos de teste seriam executados, os casos de teste precisam ser atualizados a cada vez em diferentes fases e os scripts automatizados são atualizados, conforme o código se torna mais amadurecido, avança para um nível superior de ambiente onde as configurações e infraestrutura também avançar, até entrar em produção.
Portanto, mesmo o tempo gasto para executar os testes aumenta conforme o teste avança em direção ao ponto de lançamento, como o teste de unidade pode levar muito menos tempo para ser executado, enquanto alguns testes de integração ou alguns testes de sistema ou testes de carga podem levar algumas horas para serem executados ou podem levar alguns dias para ser executado.
Aqui, o teste contínuo seria principalmente executar os casos de teste automatizados automaticamente com um gatilho. Mas, como definimos anteriormente, a entrega contínua também envolve certos testes manuais e portões, em que certos testes são realizados manualmente, antes de entrar em produção.
Essas portas de qualidade intermediária em cada estágio de teste e aumentam a confiança no código.
Portanto, o pipeline de testes contínuos inclui testes de unidade juntamente com verificações de segurança automatizadas preliminares. Em seguida, entra em um nível de integração de teste, onde testes de integração automatizados são executados, em seguida, em um nível de sistema onde os cenários de nível de sistema são automatizados e executados.
Aqui, até mesmo determinados cenários de teste de desempenho também são realizados.
Em seguida, vai para o 'Teste de aceitação' que inclui basicamente os casos de teste de aceitação do site automatizado e, finalmente, para o 'Teste de aceitação do usuário', que pode ser uma execução manual e inclui a participação do usuário final para realizar os testes e este será uma espécie de aprovação final do produto ou recurso, em que a porta manual é chamada e finalmente implantada no site de produção.
Então, basicamente, conforme os testes contínuos progridem, a complexidade dos testes e do ambiente de teste aumenta e chega ao ambiente que está mais próximo da simulação de produção.
Não preciso mencionar especificamente que todos esses estágios de teste incluem testes de verificação de compilação, testes de sanidade, testes de fumaça e testes de regressão, novamente, como eu disse, depende do que projetamos no teste contínuo e no pipeline de entrega.
Este é o pipeline de teste contínuo típico, bem, pode ser projetado pela equipe com base no tipo de produto e nos diferentes níveis de teste e tipos de teste que o produto exige.
O teste contínuo requer a integração da estrutura de automação com o controle de versão e a ferramenta CI e as várias ferramentas automatizadas para realizar o teste funcional e não funcional em diferentes fases de teste, como:
- Sonar para análise de código estático,
- Fortifique para análise de código seguro,
- Selênio para testes funcionais,
- Runner de carga para teste de carga etc.,
Microsoft TFS, Jenkins, chef, fantoche são algumas ferramentas disponíveis no mercado para projetar o pipeline de CI-CD.
Mas o fato é que essas ferramentas podem não suportar a automação completa de ponta a ponta, dependendo da ferramenta de controle de versão usada, então poucas organizações podem preferir desenvolver seus próprios frameworks de automação, o que permite a automação de ponta a ponta do pipeline de entrega a partir do código comprometa-se com a entrega do código.
Portanto, o teste contínuo sendo uma parte crucial do teste garante a qualidade do produto ou lançamento e deve-se ter muito cuidado com a seleção de uma ferramenta, estrutura, etc., que determina principalmente a qualidade e a velocidade de entrega.
Portanto, a configuração do pipeline correto de testes contínuos leva um pouco mais de tempo no pipeline de entrega contínua. Não apenas na parte de ferramenta e estrutura, mas também na parte de casos de teste. O teste contínuo também inclui a definição do pipeline de implantação.
Porque o CT requer a implantação automatizada da construção em vários ambientes em diferentes fases, o que exige a automação da implantação e a configuração dos ambientes por meio de scripts automatizados.
Esses scripts automatizados, que incluem a definição de configurações de infraestrutura e ambiente como um código, são verificados na ferramenta de controle de versão e o pipeline de entrega o seleciona da ferramenta de controle de versão para realizar a implantação. Isso é chamado de pipeline de implantação.
Agora vamos aos benefícios do CT,
Obter qualidade e velocidade é a maior vantagem dos testes contínuos.
Ao contrário de antes, onde o teste costumava acontecer apenas no final, o teste completo é o conceito de teste contínuo e, portanto, o teste contínuo em um pipeline de entrega, permite que a equipe introduza portas de qualidade em qualquer lugar e qualquer número de portas de qualidade que eles desejam, em ordem para atingir o grau de qualidade de que precisam.
Portanto, se o código falhar no teste em qualquer ponto ou passagem em um pipeline, a equipe pode voltar e falhar automaticamente em toda a implantação até aquele ponto.
Isso dá uma indicação clara para a equipe de Dev e Ops de que algo está faltando e a equipe pode trabalhar para consertar. Portanto, essa é a vantagem e a flexibilidade do pipeline de teste contínuo.
junção interna junção à esquerda junção à direita
Portanto, a introdução de gates de qualidade em várias fases de teste rege melhor a qualidade do código no pipeline.
Quanto mais o número de portas que o código passar, maior será a confiança da equipe no código de que ele pode chegar à produção em um nível mais alto de qualidade.
Assim, o teste contínuo aumenta a confiança da equipe e os incentiva a melhorar continuamente.
De modo geral, se a equipe não negligenciar nenhuma das falhas de teste em nenhuma das fases de teste ou portas de qualidade no pipeline, definitivamente o teste contínuo será um bônus para atingir metas de alta qualidade.
Portanto, para concluir o teste contínuo, desde os testes de unidade executados durante o estágio preliminar até o teste de aceitação, o teste de desempenho e até mesmo alguns testes manuais que serão executados são MUITO, MUITO críticos para definir o teste contínuo no pipeline de DevOps.
Isso conclui nossa discussão sobre os tópicos da Parte 3 de integração contínua, entrega contínua e teste contínuo.
Em nosso próximo tutorial, discutiremos mais sobre Gerenciamento de configuração, gerenciamento de liberação e monitoramento de desempenho de aplicativo.
PREV Tutorial | PRÓXIMO Tutorial
Leitura recomendada
- Implantação contínua em DevOps
- Entrega contínua em DevOps
- As 10 principais ferramentas de teste contínuo para teste de DevOps (lista 2021)
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Tutorial de teste de DevOps: como o DevOps afetará os testes de controle de qualidade?
- Recapitulação dos tutoriais em vídeo DevOps
- Integração contínua em DevOps
- Download do e-book do Testing Primer