Recentemente, fiz meu exame final para um curso de engenharia de software para o meu programa de mestrado e uma das perguntas do exame foi a seguinte:
Unit Testing is considered:
a. White-box Testing
b. Black-box Testing
c. Either
Nos meus 7 anos de experiência em desenvolvimento de software, o teste de unidade sempre adotou uma abordagem de caixa branca. O testador sempre teve pleno conhecimento da implementação da unidade enquanto escrevia os testes. O teste da caixa preta sempre vinha mais tarde nas formas de integração, sistema e teste de aceitação.
No entanto, a resposta correta para o exame (de acordo com o professor) é que o teste de unidade pode ser um teste de caixa branca ou preta.
Eu fiz algumas pesquisas e parece que muitos casos "teste de unidade de caixa preta" são usados para descrever uma abordagem de teste em que os testes de unidade são escritos antes do código. No entanto, na minha opinião, isso ainda é teste de caixa branca. Embora a implementação ainda não exista, quem está escrevendo o teste geralmente tem uma boa idéia de como o código-fonte será implementado.
Alguém pode me explicar como o teste de unidade de caixa preta funciona (se é realmente uma coisa) e como ele difere do teste de unidade de caixa branca?
While the implementation does not yet exist, whoever is writing the test generally has a pretty good idea about how the source code is going to be implemented.
- Sim, mas o teste em si não. Teste de caixa branca significa testar algo interno ao método ou classe, como o valor de uma variável. Isso não significa que o criador do teste sabe como é o código em teste.