fbpx
Escolha uma Página

A primeira vez que ouvi isso foi um choque.

Pensei comigo: como assim? é praticamente dizer que meu trabalho não deveria existir. Quase ofendido, chateado, magoado, tipo criança quando xinga a mãe.

Mas respirei fundo, fiz cara de ser humano altamente maduro e evoluído e segui em frente. Porém, essa ideia não me saiu da mente tão rápido ou facilmente.

Sempre vejo esses questionamentos como oportunidades de crescimento. Defendo sempre que testers devem saber tudo de tudo. Quanto mais soubermos melhor seremos no que fazemos. Pontos de vista contrários são ótimos para nos confrontar quanto ao que sabemos e evoluir.

E essa “pulga atrás da orelha” me levou a grandes discussões sobre o assunto com alguns excelentes engenheiros de software tanto daqui quanto dos USA. Não foram discussões no sentido programa do ratinho ou programa da tarde mal sentido. Pelo contrário, o objetivo foi racionalizar sobre o que foi dito, pedindo esclarecimento e tentando ver pelo ponto de vista do outro.

Existe sim quem defenda que o teste está morrendo (ou morto, para os mais catastróficos).

Gostaria de dizer que após muito refletir, concordo em partes.

Concordo que o teste totalmente manual, da forma como era feita totalmente isolada e somente após a construção do software não seja mais adequada no mundo agile.

Além de automatizar para agilizar, precisamos estar integrados e remando para o mesmo objetivo, juntos, e com informação propagada igualmente nas equipes desde o inicinho da produção de alguma funcionalidade.

Em um mundo ideal testers realmente não deveriam existir. Em um mundo ideal não existem bugs. Os desenvolvedores realizam todos os testes unitários e de integração perfeitamente, respeitando as restrições das frameworks. As complexidades de integração entre componentes do software não geram novos defeitos. Não há falhas de comunicação nem especificação entre as diversas partes da equipe, localmente ou espalhadas pelo globo. Mas além disso, e principalmente:

O MUNDO IDEAL NÃO EXISTE

Se você já escreveu uma redação ou qualquer outro texto na vida, sabe bem que mesmo que o façamos com toda a atenção, revisemos diversas vezes sempre escapa algum erro.

Basta que uma outra pessoa leia nosso texto uma única vez que essa pessoa encontre esses erros e pontos de melhoria que não enxergaremos nas diversas revisões.

Simplesmente porque temos o viés de quem produz uma obra, de defender o que produzimos e isso torna difícil um olhar imparcial sobre nossa própria produção.

Quando testamos nós mesmos as linhas de código que produzimos, mesmo que de forma inconsciente, tendemos a fazer testes de confirmação ao invés de testes destrutivos como um tester faria.

É uma diferença de mindset mesmo. O mindset do teste é destrutivo enquanto o mindset do desenvolvimento é construtivo. Dois objetivos inerentemente diferentes, apesar de complementares que buscam produzir software de qualidade.

Fazer software é muito parecido com escrever texto. Só isso, tudo isso, muito mais que isso. É tentar traduzir da cabeça das pessoas as suas necessidades para o mundo da programação. Do abstrato das necessidades para o abstrado do código solucionando os problemas reais.

E essa atividade está sujeita a erros. Muitos erros. Vários erros!

“Partes que foram feitas independentes e testadas e que funcionam sozinhas deveriam funcionar bem juntas”

Essa afirmação parece ser verdade mas infelizmente para o mundo do software não é. Para quem conhece engenharia de sistemas isso não é de se assustar. Mas para quem nunca ouviu falar disso, procure saber sobre propriedades emergentes dos sistemas.

A complexidade que temos que lidar ao produzir grandes produtos de software escaláveis, distribuídos, confiáveis e tolerantes à falhas é enorme. E em cada etapa – requisitos, projeto, desenvolvimento, integração, teste – mais e mais erros são inseridos no processo de produção.

Frente a isso, a conclusão é:

o teste de software não morreu, e sinceramente não o vejo morrendo tão cedo. O teste evoluiu, da mesma forma como os processos, ferramentas e linguagens também evoluíram.

E continua extremamente relevante em um mundo altamente competitivo com clientes cada vez mais experientes e exigentes por experiências de usuário maravilhosamente desenvolvidas.

E qual sua opinião sobre o assunto?

Referências