terça-feira, 23 de março de 2010

Psicanálise de um tester.

Ontem ainda pensei em falar do Benfica...mas se calhar com tanta vitória e tanta conquista vocês querem ler sobre outras coisas menos importantes:D Por isso é escusado dizer "Parabéns Benfica!" por mais uma grande vitória.

Em vez disso, ontem em conversa com uma colega sobre o projecto, um conceito veio à mente: psicanálise dos testes. Sobre a ideia base do: por que é que as pessoas têm tendência a não gostar de fazer testes? Na minha óptica a sociedade de hoje em dia devia gostar de fazer testes.

Porquê?
Bem, uma coisa que tenho afirmado é que as pessoas gostam de falar mal do próximo, ou criticar os outros, de modo a superiorizarem-se num subconsciente. Ou seja, se inferiorizarmos quem estiver em redor, acabamos por automaticamente ficar num patamar mais elevado. O que está totalmente errado, pois estamos a nivelar a sociedade e os nossos objectivos por baixo.
A ideia devia ser exactamente o oposto. Só crescemos verdadeiramente se pensarmos em grande. Se tentarmos chegar ao mesmo patamar que os melhores. Seguir os exemplos de excelência. Aprender com o sucesso. Atingir a perfeição. Lá estou eu a falar do Benfica:)
Mas infelizmente a sociedade é um ser de vícios e hábitos. E neste momento o conceito de "gozão" predomina. Por isso devia ser expectável que gostássemos de fazer testes.

Mas porquê?
Bem, o que fazemos num teste? Basicamente pegamos numa ideia, num conceito, numa implementação, numa realização, e validamos que o comportamento esperado se concretize. O teste básico será o teste positivo, ou seja, execução do caso em que as coisas sigam o seu fluxo normal. Por exemplo, testamos um carro. Um teste positivo seria ligar a ignição e avançar cem metros com ele. Perfeito, o carro anda. Cumpre o princípio básico: mover-se. Mas isto é garantia que o carro funciona a 100%? no way.
Um teste completo deve incluir todas as possibilidades de combinação que se pode fazer. Se o carro vai para a esquerda ou para a direita. Se trava ou acelera. Se é rápido ou é lento. Se aguenta chuva e frio, ou sol e calor. Se abre porta, fecha porta. Se abre vidro, fecha vidro. Se tem luzes. Se tem pisca. Se...etc,etc,etc.
Mas também não devemos esquecer que para além de casos positivos, existem a possibilidade de casos negativos. Se virarmos o carro à direita, validamos que o carro não vira à esquerda. Se aceleramos, o carro não deve abrandar. Se travamos, não deve acelerar. Se ligamos o limpa-vidros, o pisca não deve ligar. Nem como o radio, as luzes, os vidros eléctricos...etc,etc,etc.
Portanto, como as possibilidades podem ser infinitas, poderá ser expectável que o tempo despendido nos testes possa ser superior ao tempo de implementação do próprio objecto em testes. Ao criar uma curva à direita, vamos ter que testar que a curva vira realmente à direita, que não vira à esquerda, que não vai em frente, e por ai adiante.
Como atingir o infinito pode ser um "pain-in-the-ass", o fim depende da confiança na implementação, do conhecimento e da compreensão do produto, do nível de satisfação, que se foca essencialmente no factor custo-benefício. O custo de fazer mais testes, o benefício que retiramos deles.

Mas então porquê gostar de fazer testes?
O meu "ass" está bem assim, muito obrigado. Porque é que havemos de gostar de testar as nossas criações? Já não nos bastou fazer a própria implementação? E o trabalho dos outros? De validar algo que não nos interessa, de validar a chatice dos outros.
Pois bem, o segredo devia residir exactamente ai. O coco dos outros. Se a sociedade de hoje gosta tanto de apontar o dedo, de dizer mal, de criticar os outros, ofuscando os seus próprios defeitos. Então também deveríamos gostar de testar. Para assim encontrar as falhas, os erros, os cocos do próximo. Levantar a bandeira vermelha e indicar que algo está mal e que não é nossa culpa. Alguém errou e não fomos nós. Depois testar o que é nosso só diminui a possibilidade de alguém nos apontar o dedo. O que acaba, de certa forma, por ir contra o provérbio: Não faças aos outros o que não queres que te façam a ti.

Lá está porque é que eu sou um ser único. Ao contrário do normal da sociedade eu gosto de testar. Contudo não é pelas razões que acabo de expor, pois quem me conhece sabe que raras são as vezes que falo mal de quem quer que seja. Antes pelo contrário. Então o que me leva a testar? Bem, um bom tester tem que saber o que está a testar, melhor ainda se entender a implementação. Compreender o que está por de trás da cortina e consciencializar-se das implicações. Ou seja, ter o conhecimento. Melhor ainda, é a possibilidade de sermos criativos. Baseando na ideia do infinito, em que as mil e uma possibilidades têm que ser testadas e validadas. A imaginação pode ter uma palavra a dizer. Além disso, se testamos implementação de terceiros, o mais provável é que não vamos ter que nos preocupar em resolver todos os problemas encontrados por mais bicudos que possam ser:D
Mas no final de tudo isto, não deixamos de pertencer a uma equipa. E os testes zelam pela qualidade do trabalho desenvolvido. E quanto mais perfeitos formos, melhor para todos.

3 comentários:

Anónimo disse...

Top people talk about ideas
Average people talk about things
Small people talk about others...

Fazer testes é a tarefa perfeita, se não encontras o problema e ele aparece mais à frente é porque não dava para testar a combinação no tempo disponível, se encontras ainda bem que o encontraste pois não vai acontecer mais à frente, se não encontras e se não aparece erros mais à frente, perfeito, porque foi graças a ti que a aplicação foi disponibilizada em condições :D

Mary disse...

Acabei de testar que..... ESTÁS CADA VEZ MAIS TAMAGOXTI ENFADONHO!

Daniel aka DnlCY disse...

Portanto...mais uma vez Sucesso...lol