O que é cinza Box Testando? Técnicas, Exemplo
⚡ Resumo Inteligente
Grey Box Os testes examinam uma aplicação com conhecimento parcial de sua estrutura interna, combinando a visão do usuário dos testes de caixa preta com informações arquitetônicas suficientes para explicar por que uma falha ocorreu, em vez de apenas constatar que ela ocorreu.

O que é cinza Box Testando?
Grey Box Testes (também grafado Gray) Box Testes (ou testes de software) são uma técnica de teste de software que testa um produto ou aplicativo de software com conhecimento parcial da estrutura interna do aplicativo. O objetivo do Grey é testar um produto ou aplicativo de software com conhecimento parcial da estrutura interna do aplicativo. Box O objetivo dos testes é buscar e identificar defeitos causados por estrutura de código inadequada ou uso incorreto do aplicativo.
Nesse processo, erros específicos do contexto relacionados a sistemas web são comumente identificados. A técnica aumenta cobertura de teste Ao concentrar-se em todas as camadas de um sistema complexo, em vez de apenas em uma delas.
Grey Box O teste é um método de teste de software que combina Branco Box Testes e Preto Box TestesA distinção entre os três reside na quantidade de estrutura interna que o testador consegue visualizar:
- Em branco Box O teste da estrutura interna (código) é conhecido.
- De preto Box A estrutura interna (código) a ser testada é desconhecida.
- Em cinza Box O teste da estrutura interna (código) é parcialmente conhecido.
O diagrama abaixo coloca os três métodos na mesma escala de visibilidade.
In Engenharia de software, Cinzento Box Os testes permitem testar ambos os lados de uma aplicação, tanto a camada de apresentação quanto o código subjacente. São especialmente úteis em teste de integração e teste de penetração.
Exemplo de cinza Box Teste: Ao testar uma funcionalidade de um site, como links ou links órfãos, se o testador encontrar um problema com esses links, a alteração pode ser feita imediatamente no código HTML e verificada em tempo real.
Por que cinza? Box Testes
Grey Box Os testes são realizados pelos seguintes motivos:
- Oferece os benefícios combinados dos testes de caixa preta e dos testes de caixa branca.
- Ele combina as contribuições de desenvolvedores e testadores, melhorando a qualidade geral do produto.
- Isso reduz a sobrecarga do longo processo de teste de tipos funcionais e não funcionais.
- Isso dá ao desenvolvedor tempo livre suficiente para corrigir defeitos.
- Os testes são realizados do ponto de vista do usuário, e não do ponto de vista do designer.
- Uma falha pode ser explicada em vez de apenas relatada, porque o testador consegue ver a camada onde ela ocorreu.
Grey Box Testando vs. Preto Box vs Branco Box Testes
Os três métodos não são alternativas concorrentes, mas sim três níveis de acesso, e cada um responde a um tipo diferente de pergunta. Colocá-los lado a lado torna a escolha concreta.
| Base | Preto Box Testes | Grey Box Testes | Branco Box Testes |
|---|---|---|---|
| Conhecimento da estrutura interna | nenhum | Parcial | completo |
| Executado por | Testadores e usuários finais | Testadores e desenvolvedores que trabalham com testadores | Desenvolvedores e engenheiros de teste |
| Bases do projeto de teste | Requisitos e especificações | Archiarquitetura, algoritmos, estruturas de dados e interfaces | Código-fonte e fluxo de controle |
| Nível típico | Testes de sistema e de aceitação | Testes de integração, penetração e serviços web | Testes de unidade e componente |
| Cobertura medida como | Cobertura dos requisitos | Cobertura de interface, dados e caminhos | Cobertura de declaração, ramificação e caminho |
| Principal limitação | A causa de uma falha permanece oculta. | A profundidade é limitada pelo acesso concedido. | Caro e pode não atender a todos os requisitos. |
A maioria das equipes usa os três em todo o ciclo de vida de teste de softwareE a camada da caixa cinza é onde os defeitos que se encontram entre a interface do usuário e o armazenamento de dados são geralmente detectados.
Grey Box Estratégia de teste
Para executar Grey Box Para realizar testes, não é necessário que o testador tenha acesso ao código-fonte. Um teste é projetado com base no conhecimento dos algoritmos, arquiteturas, estados internos ou outras descrições de alto nível do comportamento do programa.
Para executar Grey Box Teste:
- Aplica as técnicas diretas de teste de caixa preta.
- É baseado na geração de casos de teste orientada por requisitos, portanto, todas as condições são predefinidas antes que o programa seja testado pelo método de asserção.
Técnicas utilizadas para tons de cinza Box Os testes são:
- Teste de matriz: Essa técnica envolve definir todas as variáveis existentes no programa, juntamente com o risco que cada uma acarreta, de forma que as variáveis não utilizadas e de alto risco fiquem visíveis.
- Teste de regressão: Verifica se uma alteração na versão anterior causou regressão em outros aspectos do programa na nova versão. Isso é feito com estratégias como retestar tudo, retestar casos de uso de risco e retestar dentro de um firewall.
- Teste de matriz ortogonal ou OAT: Oferece cobertura máxima de código com um número mínimo de casos de teste.
- Teste de padrão: realizado com base em dados históricos de defeitos anteriores do sistema. Ao contrário dos testes de caixa preta, o teste Grey Box Os testes analisam o código a fundo e determinam por que ocorreu a falha.
Grey Box A metodologia geralmente utiliza automação. ferramentas de teste de software Para realizar os testes, são criados stubs e drivers de módulo para que o testador não precise gerar o código manualmente.
Passos para realizar o procedimento Grey Box Os testes são:
- Etapa 1: Identificar as entradas.
- Etapa 2: Identificar as saídas.
- Etapa 3: Identificar os principais caminhos.
- Etapa 4: Identificar subfunções.
- Etapa 5: Desenvolver as entradas para as subfunções.
- Etapa 6: Desenvolver as saídas para as subfunções.
- Etapa 7: Execute o caso de teste para as subfunções.
- Etapa 8: Verifique se o resultado das subfunções está correto.
- Passo 9: Repita os passos 4 a 8 para as outras subfunções.
- Passo 10: Repita os passos 7 e 8 para as outras subfunções.
Os casos de teste para Grey Box Os testes podem abranger aspectos de interface gráfica do usuário (GUI), segurança, banco de dados, navegador e sistema operacional, entre outros. Cada caso gerado ainda precisa dos procedimentos usuais. caso de teste atributos, visto que um caso que não pode ser reproduzido a partir de sua própria descrição é de pouca utilidade durante a regressão.
Onde Cinza Box Os testes são usados
A técnica se mostra útil sempre que um defeito só pode ser diagnosticado analisando-se duas camadas simultaneamente. Os cenários a seguir são aqueles em que ela é mais frequentemente aplicada:
- Fluxos de trabalho baseados em banco de dados: Uma ação é realizada através da interface do usuário, e as linhas resultantes são então consultadas diretamente para confirmar se os valores, tipos e relacionamentos foram armazenados conforme o esperado.
- Serviços web e APIs: Uma solicitação é enviada e o status da resposta, os cabeçalhos e a carga útil são verificados em relação à configuração publicada.tract, que é a forma cotidiana de Teste de API.
- Pontos de integração: As mensagens que cruzam a fronteira entre dois módulos são inspecionadas enquanto ambos os módulos são tratados como sistemas em execução, e não como arquivos de origem.
- Avaliação de segurança: Um testador de penetração, ao receber uma conta de usuário normal e uma visão geral da arquitetura, reproduz a posição de um agente interno, que é o modelo padrão de teste de caixa cinza.
- Aplicações web e interfaces gráficas de usuário (GUIs): Links quebrados, páginas órfãs, gerenciamento de sessões e validação do lado do cliente são verificados com visibilidade parcial da marcação e do fluxo de requisição.
Em todos esses casos, o custo total dos defeitos do sistema é reduzido porque os problemas são detectados e explicados antes de se propagarem para as etapas seguintes do processo. teste do sistema ou produção.
Grey Box Ferramentas de teste
Nenhuma ferramenta executa Grey Box O teste em si. O que a categoria precisa é de uma combinação de um driver de interface, uma ferramenta de inspeção para a camada subjacente e uma maneira de automatizar a integração dos dois por meio de scripts.
- Clientes de API e serviços web como Postman e SoapUI, usado para emitir solicitações e fazer afirmações sobre códigos de status e corpos de resposta.
- Clientes de banco de dados e ferramentas de consulta SQL, usado para verificar o estado persistido após uma ação de interface.
- Ferramentas de desenvolvedor do navegador e proxies HTTP como Burp Suite, usado para inspecionar e modificar solicitações durante sessões orientadas à segurança.
- frameworks de automação de interface do usuário como Selenium, usado para controlar a camada de apresentação dentro de um teste de automação diante.
- Ferramentas de registro e monitoramento, usado para correlacionar uma falha observada com o que o aplicativo registrou internamente naquele momento.
A escolha importa menos do que a fiação: a menos que o driver da interface e a etapa de inspeção sejam executados no mesmo fluxo programado, o resultado são duas verificações manuais separadas em vez de um único teste de caixa cinza.
Grey Box Desafios de teste
A visibilidade parcial introduz problemas que nenhum dos métodos puros apresenta, e os seguintes são os problemas que as equipes encontram com mais frequência:
- Quando um componente em teste apresenta algum tipo de falha, ele pode interromper a operação em andamento e deixar o restante da sequência sem ser executado.
- Um teste pode ser executado por completo, mas o conteúdo do resultado estar incorreto; portanto, a etapa de verificação deve checar os valores em vez da conclusão.
- A cobertura completa do caminho do código não é alcançável, porque o testador nunca vê todos os ramos que um teste de caixa branca alcançaria.
- A documentação de projeto na qual os testes se baseiam pode estar desatualizada, e um esquema ou especificação de interface obsoletos invalidam silenciosamente o projeto de teste.
- Os testadores precisam tanto de conhecimento da área quanto de profundidade técnica, o que representa um perfil de habilidades mais específico para o qual é difícil recrutar.
- Distribuído e fortemente abstracArquiteturas complexas dificultam a atribuição de uma falha observada a um componente interno específico.
Essas limitações justificam o tratamento de Grey. Box Os testes são vistos como uma camada entre várias, e não como uma substituição para as outras, que é o ponto defendido em todo o conjunto mais amplo de técnicas de teste de software e tipos de testes de softwareEle se encaixa naturalmente ao lado teste funcional e abordagens orientadas por especificações, como teste baseado em modelo.

