Por muito tempo o teste de software foi visto como uma atividade do processo de desenvolvimento de software que no papel era extremamente importante e necessária para atingir a qualidade do produto de software, mas na prática, por muitas empresas, tornou-se uma das atividades mais negligenciada. Por esse motivo enraizou-se uma péssima cultura em relação à atividades de testes, que, quanto a importância, ficou à margem da construções do software e que, se desse tempo, era executada. A negligência, por muito tempo da referida atividade gerou algumas "afirmações" que hoje soam como piadas:
- "…Implemente, se der tempo agente testa."
- "o importante é entregar… os testes, deixa que o cliente faz pra gente…"
- "o prazo vai estourar…Então sacrifique os testes…"
- "entregue com bugs, mas entregue em dia, depois agente arruma…"
- "sabemos que nosso software está cheio de bugs, então vamos cobrar uma manutenção mensal do nosso cliente para consertá-los…"
- “testar não é uma atividade importante…"
- ”…como vamos testar se não temos tempo?"
- "…testar pra que? perda de tempo."
- "pra desenvolver sem teste é X, com teste é X2…'"
Fico impressionado! Dá até medo! Imagine se a indústria de aviação fosse igual a de software. Quantos aviões cairiam por dia? Imagine se a indústria farmacêutica fosse igual a de software. Você confiaria nos remédios? Imagine se o projeto do modelo do seu carro fosse construído como esses softwares? Você andaria em um elevador que foi construído com essa mesma metodologia? "Instale o elevador aí… depois o cliente testa pra gente…"
Quando fala de teste, estou me referindo também a qualidade do software. Apesar de não serem sinônimos, mas com certeza o nível de qualidade dos teste de software é um fator, entre vários outros que definem a qualidade do produto final.
Por outro lado, do ponto de vista do profissional, o teste de software possuia algunsPRE-conceitos:
- “testar é uma atividade chata e cansativa…"
- "testar paga mal…"
- "não gosto e não sei programar… logo vou trabalhar na área de teste…"
- "minha empresa não valoriza a área de testes…"
- "testar é ficar encontrando erros dos outros…"
- “maus programadores viram testadores…”
- "…subatividade?"
- "qualquer um pode testar…"
Hoje, no entanto, o teste "virou o jogo" com a popularização de processos emergentes de desenvolvimento de software como eXtreme Programming. Práticas como TDD e BDD fornecem uma novo paradigma no desenvolvimento. Hoje, com a ascensão do teste de software, novas "afirmações" foram geradas:
- "a qualidade do produto é inegociável…"
- "primeiro escrevemos nossos testes unitários, depois implementamos…"
- "entregar software sem um boa cobertura de teste unitário tornou-se amadorismo…"
- "ausência de teste unitário é antiético… "
- "não consegue executar teste de carga, performance e segurança no seu sistema? Sua equipe está com débito técnico…"
- "nossa integração é contínua e automatizada…"
- "nossos testes são automatizados…"
- "temos cada linha de código da aplicação, temos três linhas de teste…"
- "nos preocupamos com a cobertura dos testes, com casos de teste que refletem os requisitos de negócio…"
- "enquanto os testes não passarem 100% o produto não é entregue…"
- "entregue menos, mas entregue funcionando…"
- "quem quebrar o deploy paga dez flexões…"