Sobre

quinta-feira, 5 de maio de 2016

Teste de Software não é ...

Teste de Software não é uma atividade que pode ser realizada por robôs insubstituíveis.

Esse post trata-se de um artigo que foi traduzido e citado na referência. É uma boa representação de como penso sobre este tema em Teste de Software.

Eu posso dizer com certeza que esta é uma das declarações mais incorretas em testes e também um dos mais tóxicas. Isso é baseado em suposições falsas e que produz um monte de outras premissas falsas que se tornam popular para a única razão que alguém confia cegamente, sem fazer perguntas. Então, eu dividi essas premissas em dois grupos:

Todos podem testar, testar é fácil . Seu gerente pode testar, o dev pode testar, o designer pode testar, o cliente pode testar, o seus cães gestores podem testar, etc, etc ... Mas, eles não podem fazê-lo, porque eles estão ocupados fazendo outras coisas importantes.
O teste é fácil, porque um teste bem escrito é descrito em um número finito de passos ou instruções , e se estas instruções forem seguidas exatamente você pode testar o problema sem quaisquer impedimentos.

Agora, o que eu quero que você faça é - anote isto em um pedaço de papel, levá-lo para fora e queimá-lo, enquanto canta algum feitiço do mal.

É fácil entender por que esses mitos estão em nosso ofício . Uma razão - é a idosa gestão que não se importa sobre o teste , eles se preocupam com orçamentos e eficiência. Outra razão é não conseguirmos fornecer a verdadeira história por trás de testes, como é eficiente e benéfica para o produto / projeto, se não formos capazes de fazer isso, a culpa é nossa . E terceira razão - existem demasiados fornecedores de ferramentas e cursos de testes de software e academias que têm interesse em vender-lhe "óleo de cobra" - a solução final que vai resolver todos os seus problemas de teste, seja uma ferramenta ou metodologia,

Por que o teste não pode ser realizado por robôs insubstituíveis, e aqui eu quero dizer tanto robô humana agindo como especialista e a atual automação ? Uma boa razão para isso é o fato de que o teste não é baseado em instruções, ele é baseado em interpretações, em interações, no recolhimento de informação simultâneas, avaliação e ação de acordo com essa informação . O teste é experiência , investigação e decomposição de declarações que os outros (desenvolvimento, gestão...) acreditam que são verdadeiras (parafraseando James Bach). Usando tudo isso, temos que fornecer informações relevantes , sobre o risco e o produto em si. Então, como tudo isso se alinha com o "conceito" de seguir instruções?

E há mais uma razão pela qual o teste não pode ser representado através de um conjunto limitado de etapas ou instruções conectadas, o que provoca também a impossibilidade de automatizar totalmente o teste - convertendo estas instruções para instruções de máquina. O motivo é a forma como o conhecimento funciona . Mais especificamente a impossibilidade de converter conhecimento tácito em explícito ou mesmo explicável conhecimento ( Collins, "tácito e conhecimento explícito" ).

Isso pode ser explicado de uma maneira muito simples - todos nós já cozinhamos, às vezes, certo? Bem, todos nós sabemos que as receitas culinárias são de alguma forma uma espécie de algorítmo , passo-a-passo como fazer um X prato. E eles podem ser escrito por um bom especialista, como um mester chef, por exemplo. No entanto, seguindo seu conselho, mesmo ao mais ínfimo pormenor, você pode ser capaz de fazer um prato decente , mas não igual a uma feita pelo perito. Você não iria notar os pequenos ajustes que o chef vai fazer, dependendo de seu ambiente ou do produto que ele usa, ou o frescor das especiarias, tudo baseado em uma "intuição". Por que isso acontece? Vamos chamar isso de experiência ou de rotina , o que ele realmente é - a grande parte subaquática de iceberg de conhecimento , chamado conhecimento tácito .

A mesma coisa se ​​aplica a qualquer área, inclusive o Teste. "Podemos saber mais do que podemos dizer" (Polanyi), portanto, em teste podemos fazer muito mais do que podemos realmente colocar em palavras , cenários, casos, etapas, scripts ou seja o que você diga. O teste é um processo intelectual e tem natureza orgânica , é normal ser inexplicável e nós a termos certos problemas para descrevê-la ou documentá-lo. É assim que a ciência e o conhecimento trabalham.

A razão para isso não é uma crença compartilhada no teste mainstream, é o fato de que muitos consultores e programas de certificação gostariam de dar uma história curta e emocionante em "como você pode se tornar grande tester, seguindo este simples conjunto de regras". E é "vendido" para nós sob a cobertura de palavras como"melhores práticas" , que significa "Não tenho nada a provar para você, isso é o que todo mundo está usando". Bem, newsflash, esta é a comunidade de testes, você faz uma declaração aqui , você tem que estar pronto para defender sua posição , ninguém se importa quanto de um guru ou um perito você é.



REFERÊNCIAS


http://mrslavchev.com/2016/05/02/software-testing-not-part-3/


http://www.satisfice.com/blog/archives/1509