Teste de Software - Métodos

Existem diferentes métodos que podem ser usados ​​para teste de software. Este capítulo descreve resumidamente os métodos disponíveis.

Teste de caixa preta

A técnica de testar sem ter nenhum conhecimento do funcionamento interno do aplicativo é chamada de teste de caixa preta. O testador está alheio à arquitetura do sistema e não tem acesso ao código-fonte. Normalmente, ao realizar um teste de caixa preta, um testador irá interagir com a interface do usuário do sistema, fornecendo entradas e examinando saídas sem saber como e onde as entradas são trabalhadas.

A tabela a seguir lista as vantagens e desvantagens do teste de caixa preta.

Vantagens Desvantagens
Bem adequado e eficiente para grandes segmentos de código. Cobertura limitada, uma vez que apenas um número selecionado de cenários de teste é realmente executado.
O acesso ao código não é necessário. Teste ineficiente, devido ao fato de que o testador tem conhecimento limitado sobre um aplicativo.
Separa claramente a perspectiva do usuário da perspectiva do desenvolvedor por meio de funções definidas de forma visível. Cobertura cega, uma vez que o testador não pode visar segmentos de código específicos ou áreas sujeitas a erros.
Um grande número de testadores moderadamente qualificados pode testar o aplicativo sem nenhum conhecimento de implementação, linguagem de programação ou sistemas operacionais. Os casos de teste são difíceis de projetar.

Teste de caixa branca

O teste de caixa branca é a investigação detalhada da lógica interna e da estrutura do código. O teste de caixa branca também é chamadoglass testing ou open-box testing. A fim de realizarwhite-box testando em um aplicativo, um testador precisa saber o funcionamento interno do código.

O testador precisa dar uma olhada dentro do código-fonte e descobrir qual unidade / pedaço do código está se comportando de maneira inadequada.

A tabela a seguir lista as vantagens e desvantagens do teste de caixa branca.

Vantagens Desvantagens
Como o testador tem conhecimento do código-fonte, torna-se muito fácil descobrir quais tipos de dados podem ajudar a testar o aplicativo com eficácia. Devido ao fato de que um testador qualificado é necessário para realizar o teste de caixa branca, os custos aumentam.
Isso ajuda a otimizar o código. Às vezes, é impossível examinar cada canto e esquina para descobrir erros ocultos que podem criar problemas, pois muitos caminhos não serão testados.
Linhas extras de código podem ser removidas, o que pode trazer defeitos ocultos. É difícil manter o teste de caixa branca, pois requer ferramentas especializadas, como analisadores de código e ferramentas de depuração.
Devido ao conhecimento do testador sobre o código, a cobertura máxima é obtida durante a escrita do cenário de teste.

Teste Gray-Box

O teste de caixa cinza é uma técnica para testar o aplicativo com um conhecimento limitado do funcionamento interno de um aplicativo. Em testes de software, a frase quanto mais você sabe, melhor tem muito peso durante o teste de um aplicativo.

Dominar o domínio de um sistema sempre dá ao testador uma vantagem sobre alguém com conhecimento de domínio limitado. Ao contrário do teste de caixa preta, em que o testador testa apenas a interface do usuário do aplicativo; no teste de caixa cinza, o testador tem acesso aos documentos de design e ao banco de dados. Tendo esse conhecimento, um testador pode preparar melhores dados de teste e cenários de teste enquanto faz um plano de teste.

Vantagens Desvantagens
Oferece benefícios combinados de teste de caixa preta e caixa branca sempre que possível. Como o acesso ao código-fonte não está disponível, a capacidade de revisar o código e testar a cobertura é limitada.
Os testadores da caixa cinza não dependem do código-fonte; em vez disso, eles contam com a definição de interface e especificações funcionais. Os testes podem ser redundantes se o designer do software já executou um caso de teste.
Com base nas informações limitadas disponíveis, um testador de caixa cinza pode projetar cenários de teste excelentes, especialmente em torno de protocolos de comunicação e manipulação de tipo de dados. Testar todos os fluxos de entrada possíveis não é realista porque levaria uma quantidade de tempo irracional; portanto, muitos caminhos de programa não serão testados.
O teste é feito do ponto de vista do usuário e não do designer.

Uma comparação de métodos de teste

A tabela a seguir lista os pontos que diferenciam o teste de caixa preta, o teste de caixa cinza e o teste de caixa branca.

Teste de caixa preta Teste Gray-Box Teste de caixa branca
O funcionamento interno de um aplicativo não precisa ser conhecido. O testador tem conhecimento limitado do funcionamento interno do aplicativo. O testador tem total conhecimento do funcionamento interno do aplicativo.
Também conhecido como teste de caixa fechada, teste orientado por dados ou teste funcional. Também conhecido como teste translúcido, porque o testador tem conhecimento limitado do interior do aplicativo. Também conhecido como teste de caixa clara, teste estrutural ou teste baseado em código.
Executado por usuários finais e também por testadores e desenvolvedores. Executado por usuários finais e também por testadores e desenvolvedores. Normalmente feito por testadores e desenvolvedores.
O teste é baseado em expectativas externas - o comportamento interno do aplicativo é desconhecido. O teste é feito com base em diagramas de banco de dados de alto nível e diagramas de fluxo de dados. O funcionamento interno é totalmente conhecido e o testador pode projetar os dados de teste de acordo.
É exaustivo e o menos demorado. Parcialmente demorado e exaustivo. O tipo de teste mais exaustivo e demorado.
Não adequado para teste de algoritmo. Não adequado para teste de algoritmo. Adequado para teste de algoritmo.
Isso só pode ser feito pelo método de tentativa e erro. Domínios de dados e limites internos podem ser testados, se conhecidos. Domínios de dados e limites internos podem ser melhor testados.