Certificação para testes – vale a pena?

Sou suspeito para falar, aprendi a testar por necessidade, começando por um sistema muito complexo e cheio de bugs com documentação zero. Certificação pode valer a pena quando vc tem que seguir um processo bem burocratico, onde vc precisa de 1024 documentos e mais diversas ferramentas de apoio. Pessoalmente eu discordo dessa abordagem por um bom motivo: ruído.

Pode haver muito ruído entre o que o cliente quer (ou acha que quer) e todos os envolvidos, uma vez que nem sempre o cliente sabe o que quer exatamente ou pode não saber se expressa muito bem. Imagine agora isso colocando em uma coleção de documentos que circula entre os envolvidos e que exige um esforço considerável para manter-se atualizado. Pode ser a receita para o desastre :)

Uma condição interessante para o sucesso do projeto é a dedicação dos mesmos frente a honestidade. Muitos analistas, programadores ou testadores querem mesmo é tirar o seu da reta, uma vez que vivem sob um mundo medieval onde os chefes são temidos pelos urros guturais e ameaças perturbadoras, nesse caso o sentimento gostoso de “estou num projeto bom que produz um software de boa qualidade” passa a ser “caramba, se isso não funcionar não é culpa minha e sim do X”. Um bom exemplo é testadores que se limitam a seguir um manual de testes de forma exata e não fazem nada alem disso. Se um bug for encontrado, o testador se defende “mas eu segui o documento de testes #542″. Nesse caso ninguem precisa se defender: testar não elimina bugs, eles podem ser encontrados em situações muito peculiares e de dificil reprodução, nesse caso um bug deveria alimentar um documento de testes e não gerar pânico, dor e morte. Todo o software tem bugs, paciência.

Lembro de uma tela que poderia receber o campo “dia util do mês”. A tela funcionava quando eu informava 01, 02, 03, 10, 20, 28, etc. A tela parecia 100% dentro do uso normal até que alguem colocou o dia 08: um grande erro de javascript aparecia para o usuario! E com 09 também. Depois de muita pesquisa descobriram que, em javascript, um numero que começa com 0 é considerado octal e, em octal, não existe 8 nem 9, nesse caso a máscara desse campo era a origem desse comportamento estranho. Esse tipo de coisa só se resolve com trabalho, pois poderiamos ficar discutindo sobre quem errou, o testador ou o desenvolvedor, por horas, até acabar o projeto. O que importa é que 8 e 9 são dias úteis válidos e a funcionalidade ficaria comprometida com esse bug.

