logo

Não caia no conto do "Pairwise Testing"

Voltando as atividades da blogosfera com tema polêmico!

Últimamente venho me sentindo extremamente incomodado sobre como pairwise testing está sendo vendido como a técnica de teste que vai diminuír a quantidade de casos de teste e vai te dar uma cobertura satisfatória de testes de forma mágica ... "se você seguir esses passos mágicos.."

Antes de continuar, vamos alinhar o que é parwise (de acordo com wikipedia e pairwise.org):

Pairwise (a.k.a. all-pairs) testing is an effective test case generation technique that is based on the observation that most faults are caused by interactions of at most two factors. Pairwise-generated test suites cover all combinations of two therefore are much smaller than exhaustive ones yet still very effective in finding defects. (sic)

em outras palavras (traduzindo literalmente)

'Pairwise' é um técnica eficiente de geração de caso de teste baseado na observação que as maiores falhas são causadas pela interação de no máximo 2 fatores. Suites de Teste de pairwise cobrem todas as 'combinações de 2', sendo menores que outras suites de teste, porém são eficientes em achar defeitos.

Não me entenda mal amigo.

Essa técnica não é ruim, mas é vendida como o cálice sagrado que vai resolver todos seus problemas.

mimimi leonardo hater... a suite de teste tem que ser a combinação de várias técnicas de teste blbalbablalbal...

Pairwise é bom.. mas é bom pra você? é bom para o projeto que você está testando?

Entenda seu cenário de teste

Pairwise só é eficaz se os dados que você está combinando são mais do que simples parâmetros.

Antes de sair usando ferramentas como "allpair", tenha em mente o que é chave para o sistema que você está testando.

Se seu sistema trata diferente parâmetros como o sexo e o tipo de pessoa (física/jurídica), por que usar dados como "nome", "endereço", e "telefone"?

Se por exemplo, você vai usar teste exploratório baseado em sessão, você provavelmente vai levantar os pontos chaves (parâmetros, etc) que você vai usar naquela sessão.... gerar casos de teste com pairwise pra que?

Isso vale para tudo! Entenda seu software! Tenha domínio do negócio e do operacional técnico em que seu software é baseado.

There is no silver bullet!

Não acredite que geradores de casos de teste baseados nessa técnica "milagrosa" vão resolver o seu problema!

Mas e ai.. pairwise é realmente efetivo?

Se você está com um tempinho sobrando e seu inglês esta legal, da uma lida aqui > Pairwise Testing: A Best Practice That Isn’t (Pairwise Testing, Uma boa prática #sqn.) (para você ver que não torço o nariz sozinho quando vejo esses cursos, hangouts e etc..)

Neste artigo, um dos caras que desenvolveu a tecnica pairwise, junto com uma aplicação para gerar as combinações baseado na técnica e também da curso de teste sobre isso, em conjunto com outro pesquisador, questionou a eficácia do método, e que combinações aleatórias de dados teriam tanto sucesso (ou até mais) quanto pairwise sendo feito a risca.

James Bach e Patrick Schroeder apresentam estudos em que a técnica de pairwise testing reduziu a quantidade de casos de teste, mas deixa na dúvida a questão dos problemas encontrados, visto que não foi feito algo para ser comparado.

Também fala onde o pairwise falha e como essa técnica de teste deve ser muito bem pensada antes de ser aplicada.

E você? Já usou pairwise em produção? manda ai seus .50 cents !


Sobre o Autor: Leonardo Galani é Agile Tester, dev, gamer, dj and etc. Mantém o fórum http://agiletesters.com.br | http://leonardobg.com.br (profile)| http://lazytester.com (blog em inglês)
http://br.linkedin.com/in/leonardogalani/

comments powered by Disqus