Testes são elementos vitais ao longo do ciclo de vida de desenvolvimento de software, garantindo uma entrega com o mínimo de bugs possível e tornando o produto mais confiável.
No entanto, as equipes mais tradicionais ainda optam por construir e executar testes apenas na etapa final do desenvolvimento. Essa abordagem acaba por apresentar falhas, pois não suporta um feedback tão rápido e limita nosso tempo, atrapalhando a identificação precoce de bugs, tornando o teste um processo caro e aumentando o tempo de comercialização para o produto final.
De forma a potenciar feedbacks de testes mais rápidos, estes devem ser realizados no início do ciclo de vida do desenvolvimento de software – esta estratégia de teste é conhecida como Shift-Left e pode ser aplicada a testes funcionais e não funcionais. O teste Shift-Left permite que desenvolvedores e testadores trabalhem em estreita colaboração para criar e executar casos de teste nos estágios iniciais do ciclo de desenvolvimento.
Shift-Left é uma abordagem que move os testes para o início do ciclo de vida de desenvolvimento de software (portanto, “shifting left”). Se o teste de segurança acontecer apenas quando o código estiver pronto para produção, pode ser tarde demais para voltar atrás e corrigir os problemas rapidamente. Isso pode levar a atrasos, problemas de segurança e silos entre a segurança e as restantes equipes de DevOps.
Em outras palavras, é uma estratégia no desenvolvimento de software que pretende melhorar a qualidade da entrega, assim como prevenir e resolver problemas o mais cedo possível durante o ciclo de desenvolvimento.
Tudo fica mais compreensível quando visualizamos a imagem a seguir:

Do lado esquerdo, é colocado em prática o Shift-Left, onde o desenvolvimento é composto pelas etapas de planejamento, codificação, construção e testes.
A prática foi adotada primeiramente em conceitos como Test-Driven Development (TDD) e Behavior-Driven Development (BDD), porém está sendo aplicada em diferentes áreas. As plataformas de Continuous Integration/Continuous Delivery (CI/CD) permitem que as equipes implantem e utilizem ferramentas para fazer verificações e testes em cada etapa do fluxo.
A abordagem Shift-Left é composta por quatro metodologias que têm como objetivo sanar problemas de diferentes etapas durante o ciclo de desenvolvimento de software. São elas:
À medida que as organizações tentam migrar para uma estrutura mais DevSecOps, é fundamental trazer os testes de segurança mais cedo para o ciclo de vida de desenvolvimento. A maneira de fazer isso é integrando testes de segurança em pipelines de implantação para que o código seja testado continuamente, não se limitando apenas a testes com relação a outros commits no repositório compartilhado, mas também em termos de segurança como um todo.
A integração contínua (CI) é um processo que levanta e defende a bandeira da melhoria da qualidade do código por meio de pipelines de implantação. A segurança pode ser integrada nesses pipelines no início do processo. Sabendo disso, podemos integrar o Shift-Left em pipelines de integração contínua, como:
Existem ainda outros tipos de testes de segurança como Interactive Application Security Testing (IAST - Teste Interativo de Segurança de Aplicativos) e Runtime Application Self-Protection (RASP - Proteção de Segurança de Aplicativos em Tempo de Execução). O IAST opera colocando um agente dentro de um aplicativo e o RASP é mais uma ferramenta de segurança colocada dentro de um aplicativo que pode responder a ataques ao vivo.
Na prática, o conceito de Shift-Left visa encontrar e corrigir vulnerabilidades antecipadamente, no momento do código. Isso não apenas garante melhor segurança, mas também melhora a experiência do usuário, fornecendo software com mais rapidez, frequência e uma qualidade impecável.
Basicamente, ele acelera a eficiência do desenvolvimento e também pode reduzir custos indiretos, detetando e solucionando bugs de software no início do ciclo de desenvolvimento.
Em resumo, estas são as vantagens principais:
Os testes Shift-Left suportam equipes ágeis e práticas de DevOps, além de gerarem produtos de melhor qualidade com custo e tempo reduzidos. Também precisamos considerar que o conceito é popular na comunidade de testadores, pois tem como objetivo encontrar problemas mais cedo com custo de correção menor. Entre os DevOps, está também sendo cada vez mais adotado.
Entretanto, o que preocupa em sua maioria é o fato de tornar o fluxo de desenvolvimento lento e burocrático para lançamento de uma nova funcionalidade em produção. O teste de carga com a abordagem Shift-Left é uma estratégia muito sofisticada para garantir que sua aplicação seja sempre otimizada para um melhor desempenho.
Mas as ferramentas são feitas pensando justamente no desenvolvimento ágil, pelo que é preciso levar em conta que poucos minutos acrescentados à sua pipeline podem trazer ganhos expressivos à segurança, garantindo a qualidade do que será entregue ao usuário final e evitando problemas na sua aplicação.
Testes são elementos vitais ao longo do ciclo de vida de desenvolvimento de software, garantindo uma entrega com o mínimo de bugs possível e tornando o produto mais confiável.
No entanto, as equipes mais tradicionais ainda optam por construir e executar testes apenas na etapa final do desenvolvimento. Essa abordagem acaba por apresentar falhas, pois não suporta um feedback tão rápido e limita nosso tempo, atrapalhando a identificação precoce de bugs, tornando o teste um processo caro e aumentando o tempo de comercialização para o produto final.
De forma a potenciar feedbacks de testes mais rápidos, estes devem ser realizados no início do ciclo de vida do desenvolvimento de software – esta estratégia de teste é conhecida como Shift-Left e pode ser aplicada a testes funcionais e não funcionais. O teste Shift-Left permite que desenvolvedores e testadores trabalhem em estreita colaboração para criar e executar casos de teste nos estágios iniciais do ciclo de desenvolvimento.
Shift-Left é uma abordagem que move os testes para o início do ciclo de vida de desenvolvimento de software (portanto, “shifting left”). Se o teste de segurança acontecer apenas quando o código estiver pronto para produção, pode ser tarde demais para voltar atrás e corrigir os problemas rapidamente. Isso pode levar a atrasos, problemas de segurança e silos entre a segurança e as restantes equipes de DevOps.
Em outras palavras, é uma estratégia no desenvolvimento de software que pretende melhorar a qualidade da entrega, assim como prevenir e resolver problemas o mais cedo possível durante o ciclo de desenvolvimento.
Tudo fica mais compreensível quando visualizamos a imagem a seguir:

