< Insights

A importância de testes automatizados na implantação de DevOps

  • DevOps
  • Testes Automatizados

Com o intuito de atender às áreas de negócio, que cada vez mais precisam de respostas rápidas, empresas dos mais diversos setores vêm aderindo a novas práticas de mercado como metodologias ágeis e, mais recentemente, ao DevOps. Nesta difícil jornada de transformações, não podemos esquecer da importância dos testes automatizados na implantação de DevOps. Item imprescindível para garantir a qualidade dos sistemas que serão disponibilizados aos clientes.

Imagem com destaque para a frase "segundo a pesquisa publicada pela Puppet Labs, 63% dos pesquisados que adotaram DevOps em suas empresas conseguem entregar a demanda 30 vezes mais rápido.

Fonte: 13th annual State of Agile survey de 2018 pela CollabNet VersionOne

A adoção de técnicas que melhoram o ciclo de desenvolvimento de software vem crescendo nas empresas. Segundo pesquisa realizada em 2018 pela CollabNet VersionOne (13th annual State of Agile survey de 2018), 73% (48% + 25%) das empresas usam DevOps ou planejam implantar nos próximos 12 meses, sendo que no ano anterior esse percentual era de 71%

Gráfico mostrando 73% (48% + 25%) das empresas usam DevOps ou planejam implantar nos próximos 12 meses, sendo que no ano anterior esse percentual era de 71%. 

Fonte: 13th annual State of Agile survey de 2018 pela CollabNet VersionOne

DevOps é o termo utilizado para descrever uma prática de engenharia de software que visa aproximar os times de desenvolvimento (Dev) dos times de operação de software (Ops), promovendo uma integração melhor entre as etapas e as pessoas envolvidas no processo. E dessa forma obter uma entrega com mais eficácia e eficiência. 

Essa integração junto com o uso de ferramentas traz diversos benefícios, tais como: aumento da velocidade de entrega, melhoria da qualidade, entre outros. A imagem a seguir lista os principais benefícios relatados pelas empresas.

lista os principais benefícios relatados pelas empresas que usam DevOps

Fonte: 13th annual State of Agile survey de 2018 pela CollabNet VersionOne

Uma das técnicas muito utilizada no DevOps para aumentar a eficiência do processo é o uso de automação e monitoramento nas várias fases da construção do software. Como por exemplo, no ciclo de DevOps utilizado pela Objective desde 1999 (imagem 3), diversas etapas podem ser automatizadas com o uso de ferramentas. 

ciclo de DevOps utilizado pela Objective desde 1999 diversas etapas podem ser automatizadas com o uso de ferramentas. 

Entre as etapas que podem ser automatizadas, a primeira que deve ser atacada é a fase de testes. É esta que irá garantir a qualidade da aplicação e reduzir os custos com a diminuição dos erros. 

Software testing is a key part of the Agile+DevOps lifecycle — 72% of firms say testers are critical to continuous delivery success.” (The Definitive Software Quality Metrics For Agile+DevOps – Measuring The Risk Of A Release Candidate – July 2018).

Fonte: innovate.tricentis.com 

De pouco adiantará acelerar outras etapas do processo se isso levar a um aumento da ocorrência de erros em produção e consequentemente no aumento dos custos da empresa. 

Um estudo realizado pela IBM em 2008 mostrou que quanto antes se descobre um erro menor é o custo de corrigi-lo, podendo chegar a ser 25x menor se o erro for descoberto durante o desenvolvimento. 

Minimizing code defects to improve software quality and lower development costs.

Minimizing code defects to improve software quality and lower development costs. – Fonte: Development solutions White paper October 2008

Pois, manter a qualidade do software com a execução de testes de forma manual impactará de forma negativa no aumento da velocidade de entrega devido ao grande volume de testes necessários. À medida que se aumenta a quantidade e a complexidade das funcionalidades de um software aumenta-se exponencialmente o número de cenários de testes que devem ser feitos para garantir a qualidade do código. Isso porque a cada feature a necessidade de scripts é a combinação desta com as demais. Para diminuir o impacto no tempo de entrega,  uma abordagem manual teria que ser exponencial o que é inviável devido o alto custo gerencial. Isso reforça, ainda mais, a importância dos testes automatizados na implantação de DevOps.

Segundo pesquisa da Forrester de julho de 2018, as empresas que dependem de testes manuais têm duas vezes mais probabilidade de relatar que a fase de testes é um gargalo (59%), (The Definitive Software Quality Metrics For Agile+DevOps – Measuring The Risk Of A Release Candidate – July 2018.)

