O que é Grey Box
A caixa cinza é o teste de software com conhecimento limitado de seu funcionamento interno. O teste de caixa cinza é uma técnica ética de hacking, na qual o hacker precisa usar informações limitadas para identificar os pontos fortes e fracos da rede de segurança de um alvo.
Quebrando caixa cinza
A caixa cinza é o híbrido do teste de caixa branca, onde o testador examina a lógica e a estrutura interna do código do software e o teste de caixa preta, onde o testador não sabe nada sobre o código do software. Para entender o teste de caixa cinza, primeiro precisamos entender o preto teste de caixa e teste de caixa branca.
Teste de caixa preta e caixa branca
O teste da caixa preta analisa nada mais que entradas do usuário e que saída o software produz, dadas essas entradas. O teste da caixa preta não requer nenhum conhecimento da linguagem de programação ou outros detalhes técnicos. É um tipo de teste de alto nível usado em testes do sistema e testes de aceitação. Os engenheiros de software exigem um documento de especificação de requisitos de software (SRS) para realizar testes de caixa preta. Esse teste tem uma perspectiva do usuário final, em que o testador de caixa preta não sabe como as saídas são geradas a partir das entradas.
O teste de caixa branca requer conhecimento aprofundado das técnicas e plataformas usadas para criar software, incluindo a linguagem de programação relevante. É um tipo de teste de baixo nível usado em testes de unidade e testes de indicação. Os engenheiros de software precisam entender a linguagem de programação usada para criar o aplicativo para que possam entender seu código-fonte. Os objetivos principais do teste de caixa branca são fortalecer a segurança, examinar como as entradas e saídas fluem através do aplicativo e melhorar o design e a usabilidade. Quando um testador de caixa branca não obtém a saída esperada de uma determinada entrada, o resultado é considerado um bug que precisa ser corrigido.
Teste de caixa cinza
O teste de caixa cinza inclui componentes importantes dos testes de caixa preto e branco para obter um resultado melhor do que qualquer um poderia obter sozinho. Usuários finais e desenvolvedores realizam testes de caixa cinza com conhecimento (parcial) limitado do código-fonte de um aplicativo. O teste da caixa cinza pode ser manual ou automatizado. É mais abrangente e consome mais tempo que o teste de caixa preta, mas não é tão abrangente ou consome tempo quanto o teste de caixa branca. Os testadores de caixa cinza requerem documentos de projeto detalhados.
O teste da caixa cinza envolve identificar entradas, identificar saídas, identificar os principais caminhos e identificar subfunções. Em seguida, ele passa a desenvolver entradas e saídas para subfunções, executando casos de teste para subfunções e verificando esses resultados.
Exemplo de caixa cinza
Um testador de caixa cinza pode verificar e corrigir os links em um site. Se um link não funcionar, o testador altera o código HTML para tentar fazer o link funcionar e, em seguida, verifica novamente a interface do usuário para verificar se o link funciona. Um testador de caixa cinza também pode testar uma calculadora online. O testador definiria entradas - fórmulas matemáticas como 1 + 1, 2 * 2, 5–4 e 15/3 - e depois verificaria se a calculadora fornece as saídas corretas, dadas essas entradas. O testador de caixa cinza tem acesso ao código HTML da calculadora e pode alterá-lo se algum erro for identificado.
O teste de caixa cinza analisa a interface do usuário do aplicativo ou a camada de apresentação e seu funcionamento interno ou código. É usado principalmente em testes de integração e penetração, mas não é adequado para testes de algoritmos. O teste de caixa cinza geralmente é usado para testar a interface do usuário, a segurança ou a funcionalidade online de um aplicativo por meio de técnicas como teste de matriz, teste de regressão, teste de matriz ortogonal e teste de padrão. Os testadores de caixa cinza têm mais probabilidade de identificar problemas específicos do contexto.
"Cinza" refere-se à capacidade parcial do testador de ver o funcionamento interno do aplicativo. "Branco" refere-se à capacidade de ver através da interface do software o seu funcionamento interno e "preto" refere-se à incapacidade de ver o funcionamento interno do software. O teste da caixa cinza às vezes é chamado de teste translúcido, enquanto o teste da caixa branca às vezes é chamado de teste claro e o teste da caixa preta também pode ser chamado de teste opaco.
