O que é o WHITE Box Testing? Técnicas, exemplo & Tipos

Índice:

Anonim

Teste de caixa branca

O Teste de Caixa Branca é uma técnica de teste de software em que a estrutura interna, o design e a codificação do software são testados para verificar o fluxo de entrada e saída e para melhorar o design, a usabilidade e a segurança. No teste de caixa branca, o código é visível para os testadores, por isso também é chamado de teste de caixa transparente, teste de caixa aberta, teste de caixa transparente, teste baseado em código e teste de caixa de vidro.

É uma das duas partes da abordagem do Teste de Caixa para o teste de software. Sua contraparte, o teste Blackbox, envolve o teste de uma perspectiva externa ou do tipo de usuário final. Por outro lado, o teste de caixa branca em engenharia de software é baseado no funcionamento interno de um aplicativo e gira em torno de testes internos.

O termo "WhiteBox" foi usado devido ao conceito de caixa transparente. A caixa transparente ou o nome WhiteBox simboliza a capacidade de ver através do invólucro externo do software (ou "caixa") seu funcionamento interno. Da mesma forma, a "caixa preta" em "Teste da caixa preta" simboliza não ser capaz de ver o funcionamento interno do software de forma que apenas a experiência do usuário final possa ser testada.

Neste tutorial de teste de caixa branca, você aprenderá-

  • O que é o teste da caixa branca?
  • O que você verifica no teste da caixa branca?
  • Como você realiza o teste da caixa branca?
  • Exemplo de teste de WhiteBox
  • Técnicas de teste de caixa branca
  • Tipos de teste de caixa branca
  • Ferramentas de teste de caixa branca
  • Vantagens do teste de caixa branca
  • Desvantagens do teste de WhiteBox

O que você verifica no teste da caixa branca?

O teste da caixa branca envolve o teste do código do software para o seguinte:

  • Falhas de segurança interna
  • Caminhos quebrados ou mal estruturados nos processos de codificação
  • O fluxo de entradas específicas por meio do código
  • Saída esperada
  • A funcionalidade de loops condicionais
  • Teste de cada afirmação, objeto e função individualmente

O teste pode ser feito nos níveis de sistema, integração e unidade de desenvolvimento de software. Um dos objetivos básicos do teste de caixa branca é verificar o fluxo de trabalho de um aplicativo. Envolve testar uma série de entradas predefinidas em relação às saídas esperadas ou desejadas para que, quando uma entrada específica não resultar na saída esperada, você tenha encontrado um bug.

Clique aqui se o vídeo não estiver acessível

Como você realiza o teste da caixa branca?

Para lhe dar uma explicação simplificada do teste de caixa branca, nós o dividimos em duas etapas básicas . Isso é o que os testadores fazem ao testar um aplicativo usando a técnica de teste da caixa branca:

PASSO 1) COMPREENDA O CÓDIGO FONTE

A primeira coisa que um testador costuma fazer é aprender e entender o código-fonte do aplicativo. Como o teste de caixa branca envolve o teste do funcionamento interno de um aplicativo, o testador deve ter muito conhecimento das linguagens de programação usadas nos aplicativos que está testando. Além disso, a pessoa de teste deve estar altamente ciente das práticas de codificação seguras. A segurança costuma ser um dos objetivos principais do teste de software. O testador deve ser capaz de encontrar problemas de segurança e evitar ataques de hackers e usuários ingênuos que podem injetar código malicioso no aplicativo, consciente ou inconscientemente.

Etapa 2) CRIAR CASOS DE TESTE E EXECUTAR

A segunda etapa básica para o teste de caixa branca envolve testar o código-fonte do aplicativo quanto ao fluxo e estrutura adequados. Uma maneira é escrever mais código para testar o código-fonte do aplicativo. O testador desenvolverá pequenos testes para cada processo ou série de processos no aplicativo. Esse método requer que o testador tenha conhecimento íntimo do código e geralmente é feito pelo desenvolvedor. Outros métodos incluem teste manual, teste de tentativa e erro e o uso de ferramentas de teste, conforme explicaremos mais adiante neste artigo.

Exemplo de teste de WhiteBox

Considere o seguinte trecho de código

Printme (int a, int b) {------------ Printme é uma funçãoresultado int = a + b;Se (resultado> 0)Imprimir ("Positivo", resultado)OutroImprimir ("Negativo", resultado)} ----------- Fim do código fonte 

O objetivo dos testes de WhiteBox em engenharia de software é verificar todos os ramos de decisão, loops e instruções no código.

Para exercitar as instruções no exemplo de teste de caixa branca acima, os casos de teste de WhiteBox seriam

  • A = 1, B = 1
  • A = -1, B = -3

Técnicas de teste de caixa branca

