As empresas comprometidas com testes baseados em pessoas, melhores práticas e princípios ágeis melhoram claramente os seus negócios. Vamos ver como.

Por Isaac Sacolick
O teste contínuo ( teste ) é uma prática e uma filosofia dentro das equipas de desenvolvimento de software. Developers e especialistas em garantir a qualidade das aplicações iniciam a sua prática de testes contínuos a trabalhar no pipeline do DevOps CI / CD (integração contínua/desenvolvimento contínuo) e a ativar uma lista de testes automatizados executados a cada criação e entrega. A filosofia surge quando os developers, engenheiros e especialistas em garantia de qualidade começam a colaborar em estratégias e implementações de teste.
Essa colaboração é extremamente importante porque muitas organizações de tecnologia não gastam nem os recursos humanos e financeiros nem o tempo necessário para realizar testes adequados. Isso significa que uma organização de desenvolvimento de software deve estabelecer uma estratégia de teste que defina uma abordagem ideal, uma estratégia de implementação e funções de suporte contínuo que se ajustem às limitações existentes.
Embora as equipas de desenvolvimento precisem de criar uma estratégia holística de teste, também precisam de uma estratégia específica para testes contínuos por vários motivos. Por um lado, por que fazer uma teste de continuidade é a maneira ideal para implementar uma estratégia de testes específicos, porque fornece aos developers um feedback antes do código atingir um ambiente de entrega. É particularmente importante para a execução da análise de qualidade e segurança do código, para que os developers aprendam e adotem as melhores práticas.
Pode ser um investimento mais caro, os testes contínuos precisam ser automatizados primeiro, integrados no pipeline de CI / CD e configurados com alertas para que as ferramentas relatem os problemas descobertos às pessoas certas. Como estes testes são realizados durante a construção e entrega, as equipas precisam ser seletivas sobre o tipo de teste a ser implementado e considerar sua duração . O teste a longo prazo não é ideal para testes contínuos se este atrasar os developers. A melhor maneira de rever as opções de implantação e fazer com que as equipas colaborem nas soluções é optar por uma estratégia de teste contínua.
As pessoas no centro
Está a tornar-se cada vez mais importante definir uma estratégia de teste contínuo usando uma abordagem ágil. Numa estrutura de teste contínuo, pessoas diferentes beneficiam dos testes, portanto é necessário priorizar quais tipos de testes devem ser implementados. Algumas destas pessoas ou partes interessadas são os developers, que querem garantir a qualidade do código e que as suas modificações não quebram os serviços ou outras áreas do código; aqueles focados na análise estática de códigos, testes de penetração e outros indicadores que alertam sobre os riscos à segurança; equipas de operações, preocupadas com as alterações no código, que não apresentam problemas de desempenho ou afetam a confiabilidade da aplicação; a segurança da informação do equipamento especialistas em garantia de qualidade que representam os interesses dos utilizadores finais da aplicação e do proprietário do produto; os arquitetos de software que representam a qualidade de serviço e as APIs, que estão em melhor posição para definir as regras sobre se protocolos novos ou modificados têm um problema de qualidade; os especialistas em gestão de banco de dados, que se preocupam se os developers introduziram novos problemas sem perceber a qualidade ou segurança dos dados; a equipe de desenvolvimento ágil, que deve responder e corrigir os problemas quando uma construção de CI / CD falha…
Como aplicar testes contínuos
Como dissemos antes, nem todos os testes automatizados se prestam bem a testes contínuos. Primeiro, as ferramentas para executar os testes devem integrar-se perfeitamente ao Jenkins, CircleCI, Bamboo ou outras ferramentas de CI / CD usadas para integração e entrega contínuas. Se a equipa precisar fazer muito trabalho para integrar os testes ao pipeline de CI / CD, isso afastará o tempo de outras tarefas críticas de negócios e tecnologia. Ferramentas como SmartBear, BlazeMeter, Tricentis qTest, BrowserStack, SauceLabs, Postman e muitas outras possuem integrações e plug-ins para o Jenkins.
Segundo, executar testes contínuos requer ambientes de computação adequados para executar testes automatizados. Muitas organizações que trabalham em ambientes de desenvolvimento, teste e produção configurados manualmente lutam para manter as alterações de infraestrutura e configuração sincronizadas entre si. Sempre que possível, é melhor padronizar os ambientes e usar a infraestrutura como ferramentas de código como Puppet, Chef ou Ansible para gerir as suas configurações antes de investir em testes contínuos.
Por fim, os testes contínuos devem ser fáceis de automatizar, executar em um tempo razoável, definir critérios de aprovação ou rejeição e ter rotas bem definidas para solucionar problemas. Por exemplo, testes funcionais executados em milhares de cenários de teste podem levar muito tempo a serem executados. Podem funcionar melhor como trabalhos agendados. Os testes de segurança que relatam muitos alertas devem ser revistos pelo pessoal de segurança da informação, em vez de interromper a construção do pipeline. Um teste de qualidade de dados que não pode se conectar facilmente ao código, o developer ou equipa que criou o problema não deve estar no pipeline do CI / CD pois interrompe o desenvolvimento de todos e pode exigir uma extensa equipa para analisar o problema. Também é importante pesquisar as melhores práticas.
Concentre-se em “ágil”
Uma vez que a equipe concorda em abordar uma estratégia de teste contínuo, o trabalho deve ser priorizado, considerando os benefícios e as limitações dos testes propostos. As partes interessadas devem priorizar os testes recomendados e classificar sua importância com base nos riscos envolvidos. A equipe ágil deve determinar se o teste é apropriado para integrar ao pipeline de CI / CD, em seguida, avaliar a implementação. Por fim, é importante catalogar estes testes, porque muitos podem atrasar os desenvolvimentos ou exigir que a infraestrutura necessária seja aumentada.
Investir em testes contínuos melhora a colaboração no desenvolvimento e na qualidade do software, mas exige que as equipas estejam alinhadas às prioridades, finalidade e detalhes da implementação. Seguir uma estratégia ágil aumenta as hipóteses reduzir riscos e gerar mais valor .