Os testadores precisam examinar o código-fonte?

8

Quão necessário é para os testadores fazerem testes em caixa branca, além dos testes em caixa preta? Como desenvolvedor, vejo valor em fazer com que uma pessoa com controle de qualidade repasse meu código e procure por pontos fracos, mas também parece que se um testador não técnico for minucioso e metódico o suficiente, eles poderão cobrir bem o aplicativo.

O teste da caixa branca pode revelar casos de teste importantes que não seriam óbvios ao olhar apenas para o aplicativo da perspectiva do usuário, mas o teste exclusivo da caixa preta pode levar menos tempo e aumenta significativamente o número de pessoas capazes de fazer o trabalho . Além disso, uma quantidade não trivial de testes de caixa branca deve ser executada pelo desenvolvedor antes que ele chegue ao testador, estou certo?

Mr. Jefferson
fonte
7
A revisão de código não está sendo testada.
Job
Para algum tipo de software, há uma pequena desconexão entre o código fonte e a aparente funcionalidade do aplicativo. Em outro tipo de software, a desconexão pode ser enorme.
rwong 21/05

Respostas:

15

Os testes de caixa branca e caixa preta são duas habilidades diferentes - alguém habilitado em um não é necessariamente habilidoso no outro.

Muito do que o controle de qualidade faz será o teste da caixa preta - garantindo que o sistema funcione "conforme anunciado" e, nesse sentido, eles não precisam saber como o sistema funciona para fazer um bom trabalho. De fato, o conhecimento do código pode levá-los às mesmas armadilhas que capturam o desenvolvedor incauto fazendo seus próprios testes. É muito melhor que eles não tenham preconceitos de como o desenvolvedor pensa que o sistema deve funcionar.

Isso não quer dizer que não deve haver teste de caixa branca - que é (em parte) o que é o teste de unidade do desenvolvedor. Um bom conjunto de testes de unidade deve estar testando entradas válidas, entradas inválidas e entradas de caixa de borda. No entanto, não acho que seja sempre necessário que o controle de qualidade faça isso - se por outro motivo, não for realmente de responsabilidade do desenvolvedor.

No entanto, como SnOfus aponta em seus comentários, um bom teste de caixa branca pode ser extremamente útil.

ChrisF
fonte
Isso já é uma boa resposta, mas para suplemento, eu recomendo assistir este vídeo GTAC: youtube.com/watch?v=cqwXUTjcabs
Alvin
1
Esse parece um ponto de vista bastante restrito do controle de qualidade e eu realmente não posso concordar com isso. O papel do controle de qualidade não é apenas "teste escrito, não passou, é problema do desenvolvedor agora, minhas mãos estão limpas". A identificação de bugs e sua causa é um aspecto crucial das responsabilidades do controle de qualidade. No final, o controle de qualidade existe para garantir que o código do desenvolvedor funcione sempre . Isso requer, às vezes, um conhecimento ainda mais íntimo de como ele funciona do que o desenvolvedor pode ter.
Steven Evers
Talvez o desacordo esteja em "não precisa saber como o sistema funciona". O que o @ChrisF significa é que o teste de caixa preta pode ser realizado sem a necessidade de consultar o código-fonte, mas o @SnOrfus entende que isso significa "não precisa ter um bom entendimento dos requisitos do sistema".
Rwong 21/05
@rwong: Não. Não é isso que significa.
Steven Evers
1
Eu não acho que seja responsabilidade dos desenvolvedores individuais - é responsabilidade da equipe de desenvolvimento .
4

Tive boa sorte na minha equipe com as análises de código dos testadores. Os testadores tendem a olhar o código da mesma forma que os aplicativos - eles se perguntam "de que maneira esse código não funcionaria" e geralmente encontram problemas que os programadores não encontram durante a revisão do código.

Para uma resposta mais longa, escrevi este artigo .

Alan
fonte
+1 para análises de código de testador e gostaria de poder marcar +1 novamente pelo excelente artigo!
Ethel Evans
3

absolutamente

Como eu disse em resposta ao @ChrisF: O controle de qualidade existe para garantir que o código de produção funcione sempre . Sem ser exaustivo, isso significa saber quais plataformas são esperadas, qual será o estado da máquina implantada, quais são os requisitos de desempenho e ter certeza de que todas as linhas serão bem-sucedidas.

No IME, uma boa equipe de controle de qualidade escreverá, lerá e revisará mais código do que a equipe de desenvolvimento.

Se suas equipes de recursos e as (principais) equipes de correção de bugs não têm um desenvolvedor de controle de qualidade trabalhando para projetar a API, o fluxo de trabalho, a segurança e todos os outros aspectos do recurso / correção, você está realmente perdendo uma força que seu departamento de controle de qualidade pode trazer para o seu produto enquanto ele estiver sendo desenvolvido .

Steven Evers
fonte
1

Não é necessário. Em vez de fazer com que uma pessoa com controle de qualidade analise seu código, recomendo que um desenvolvedor analise seu código. Além disso, se você estiver escrevendo testes de unidade à medida que desenvolve seu código, fazer com que uma pessoa com mente de controle de qualidade passe por seu código não é o melhor uso do tempo do controle de qualidade.

A pessoa do controle de qualidade não deve se concentrar em como o código foi escrito, mas no que o código faz.

A pessoa do controle de qualidade não deve focar em testes funcionais e aproveitar os requisitos para fazer esses testes. No final, testes de unidade e um testador funcional de controle de qualidade fazendo testes de caixa preta serão o melhor uso do tempo para todos.

Dakotah North
fonte