Alias, testar é uma atividade muito legal, se vc é curioso. Basicamente vc tem que procurar comportamentos erráticos e descobrir como reproduzi-los. Hoje em dia eu ainda me pego testando SQL Injection em alguns sites ou estudando paginação de dados, etc. Testar através de ferramentas é mais divertido ainda, não aqueles monstros que funcionam na base do Record/Playback: testar sites usando Shell Script (curl + grep), Selenium ou soluções próprias (como uma classe que se conecta com um webservice, um script Perl que envia dezenas de requests ou mesmo incorporar o Internet Explorer numa dll escrita em C# para integrar com algum sistema complexo de testes) é uma arte que traz benefícios como eliminar horas de trabalho braçal propenso a erros.

Não que alguem certificado em testes seria desonesto ou covarde mas a minha percepção é que esse universo de testes utiliza documentos, ferramentas e certificações também subterfúgios, tiro isso de conversas com gerentes dessa área que querem saber: quem é o desenvolvedor que produz mais bugs, quem demora mais pra desenvolver, quem demora mais pra testar, quem testa de verdade, etc. Quando vc pergunta específicamente essas coisas vc não quer métricas, vc quer dados para ferrar com alguem. Neste tipo de ambiente, tão comum ai por fora, a honestidade é soterrada pela mediocridade de gerentes e outros figurões e, geralmente, se resolve mudando de emprego ou fazendo parte de uma célula que implanta uma mudança de pensamento dentro da empresa. Geralmente chegamos a essa opção quando cansamos de trocar de emprego.

Por fim: conhecimento não pesa nem ocupa espaço, biológicamente falando. IMHO honestidade para o desenvolvedor, testador ou gerente é muito mais importante do que o cinismo. Experiência é mais importante que certificações. Conhecimento é mais importante do que um mero diploma. O resto é dançar conforme a música.

Eu gosto de citar este artigo: Introduzindo Agilidade num Ambiente, do Phillip Calçado, que me mostrou um novo mundo e me inspirou a sair do mundo de testes para o mundo onde se faz de tudo um pouco. Então, se alguem se perguntar se certificação, mesmo para testes, vale a pena, lembre-se que a sua postura profissional conta muito mais.

Rating 4.00 out of 5
[?]

Sobre admin

Sou nerd
Esta entrada foi publicada em Uncategorized. Adicione o link permanenteaos seus favoritos.

6 respostas a Certificação para testes – vale a pena?

  1. André Leite disse:

    bacana o post pac. Só que incluo sua afirmação para quase todas.. faço uma pergunta: E pra que serveria a certificaçãoJAVA por ex..? As experiências no dia a dia tb não seriam o bastante? Acredito que as certificações sirvam para mostrar ao empregador com papéis e não com palavras o quanto vc entende sobre um determinado assunto. Não que o cara que tenha certificações seja o melhor , existem muitos que não possuem nenhuma e são ótimos! mas.. papel é papel!

    abs

  2. admin disse:

    Uma certificação oficial tem o seu valor: vc sabe que aquele profissional foi submetido a uma avaliação formal por uma empresa. Teoricamente isso ajuda a propria tecnologia/empresa em si pois gera uma quantidade de profissionais que “representam” a evolução naquele pais. Se existem X mil profissionais certificados em um país isso pode servir de métrica, por exemplo. É claro que as coisas acabam sendo mal-interpretadas pelos RH’s ai fora e é isso que eu, e tantos outros profissionais, tentam alertar.

    Uma discussão parecida é: faculdade ou experiência? Uma faculdade te agrega uma experiência muito importante, porém o dia a dia do mercado também, por isso um profissional de sucesso sem faculdade é um tanto raro pois os mesmos não tem tanta oportunidade, por exemplo. Mas isso é a minha opinião.

  3. Bruno disse:

    Ola,
    Gostei muito desse post, me deu alguma luz.

    Atualmente eu trabalho em uma empresa que esta implantando o setor de testes em nosso setor de desenvolvimento.

    Porem não temos métodos, documentação, e ainda não sabemos como testar. Trabalhamos com .net, e parece que o Visual Studio tem algum suporte, ferramenta sei lá que da algum suporte para teste. Você pode me indicar algum site alguma coisa que possa nos auxiliar nesse nosso novo desafio de teste?

    Conhece alguma ferramenta que pode nos ajudar com testes? Aceitação, Carga, Unitarios…

    Parabéns pelo tópico.

  4. admin disse:

    Ola Bruno,

    Vc poderia dar uma olhada nesse livro:
    http://www.amazon.com/NET-Test-Automation-Recipes-Problem-Solution/dp/1590596633

    Ele tem MUITA informação. Testes podem estar em todas as etapas do desenvolvimento e o apoio dos programadores e analistas é fundamental. Se vc conseguir seduzi-los sera melhor. Testes em codigo legado é muito dificil, portanto é bom começar a trabalhar em um projeto novo. De uma olhada no NSpec, que é um framework para testes unitarios bem interessantes. Para testes funcionais (vulgo, de tela) se é um projeto web é interessante vc estudar o Selenium (por exemplo: http://codebetter.com/blogs/jeremy.miller/archive/2006/05/14/144666.aspx). Para carga vc pode utilizar o JMeter ou outra ferramenta que faça algo parecido – existem varias. Existe o Visual Studio Test Edition que tem algumas ferramentas também (veja http://msdn.microsoft.com/en-us/library/ms243146.aspx).

    Uma alternativa interessante é trabalhar com integração continua, aonde existe um branch de desenvolvimento e a cada commit todos os testes unitarios (e funcionais, se conseguir integrar) rodam. Caso algum teste falhe ou o build quebre um aviso a todos é emitido: dessa forma o build nunca deve quebrar e os testes sempre devem passar e, se uma ferramenta de cobertura de testes executar e coletar metricas de cobertura de testes, vc tem algum tipo de controle de qualidade cuja responsabilidade é todo o time.

    Trabalhar com integração continua e testes não é facil e existe RESISTENCIA. Vc tem que convencer e, em alguns momentos, ceder. Em alguns momentos vcs terão que desenvolver uma ferramenta propria, por exemplo, para fazer alguma coisinha. E desenvolver pensando em testes é muito util, vai desde pensar na correta injeção de dependências, no design para prover testabilidade, em criar uma tela web com atributos especificos para facilitar as ferramentas de teste, etc. Por exemplo, vcs encontram um BUG, e ai, o que fazem? Uma saida seria criar testes unitarios ou funcionais de forma a detectar o erro antes da correção do mesmo.

    Seria interessante vc expor alguns conceitos, ler mais sobre TDD, e fazer algumas palestras, fazendo projetos pilotos (esqueça grupos de estudo, ninguem faz nada e todo mundo perde tempo) e colocar em mente objetivos bem especificos: seja introduzir os conceitos, prover cobertura de testes, prover x% de alguma coisa, etc. Lembre-se que, no começo, o tempo de desenvolvimento CAI, pq estão se adequando a outra forma de desenvolvimento, por isso vc precisa do apoio do time. Outra coisa, o numero de bugs pode até aumentar, pois vcs estão testando muita coisa, talvez partes de codigos que nunca foram exercitadas ou condições de contorno que ninguem pensava, alem do mais numero de bugs não é metrica de qualidade pq basta procurar q vc acha um: vcs tem que trabalhar para atender aos requisitos do cliente, e isso envolve maos do que programar ;-)

  5. Bruno disse:

    Muito bacana mesmo, você conhece alguma escola que oferece treinamento de Teste de Sistemas em São Paulo?

    Gostaria de conhecer algumas ferramentas, como Visual Studio Test Edition, por exemplo.

    Eu tentei usar a ferramenta Selenium, integrando ela com Visual Studio porem nao tive sucesso.

  6. Álvaro disse:

    SERÁ QUE VALE MESMO?
    Faço testes a 6 anos em uma multinacional.
    Tenho curso superior e gosto de estudar.
    Tenho algumas boas certificações, incluindo de teste e sou lider de equipe de teste.
    Porem fui fazer o exame para uma dessas duas mais “famosas” que tem por ai.
    A prova era facil demais!! Se não fechei a prova, foi perto.
    No fim preenchi aquele questionario e marquei NÃO na resposta da pergunta sobre se tinha feito algum curso preparatorio.
    O meu resultado na prova foi 60% mas não fui aprovado por que é ACIMA de 60%.
    Muito estralho viu, parecer ate que existe algo “esquisito” nestas certicações.
    Sem ela minha experiencial vale menos no mercado?
    Obrigado e desculpa ai usar seu espaço para este desabafo.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">