Do lado esquerdo, é colocado em prática o Shift-Left, onde o desenvolvimento é composto pelas etapas de planejamento, codificação, construção e testes.
A prática foi adotada primeiramente em conceitos como Test-Driven Development (TDD) e Behavior-Driven Development (BDD), porém está sendo aplicada em diferentes áreas. As plataformas de Continuous Integration/Continuous Delivery (CI/CD) permitem que as equipes implantem e utilizem ferramentas para fazer verificações e testes em cada etapa do fluxo.
A abordagem Shift-Left é composta por quatro metodologias que têm como objetivo sanar problemas de diferentes etapas durante o ciclo de desenvolvimento de software. São elas:
À medida que as organizações tentam migrar para uma estrutura mais DevSecOps, é fundamental trazer os testes de segurança mais cedo para o ciclo de vida de desenvolvimento. A maneira de fazer isso é integrando testes de segurança em pipelines de implantação para que o código seja testado continuamente, não se limitando apenas a testes com relação a outros commits no repositório compartilhado, mas também em termos de segurança como um todo.
A integração contínua (CI) é um processo que levanta e defende a bandeira da melhoria da qualidade do código por meio de pipelines de implantação. A segurança pode ser integrada nesses pipelines no início do processo. Sabendo disso, podemos integrar o Shift-Left em pipelines de integração contínua, como:
Existem ainda outros tipos de testes de segurança como Interactive Application Security Testing (IAST - Teste Interativo de Segurança de Aplicativos) e Runtime Application Self-Protection (RASP - Proteção de Segurança de Aplicativos em Tempo de Execução). O IAST opera colocando um agente dentro de um aplicativo e o RASP é mais uma ferramenta de segurança colocada dentro de um aplicativo que pode responder a ataques ao vivo.
Na prática, o conceito de Shift-Left visa encontrar e corrigir vulnerabilidades antecipadamente, no momento do código. Isso não apenas garante melhor segurança, mas também melhora a experiência do usuário, fornecendo software com mais rapidez, frequência e uma qualidade impecável.
Basicamente, ele acelera a eficiência do desenvolvimento e também pode reduzir custos indiretos, detetando e solucionando bugs de software no início do ciclo de desenvolvimento.
Em resumo, estas são as vantagens principais:
Os testes Shift-Left suportam equipes ágeis e práticas de DevOps, além de gerarem produtos de melhor qualidade com custo e tempo reduzidos. Também precisamos considerar que o conceito é popular na comunidade de testadores, pois tem como objetivo encontrar problemas mais cedo com custo de correção menor. Entre os DevOps, está também sendo cada vez mais adotado.
Entretanto, o que preocupa em sua maioria é o fato de tornar o fluxo de desenvolvimento lento e burocrático para lançamento de uma nova funcionalidade em produção. O teste de carga com a abordagem Shift-Left é uma estratégia muito sofisticada para garantir que sua aplicação seja sempre otimizada para um melhor desempenho.
Mas as ferramentas são feitas pensando justamente no desenvolvimento ágil, pelo que é preciso levar em conta que poucos minutos acrescentados à sua pipeline podem trazer ganhos expressivos à segurança, garantindo a qualidade do que será entregue ao usuário final e evitando problemas na sua aplicação.