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. |