What is Gray Box Testing?
O teste de caixa cinza é um segurança do aplicativo técnica de teste que mistura testes de caixa branca e caixa preta. Em uma avaliação caixa branca, o testador possui conhecimento interno completo do sistema que está sendo testado (código-fonte, documentos de design, etc.). Uma avaliação de caixa preta é realizada sem qualquer conhecimento dos componentes internos do sistema.
O teste de caixa cinza divide a diferença, fornecendo ao avaliador conhecimento parcial dos componentes internos do sistema. Por exemplo, um testador caixa cinza pode não ter conhecimento completo do código-fonte de um aplicativo, mas pode ter conhecimento parcial dele e/ou acesso à documentação de design. Isso fornece mais informações do que os testes de caixa preta e menos do que uma avaliação de caixa branca.
Estratégia de teste de caixa cinza
A gray box tester has more information than in a teste de caixa preta e menos do que em um teste de caixa branca. Isso é intencional e permite que um testador de caixa cinza combine os benefícios de ambas as abordagens.
Os testes de caixa cinza podem melhorar a eficiência e a cobertura do teste de uma avaliação de caixa preta, fazendo pleno uso das informações fornecidas. Embora um testador não tenha acesso total ao código-fonte do aplicativo, ele possui conhecimento e documentação suficientes para compreender as funções principais do aplicativo. Isso torna possível projetar casos de teste que se concentrem em prováveis problemas de funcionalidade e segurança, em vez de testar cegamente.
Os avaliadores da caixa cinza têm menos informações do que os testes da caixa branca, o que pode melhorar a eficiência e o realismo do teste. Ao reduzir o número de entradas para a avaliação, o tempo pode ser concentrado em testes ativos, em vez de processar e revisar o código e a documentação fornecidos. Além disso, negar aos avaliadores o pleno conhecimento do sistema ajuda a evitar preconceitos sobre a forma como um sistema é concebido para funcionar, em oposição à forma como realmente funciona.
Etapas para realizar testes de caixa cinza
Uma avaliação caixa cinza é uma avaliação estruturada baseada no conhecimento disponível do sistema em teste. Deve seguir estas etapas:
- Identifique entradas com base em técnicas de teste de caixa branca e caixa preta
- Identifique os resultados que essas entradas devem produzir com base na documentação fornecida
- Identifique os fluxos de controle primários que devem ser testados
- Identifique subfunções importantes que devem receber testes aprofundados
- Identificar entradas para uma subfunção
- Identifique as saídas que a subfunção deve produzir para as entradas fornecidas
- Desenvolva e execute um caso de teste para esta subfunção
- Verifique se a subfunção produz o resultado esperado para o caso de teste
- Repita as etapas 4 a 8 para todas as subfunções
Técnicas de teste de caixa cinza
O teste de caixa cinza pode ser realizado de algumas maneiras diferentes, incluindo:
- Teste de matriz: O teste matricial concentra-se nas variáveis dentro de um programa, enumerando-as, avaliando os riscos que representam e testando se são usadas correta e eficientemente.
- Teste de regressão: O código pode ser modificado para adicionar funcionalidade ou corrigir problemas de segurança. O teste de regressão verifica se um aplicativo ainda passa nos testes após ser modificado.
- Teste de padrão: O teste de padrões analisa o passado de um aplicativo para identificar tendências que causaram defeitos no passado e que podem causar defeitos no futuro. Os resultados desses testes podem ser usados para evitar que esses problemas se repitam no futuro.
- Teste de matriz ortogonal (OAT): OAT é usado com um aplicativo que possui algumas entradas complexas. Ele usa estatísticas para criar um conjunto de casos de teste que fornece uma boa cobertura de testes sem a sobrecarga de testes exaustivos.
Black Box vs White Box Testing vs Gray box
Os testes de caixa preta, caixa branca e caixa cinza fornecem ao testador níveis variados de conhecimento sobre os componentes internos do sistema que está sendo testado. Em um extremo, o teste de caixa branca fornece acesso completo ao código-fonte e à documentação de design. Por outro lado, os testadores de caixa preta não têm conhecimento interno de como o aplicativo funciona.
Esses diversos níveis de conhecimento e acesso impactam significativamente o processo de teste. Algumas das principais diferenças incluem:
- Test Coverage: O teste de caixa branca pode garantir a cobertura completa do teste porque tem acesso total ao código, enquanto o teste de caixa preta não oferece tais garantias. A caixa cinza fica no meio, pois os testadores podem realizar algum planejamento de teste com base na documentação, mas são cegos para caminhos de código não documentados e inacessíveis.
- Localização no SDLC: O teste de caixa branca usa código-fonte, portanto pode ser implementado antecipadamente Pipelines de CI/CD. Os testes de caixa cinza e preta funcionam na execução do código, portanto, caem posteriormente no SDLC.
- Ferramentas de análise: O teste de caixa branca usa ferramentas de análise de código estático para analisar o código-fonte. Uso de testes de caixa cinza e preta análise dinâmica de código ferramentas, como verificação de vulnerabilidade, para analisar um aplicativo em execução.
- Tester Mindset: O teste de caixa branca vem da mentalidade do desenvolvedor, enquanto o teste de caixa preta é realizado da perspectiva do usuário. O teste de caixa cinza divide a diferença, eliminando preconceitos dos desenvolvedores sobre como um aplicativo foi projetado para funcionar, mas também fornecendo acesso a mais informações do que o usuário médio possui.
Check Point CRT
Check Point’s Professional Services portfólio pode ajudar a apoiar os esforços de segurança de aplicativos de uma organização. Avaliações de segurança de caixa branca, cinza e preta fazem parte do programa da Check Point Serviços de testes de resiliência/penetração de segurança cibernética.
Saiba mais sobre como reforçar o programa de segurança de aplicativos da sua organização com o Check Point serviços de testes profissionais. Além disso, fique à vontade para Entre em contato conosco para saber mais sobre como criar um programa de testes personalizado e ajudar a identificar e corrigir problemas de segurança em sua organização.