Uma das principais técnicas de teste de caixa branca é a análise de cobertura de código. A análise de cobertura de código elimina lacunas em um conjunto de casos de teste. Ele identifica as áreas de um programa que não são exercidas por um conjunto de casos de teste. Uma vez que as lacunas são identificadas, você cria casos de teste para verificar partes não testadas do código, aumentando assim a qualidade do produto de software

Existem ferramentas automatizadas disponíveis para realizar a análise de cobertura de código. Abaixo estão algumas técnicas de análise de cobertura que um testador de caixa pode usar:

Cobertura de declaração : - Esta técnica requer que cada declaração possível no código seja testada pelo menos uma vez durante o processo de teste da engenharia de software.

Branch Coverage - Esta técnica verifica todos os caminhos possíveis (if-else e outros loops condicionais) de um aplicativo de software.

Além do acima, existem vários tipos de cobertura, como cobertura de condição, cobertura de condição múltipla, cobertura de caminho, cobertura de função, etc. Cada técnica tem seus próprios méritos e tentativas de testar (cobrir) todas as partes do código de software. Usando a cobertura de declaração e filial, você geralmente atinge 80-90% de cobertura de código, o que é suficiente. A seguir estão técnicas de teste de WhiteBox importantes:

  • Cobertura de Declaração
  • Cobertura de Decisão
  • Cobertura de filial
  • Cobertura de condição
  • Cobertura de múltiplas condições
  • Cobertura de máquina de estado finito
  • Cobertura do Caminho
  • Teste de fluxo de controle
  • Teste de fluxo de dados

Consulte este artigo para saber mais detalhes https://www.guru99.com/code-coverage.html

Tipos de teste de caixa branca

O teste de caixa branca abrange vários tipos de teste usados ​​para avaliar a usabilidade de um aplicativo, bloco de código ou pacote de software específico. Estão listados abaixo -

  • Teste de unidade: geralmente é o primeiro tipo de teste feito em um aplicativo. O Teste de Unidade é executado em cada unidade ou bloco de código à medida que é desenvolvido. O Teste de Unidade é essencialmente feito pelo programador. Como desenvolvedor de software, você desenvolve algumas linhas de código, uma única função ou um objeto e os testa para se certificar de que funciona antes de continuar o Teste de Unidade ajuda a identificar a maioria dos bugs, no início do ciclo de vida de desenvolvimento de software. Os bugs identificados nesta fase são mais baratos e fáceis de corrigir.

  • Teste de vazamentos de memória : os vazamentos de memória são as principais causas de aplicativos em execução mais lenta. Um especialista em QA com experiência em detecção de vazamentos de memória é essencial nos casos em que você tem um aplicativo de software de execução lenta.

Além do acima, alguns tipos de teste fazem parte dos testes de caixa preta e caixa branca. Eles estão listados abaixo

  • Teste de penetração da caixa branca: neste teste, o testador / desenvolvedor tem informações completas do código-fonte do aplicativo, informações detalhadas da rede, endereços IP envolvidos e todas as informações do servidor em que o aplicativo é executado. O objetivo é atacar o código de vários ângulos para expor ameaças de segurança
  • Teste de mutação de caixa branca : o teste de mutação costuma ser usado para descobrir as melhores técnicas de codificação a serem usadas para expandir uma solução de software.

Ferramentas de teste de caixa branca

Abaixo está uma lista das principais ferramentas de teste da caixa branca.

  • Parasoft Jtest
  • EclEmma
  • NUnit
  • PyUnit
  • HTMLUnit
  • CppUnit

Vantagens do teste de caixa branca

  • Otimização de código encontrando erros ocultos.
  • Casos de teste de caixa branca podem ser facilmente automatizados.
  • O teste é mais completo, pois todos os caminhos de código geralmente são cobertos.
  • O teste pode começar no início do SDLC, mesmo se a GUI não estiver disponível.

Desvantagens do teste de WhiteBox

  • O teste de caixa branca pode ser bastante complexo e caro.
  • Os desenvolvedores que geralmente executam casos de teste de caixa branca o detestam. O teste da caixa branca pelos desenvolvedores não detalhado pode levar a erros de produção.
  • O teste de caixa branca requer recursos profissionais, com uma compreensão detalhada de programação e implementação.
  • Os testes de caixa branca consomem tempo, os aplicativos de programação maiores levam tempo para serem testados completamente.

Notas Finais:

  • O teste de caixa branca pode ser bastante complexo. A complexidade envolvida tem muito a ver com o aplicativo que está sendo testado. Um pequeno aplicativo que executa uma única operação simples pode ser testado na caixa branca em poucos minutos, enquanto aplicativos de programação maiores levam dias, semanas e até mais para serem testados completamente.
  • O teste da caixa branca no teste de software deve ser feito em um aplicativo de software conforme ele está sendo desenvolvido após ser escrito e novamente após cada modificação