Assim sendo, a alternativa mais eficiente é a utilização de testes automatizados na implantação de DevOps, iniciando com testes unitários já na etapa de desenvolvimento. Isso vem sendo adotado por grandes empresas no mundo.

O estudo chamado – Accelerate: State of DevOps 2018: Strategies for a New Economy – realizado pela empresa americana DORA (Devops Research and Assessment), classificou as empresas pesquisadas em 4 níveis: elite, high, medium e low, considerando entre outros fatores, quantidade, qualidade e velocidade da entrega. O grupo da Elite, que representa apenas 7% das empresas, possui bem menos trabalhos executados manualmente do que as empresas dos demais níveis. Por exemplo, na Elite os testes representam apenas 10% dos trabalhos manuais, enquanto no nível Medium esse percentual chega a 50%. 

Esse mesmo estudo vem constatando que testes automatizados na implantação de DevOps têm impacto significativamente positivo:

“In previous years we found that test automation had a significant impact on continuous delivery. This year, we built upon prior years’ research and found that continuous testing positively impacts continuous delivery.” 

Além dos pontos mencionados até aqui, a automação de testes na implantação de DevOps irá aumentar a confiança dos times para experimentarem novas técnicas de desenvolvimento. Esse e outros benefícios podem ser vistos a seguir:

Confiança e Segurança para melhoria do código

Os desenvolvedores ganham confiança e tranquilidade para praticar Refactoring, uma das boas práticas do XP (Extreme Programming) na melhoria da qualidade do software. Mesmo que as alterações ocorram em códigos antigos e de grande impacto no sistema, os testes automatizados e outras verificações de código trazidas pelo DevOps dão segurança a todos, garantindo que o sistema continuará funcionando corretamente.

Redução de Custos

Conforme dito anteriormente a antecipação da detecção dos erros pode reduzir em mais de 25% o custo de correção. 

Outra técnica trazida pelo XP é o TDD – Test Driven Development. Que consiste em criar as classes de testes unitários antes mesmo de iniciar o código da funcionalidade. 

Numa esteira de DevOps com integração contínua (CI), os testes unitários são executados automaticamente toda vez que o código é liberado no sistema de versionamento. Se algum erro ocorrer o sistema não permite que o código seja versionado.

Aumento da produtividade e da qualidade.

Com a automação dos testes e outros procedimentos, o tempo que antes era gasto na preparação de massa de testes e execução dos cenários, agora pode ser utilizado para se dedicar à construção de novas funcionalidades, na melhoria do legado e também em aprendizado.

Portanto, melhorar o desenvolvimento de software e a entrega por meio da implantação de DevOps é o caminho que vem sendo adotado por muitas empresas. As pesquisas têm demonstrado que as grandes empresas têm dado maior atenção às automações. Porém, não focar na automação de testes irá acarretar na redução da qualidade das aplicações, no aumento dos custos devido ao aumento de erros em produção e por consequência maiores gastos com execução de testes manuais. Dar atenção à importância de testes automatizados na implantação de DevOps é fundamental. A adoção de práticas de testes automatizados será a base sólida que sustentará toda a estrutura de DevOps. É o que levará a excelência na entrega, maior satisfação dos clientes e melhores resultados para as empresas.

Para finalizar, segue uma boa dica ágil para quem quer dar os primeiros passos em busca dos benefícios dos testes automatizados: 

Comece pequeno e evolua de forma iterativa.

  1. Selecione um time pequeno e um projeto piloto.
  2. Invista em qualificação através de cursos e workshops.
  3. Tenha um mentor para acompanhar o time durante a fase inicial.
  4. Estabeleça métricas para acompanhar a evolução.
  5. Determine cadências de retrospectiva para validar e melhorar o processo.

A Objective Solutions atua no mercado de TI desde 1995. Entre 1997 e 1998 criou seu próprio framework de testes automatizados e desde então vem aprimorando suas técnicas de automação. Hoje conta com mais de 40 mil scripts de testes funcionais. 

Além da vasta experiência ela possui excelentes profissionais com amplo conhecimento em testes automatizados e DevOps. 

imagem de um tablet com o eBook DevOps dentro e ao lado a frase eBook DevOps Por que você precisa implantar ou não na sua empresa? Botão de clique aqui para baixar gratuitamente

Sugira um artigo

    Para enviar o formulário é necessário o aceite das políticas.

    Insights do nosso time

    Obtenha insights do nosso time de especialistas sobre metodologias de desenvolvimento de software, linguagens, tecnologia e muito mais para apoiar o seu time na operação e estratégia de negócio.