Feliz dia do teste de software! Mas espera… como tudo começou?

Para quem não sabe, hoje, dia 20 de fevereiro é celebrado o dia internacional de testes de software! (Chique né?!). Essa data foi escolhida como uma homenagem a publicação do livro "The Art of Software Testing" por Glenford J. Myers (Bacharel em Engenharia Elétrica, Mestre e Doutor em Ciência da Computação) que gerou um marco na profissionalização da atividade. Alguns até chamam o livro de "A Bíblia do Teste" dado ao volume de conceitos, práticas e técnicas reunidas, que ajudaram a formar a cultura da qualidade que temos hoje.

Muitos confundem a data com um marco também muito importante para a área que aconteceu no dia 9 de setembro de 1947 no laboratório da Universidade de Harvard, quando investigadores acabaram detectando um BUG (literalmente um inseto), que impedia o funcionamento no sistema do Mark II. Grace Murray Hopper, uma das cientistas envolvidas no projeto, registrou o ocorrido em seu caderno. Ela removeu a mariposa, fixou-a com uma fita e anotou: “First actual case of bug being found” – o primeiro caso real de um bug encontrado.
Mas esse acontecimento é comemorado apenas no dia 09 de setembro, como o dia mundial do testador de software. E por mais curioso e muito particular que possa ter sido esse fato, não se tem uma origem definida do termo BUG. Thomas Edison, por exemplo, já utilizava esse termo nas suas notas de trabalho para descrever erros ou interferência no telégrafo. Falando em termos da área, se retrocedermos um pouco mais no tempo também podemos lembrar do que pode ter sido o primeiro defeito da história quando a Ada Lovelace identificou um "engano" nas instruções do algoritmo da calculadora de Charles Babbage. Mas por mais diferentes que possam ser as ideias sobre o começo de tudo, o que importa é perceber como todas essas designações surgiram de um único bug e como os testes de software evoluíram – de algo que quase não existia para uma parte essencial de todo o ciclo de desenvolvimento.
O início da engenharia de software nas décadas de 1950 e 1960, foi um período crucial que lançou as bases para as práticas que conhecemos hoje. Antes disso, os testes eram feitos de maneira ad hoc pelos próprios programadores com o intuito de encontrar e corrigir erros no código. Mas foi em 1957 que Gerald M. Weinberg introduziu a ideia de que o teste deveria ser separado da depuração, dando os primeiros passos para torná-lo uma disciplina distinta. Já na década de 1970 a 1990 surgiram metodologias formais de desenvolvimento de software, como o Ciclo de Vida em Cascata, incluindo fases bem definidas para testes.
Lembra do Myers que falamos lá no início? Com a publicação do seu livro novos conceitos e técnicas foram incorporados à prática de teste, como análise de valor limite, partições de equivalência, testes caixa-preta e até alguns dos princípios dos testes que são cobrados na CTFL e amplamente utilizados, foram apresentados neste livro, por isso ele é tão importante até hoje. Nesse mesmo período, com o crescimento da indústria de software, as empresas perceberam que falhas em produção eram muito caras, levando a um investimento maior na qualidade de software. Quem lembra do famoso Bug do Milênio que causou pânico global quando sistemas de computadores em todo o mundo corriam o risco de falhar na virada do ano 2000 porque muitos programas armazenavam o ano com dois dígitos, o que fazia com que o ano 2000 fosse interpretado como 1900? Logo após, várias normas foram introduzidas para definir padrões de qualidade e ferramentas de automação de testes começaram a ganhar popularidade, como o JUnit, que além de ser o pioneiro no conceito de teste unitário automatizado, também ajudou a popularizar a ideia de escrever testes antes do código (TDD).
Hoje estamos vivendo a era da inteligência artificial e machine learning, depois de ter passado pela cultura de devops, testes em nuvem e práticas de Shift-Left. Com o tempo passando as mudanças foram ocorrendo e com elas a criação de novas capacitações, compartilhamento de conhecimentos em grandes eventos de tecnologia voltado para qualidade de software e para atuação do QA no mercado, com intuito de discutir os assuntos mais atuais dessa esfera. E muito mais do que só encontrar bugs, a qualidade de software se tornou uma estratégia para a sobrevivência de produtos digitais, oferecendo produtos mais confiáveis e eficientes e fidelizando clientes através da melhora da experiência do usuário. E depois de tanta história, tantos marcos importantes, qual será a próxima realização da nossa área? Te conto as previsões no próximo post ;)
Referências bibliográficas
O primeiro bug (real) da história
A Origem d̷a̷ ̷v̷i̷d̷a̷ dos testes — Quem somos, de onde viemos e para onde vamos?
Engenharia de Software Moderna Cap. 8: Testes.
Qualidade do software: por que é tão importante?.
Entenda a importância da qualidade no desenvolvimento de softwares
(PDF) O cenário atual da qualidade de software
Testes de Software: por que são necessários e quando adicionam valor? – Squadra Digital
Dia do bug e os 5 bugs mais famosos da história da computação | iMasters
Alguns dos mais famosos erros de softwares da história - e-SETORIAL Business Analytics
Comments ()