Teste de caixa cinza
Teste de caixa cinza ou teste de caixa cinza é uma técnica de teste de software para testar um produto ou aplicativo de software com conhecimento parcial da estrutura interna do aplicativo. O objetivo do teste de caixa cinza é pesquisar e identificar os defeitos devido à estrutura de código inadequada ou uso impróprio de aplicativos.
Nesse processo, erros específicos de contexto relacionados a sistemas da web são comumente identificados. Ele aumenta a cobertura de teste, concentrando-se em todas as camadas de qualquer sistema complexo.
Teste de caixa cinza é um método de teste de software, que é uma combinação dos métodos de teste de caixa branca e de caixa preta.
- Na caixa branca, o teste de estrutura interna (código) é conhecido
- Na caixa preta, a estrutura interna do teste (código) é desconhecida
- Em Gray Box Testing a estrutura interna (código) é parcialmente conhecida
Em Engenharia de Software, o Gray Box Testing permite testar os dois lados de um aplicativo, a camada de apresentação e também a parte do código. É principalmente útil em testes de integração e testes de penetração.
Exemplo de teste de caixa cinza: ao testar recursos de sites como links ou links órfãos, se o testador encontrar algum problema com esses links, ele pode fazer as alterações imediatamente no código HTML e pode verificar em tempo real.
Por que o teste de caixa cinza
O teste de caixa cinza é realizado pelo seguinte motivo,
- Ele fornece benefícios combinados de teste de caixa preta e teste de caixa branca, ambos
- Ele combina a entrada de desenvolvedores e testadores e melhora a qualidade geral do produto
- Ele reduz a sobrecarga de longo processo de teste de tipos funcionais e não funcionais
- Isso dá tempo livre suficiente para um desenvolvedor corrigir defeitos
- O teste é feito do ponto de vista do usuário, e não do ponto de vista do designer
Estratégia de teste de caixa cinza
Para realizar o teste da caixa cinza, não é necessário que o testador tenha acesso ao código-fonte. Um teste é projetado com base no conhecimento de algoritmos, arquiteturas, estados internos ou outras descrições de alto nível do comportamento do programa.
Para realizar o teste da caixa cinza-
- Ele aplica uma técnica direta de teste de caixa preta
- É baseado na geração de casos de teste de requisitos, como tal, pré-define todas as condições antes que o programa seja testado pelo método de asserção.
As técnicas utilizadas para o teste de caixa cinza são-
- Teste de matriz: Esta técnica de teste envolve a definição de todas as variáveis que existem em seus programas.
- Teste de regressão : Para verificar se a mudança na versão anterior regrediu outros aspectos do programa na nova versão. Isso será feito testando estratégias como testar novamente tudo, testar novamente os casos de uso de risco e testar novamente dentro de um firewall.
- Teste de matriz ortogonal ou OAT : fornece cobertura máxima de código com casos de teste mínimos.
- Teste de padrão: Este teste é executado nos dados históricos dos defeitos anteriores do sistema. Ao contrário do teste de caixa preta, o teste de caixa cinza escava no código e determina por que a falha aconteceu
Normalmente, a metodologia Gray box usa ferramentas de teste de software automatizadas para conduzir o teste. Stubs e drivers de módulo são criados para aliviar o testador de gerar manualmente o código.
As etapas para realizar o teste da caixa cinza 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 entradas para subfunções
- Etapa 6 : desenvolver saídas para subfunções
- Etapa 7 : execute o caso de teste para subfunções
- Etapa 8 : verifique o resultado correto para subfunções
- Etapa 9 : Repita as etapas 4 e 8 para outras subfunções
- Etapa 10 : Repita as etapas 7 e 8 para outras subfunções
Os casos de teste para o teste de caixa cinza podem incluir, relacionado à GUI, à segurança, ao banco de dados, ao navegador, ao sistema operacional, etc.
Desafios de teste de caixa cinza
- Quando um componente em teste encontra uma falha de algum tipo pode levar ao aborto da operação em andamento
- Quando o teste é executado por completo, mas o conteúdo do resultado está incorreto.
Resumo:
- O custo geral dos defeitos do sistema pode ser reduzido e impedido de passar ainda mais com o teste da caixa cinza
- O teste de caixa cinza é mais adequado para GUI, teste funcional, avaliação de segurança, aplicativos da web, serviços da web, etc.
- Técnicas usadas para teste de caixa cinza
- Teste de Matriz
- Teste de Regressão
- Teste de OAT ou Matriz Ortogonal
- Teste de Padrão