“O que é um Tester?”

Um dia desses um amigo me perguntou pelo Facebook “Como virar um analista de testes?”, a resposta foi meio confusa (já que ele me perguntou do nada, e também pelas informalidades de uma conversa com um amigo), mas dei uma re-pensada sobre o tema… Eu não respondi como se tornar, mas sim o que é/faz um analista de teste, e vou tentar redigir esse texto de uma forma um pouco mais clara, para mim e para vocês.

O analista de teste pode ter várias funções (dependendo muito de sua experiência e da empresa em que ele trabalha), mas o intuito final é basicamente se esforçar para que o software tenha a menor quantidade de bugs possíveis, que o usuário final tenha a melhor experiência possível com o software, achamos os bugs, os desenvolvedores consertam, testamos de novo….testamos mais…. até o momento em que o software esteja pronto para ser entregue para o cliente com uma qualidade satisfatória.

Se você for atento, pode ter percebido que em nenhum momento utilizei frases como “garantir que o software não tenha erros” ou “entregar um software perfeito”, mas baseado nos “Sete princípios do teste” (ao meu ver a parte mais valiosa do do Syllabus) o teste apresenta defeitos,  não a ausência deles e o teste exaustivo é impossível… logo não tem como garantir que aquele software esteja 100%, que ele NUNCA vai travar… mas podemos fazer com que esses problemas sejam pouco frequentes, ou quase nulos…

Agora voltando ao tester, como ele acha esses bugs?

Bem, alguns vão clicando, usando o software, tentando burlar algumas coisas nele (vou preencher esse campo e-mail com ikbhsoajdhoahsodka.com.br@ e ver se funciona), alguns vão seguindo um plano de teste previamente montado… não vou falar que esse é o melhor tipo de analista de teste (mas é onde eu me encaixo no momento…bem quase sem experiência não dava pra fazer nada muito diferente né?)

“Então vocês saem clicando de forma aleatória até achar um bug, ou faz coisas de forma “aleatória” mas decidida por outra pessoa?” 

Não é de uma forma aleatória, nos temos uma cobertura do software, pensamos em testes específicos para cobrir a maior quantidade de opções possíveis, e de acordo com o software em questão… por exemplo se formos testar um software de um banco, iremos focar nossos esforços principalmente em segurança, testes com senhas, acesso, se o app não está mandando informações confidenciais para algum outro lugar do sistema, se conseguimos dados do código de forma não convencional (existem casos de pessoas que saem criando situações improváveis no software pra tentar pegar um pedaço do código em alguma mensagem de erro não prevista, e tentam usar isso para invadir o sistema), enquanto em um app de meditação não será necessário se focar tanto em segurança, mas sim na experiência do usuário com aquele aplicativo, se ele não trava, se o cronômetro está funcionando corretamente, assim como os alarmes…. enfim… cada software/app é uma situação diferente, mas esse planejamento deve ser feito com bastante atenção a esses detalhes.

E isso abre a passagem para falar sobre o tester que faz esse planejamento, costuma ser uma pessoa com mais experiência (por motivos óbvios).

Temos também o pessoal que é especializado em automação de testes, que resumindo (de uma forma muito “tosca” e limitada) é fazer códigos que irão fazer e repetir diversos testes dentro de um software, isso é utilizado tanto para simular algumas situações complicadas de teste, como por exemplo 50.000 pessoas acessando simultaneamente um App  ou usar um software em um sistema com pouco espaço disponível, além disso temos algumas automações para substituir as regressões ou outros testes manuais, com o intuito de aproveitar melhor o tempo… bem isso já entraria em outra discussão de “Automação X Testes manuais” a qual eu quero abordar apenas quando tiver mais experiência .

Existem analistas especializados em testes caixa-branca, outros em caixa-preta, equipes que preferem nem ter testes, ou deixam isso completamente na mão dos desenvolvedores….como disse, depende muito do local que você trabalha.

E apesar das explicações estarem separadas, não quero dizer que cada tester faz apenas uma coisa, eu separei com o intuito de facilitar a explicação, mas acho importante ressaltar que é normal fazer um pouco de tudo aí em cima (E mais um pouco) e é provável que você se especialize mais em um ponto ou outro, e por consequência ser chamado com mais frequência para essa função =]

Não vou afirmar que existe forma perfeita de testar (lembrem-se do DEPENDE que eu tanto falo), mas acho que o válido de ter o tester na sua equipe é ter um ponto de vista diferenciado do desenvolvedor, pensar como desenvolvedor e usuário ao mesmo tempo, pensar no provável e improvável dos dois lados, procurar, achar, provar, expor….saber se comunicar e lembrar que o objetivo é trabalhar junto com os desenvolvedores, para os clientes =]

Mais do que métodos e rotinas (inclusive, peço desculpas por aquelas funções que eu não tenha descrito no post), “ser um tester” é uma forma de pensar e observar…pelo menos esse é meu ponto de vista 😉

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s