As técnicas de desenho de testes são o coração dos testes. Existem inúmeras vantagens em se usar técnicas de desenho de testes, entre as quais se destacam:
- Suporte para o trabalho sistemático torna a especificação de testes mais eficiente.
- O desenho dos casos de teste pode facilmente ser repetido por outros.
- Quando utilizadas é possível determinar as coberturas associadas a uma especificação.
Durante a fase de desenho e planeamento de testes, facilmente percebemos que as combinações, variações dos dados a usar nos testes e que podem ser usados como entrada para os casos de testes podem ser infinitas. Daqui rapidamente se concluí que testar exaustivamente cada caso não é possível, é necessário então usar técnicas de teste que permitam diminuir o número de casos e cenários de teste, permitindo a maior cobertura de testes com um esforço mínimo. Na elaboração deste testes é importante compreender as várias técnicas de desenho de testes disponíveis.
Se é necessário executar um número infinito de testes então é necessário transformar esta infinidade numa quantidade adequada de trabalho. As técnicas de teste de software existem para reduzir o número de testes a ser executados, enquanto fornecem uma cobertura suficiente do sistema em análise.
A utilização de várias técnicas de testes em simultâneo num mesmo projecto ou esforço de testes têm provado ser mais eficaz de que nos concentramos apenas numa técnica.
Black Box Testing
Caixa preta e caixa-branca são os métodos mais conhecidos de desenho de testes. Os testes de caixa preta tratam o sistema como uma “caixa preta”, e por isso não usam explicitamente o conhecimento da estrutura interna.
Os testes de caixa preta são casos de testes construídos tendo como base as especificações e funcionalidades do software. Estes testes usam as descrições externas do software, incluindo especificações, requisitos e design para elaborar casos de teste. O tester selecciona entradas válidos e inválidos e determina a saída correcta. Neste tipo de testes não existe qualquer conhecimento da estrutura interna do objecto de teste.
Entre as numerosas técnicas de testes disponíveis as mais conceituadas e que melhores resultados têm produzido encontram-se as seguintes: análise funcional, equivalence partitioning, path anlysis, orthogonal array testing e state transition testing.
White Box Testing
Os testes de caixa branca são de uma natureza diferente dos testes caixa preta. No teste de caixa preta, o foco das actividades é apenas sobre a funcionalidade do sistema e não no que está acontecendo dentro do sistema. Por outro lado os objectivos de testes de caixa branca é ter certeza de que a funcionalidade é adequada, usando para tal informação sobre o desenho e implementação destas funcionalidades para elaborar os testes. Os testes de caixa branca são essencialmente efectuados pelas equipas de desenvolvimento, geralmente a partir da criação de testes unitários.
Uma das características dos testes de caixa branca é que permitem avaliar qual a cobertura do código que estamos a analisar. Existem várias possibilidades para verificar a cobertura que pode ser medida aquando do uso de testes de caixa-branca, entre os quais se destacam: Statement coverage, Function coverage, Decision coverage e Data-Flow Coverage.
Bom espero ter esclarecido quais as principais (pelo menos) diferenças entre Black Box e White Box Testing.
Bom, até à próxima.