image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Giane Mariano
Giane Mariano07/08/2025 12:53
Compartilhe
Suzano - Python Developer #2Recomendados para vocêSuzano - Python Developer #2

Por que Testes Automatizados Não Detectam Falhas de Segurança?

    Quando tudo passa, mas algo está errado

    Você criou os testes. O CI/CD rodou tudo. Todos os status vieram verdinhos.

    Deploy feito. Fim de papo? Não tão rápido.

    Mesmo com uma suíte robusta de testes automatizados, o seu sistema pode estar vulnerável.

    Isso não é exagero. É realidade.

    Sistemas com cobertura de testes de 90% já foram invadidos.

    O motivo? Os testes estavam olhando para um lado — enquanto a falha estava do outro.

    O que realmente são os testes automatizados?

    Testes automatizados são ótimos para garantir que:

    • O sistema faz o que deveria fazer
    • Um botão retorna o resultado esperado
    • Um fluxo não está quebrado após uma alteração
    • As regras de negócio estão sendo respeitadas

    Isso é essencial. Mas aqui vai a pergunta-chave:

    Eles também verificam o que o sistema não deveria fazer?

    A resposta na maioria dos casos: não.

    O que os testes automatizados normalmente ignoram?

    Vamos aos exemplos. Testes automatizados dificilmente detectam:

    Acesso indevido a dados de outros usuários

    (Ex: alterar o id=123 na URL para id=124 e ver dados de outro usuário)

    Injeções de código malicioso (XSS, SQLi)

    (Ex: scripts inseridos em campos de formulário)

    Erros que revelam informações internas

    (Ex: stack traces, mensagens de debug em produção)

    Tokens manipulados manualmente

    (Ex: modificar o JWT no navegador e ganhar privilégios)

    Falhas em configurações de permissões

    (Ex: endpoints “admin” acessíveis sem autenticação adequada)

    Essas situações não fazem parte do “roteiro padrão” dos testes. Mas fazem parte da realidade dos ataques.

    A diferença entre testar e atacar:

    QA tradicional:

    “Quero ter certeza de que o usuário consegue alterar o e-mail corretamente.”

    QA com mentalidade ofensiva:

    “E se eu tentar alterar o e-mail de outro usuário? Ou colocar um script em vez de um e-mail válido?”

    A maioria dos testes automatizados valida o fluxo feliz.

    Hackers e pentesters exploram os caminhos quebrados, escondidos ou mal protegidos.

     Por que segurança exige outro tipo de teste?

    Porque segurança é contexto. É imprevisível.

    Uma falha de segurança não depende só da lógica estar certa — mas do que pode ser abusado fora do esperado.

    E testar maliciosamente o sistema não está nos requisitos funcionais.

    Mas então, como QA posso contribuir com segurança?

    Você não precisa ser um hacker para ajudar a proteger seu sistema. Veja como começar:

    Inclua testes negativos nos seus fluxos

    Tente entradas inválidas, campos em branco, valores extremos, e o que ninguém usaria normalmente.

    Valide os limites de acesso

    Verifique se usuários comuns conseguem acessar áreas restritas.

    Teste erros com atenção

    Erros não devem revelar mais do que o necessário (evite mensagens como NullPointerException visíveis).

    Use scanners automáticos no CI/CD

    Ferramentas como ZAP ou Trivy ajudam a complementar seus testes.

    Aprenda com a comunidade Bug Bounty

    Veja como caçadores de bugs pensam e o que eles costumam explorar.

    Segurança não é só responsabilidade do time de segurança

    Muita gente pensa que segurança é função exclusiva de um Security Engineer.

    Mas o ideal é aplicar o conceito de “Security by Design”, onde o sistema já nasce com a segurança pensada desde o início.

    E é aí que o QA faz toda a diferença.

    Conclusão: Testes verdes não garantem segurança.

    Só porque tudo passou, não significa que ninguém consiga passar pelas suas defesas.

    Segurança real exige ir além do "funciona como esperado". É preciso testar o inesperado.

    Compartilhe
    Recomendados para você
    Akad - Fullstack Developer
    Suzano - Python Developer #2
    Riachuelo - Primeiros Passos com Java
    Comentários (1)
    DIO Community
    DIO Community - 07/08/2025 13:58

    Excelente artigo, Giane! Você trouxe à tona um ponto crucial (e muitas vezes negligenciado) dentro das rotinas de QA: testes automatizados garantem funcionalidade, mas não segurança. Sua analogia entre “testar o que deveria funcionar” e “testar o que não deveria ser possível” é extremamente poderosa e didática.

    Na DIO, acreditamos que segurança precisa ser pensada desde o início do ciclo de desenvolvimento, e o QA tem um papel estratégico nessa cultura de “Security by Design”. Sua abordagem mostra como incorporar testes negativos, validações de permissões e mindset ofensivo pode transformar o papel do QA em uma barreira real contra vulnerabilidades.

    Na sua visão, o maior desafio hoje está em educar os times para adotarem essa mentalidade preventiva ou em integrar ferramentas de segurança contínua (como ZAP ou Trivy) dentro dos pipelines de CI/CD de forma prática e acessível?

    Recomendados para vocêSuzano - Python Developer #2