Pode ser difícil de acreditar mas já houve um tempo no qual as pessoas – seja antes, durante ou depois da compra – não testavam o funcionamento de um produto, elas esperavam ele falhar. Esse hábito também foi bem comum no início da indústria de software, quando praticamente inexistiam práticas de verificação. Esse cenário começou a mudar a partir da década de 1950, quando iniciou-se a história dos testes no desenvolvimento de aplicações.
Em setenta anos, a atividade de testagem evoluiu bastante. Atualmente ela está totalmente incorporada à rotina da criação de produtos digitais ou em projetos de modernização de aplicações. Conforme o desenvolvimento de softwares foi escalando e se complexificando, em grande medida suportada pela computação em nuvem, houve um aumento exponencial no volume de testes.
Entretanto, não foi só a quantidade de mudou. A perspectiva, a função dos testes também foi se modificando, especialmente a partir da virada da década de 1970 para 1980. Fique com a gente neste texto para conhecer um pouco mais sobre a história dos testes e entender qual papel eles cumprem atualmente no desenvolvimento de aplicações.
As primeiras reflexões da literatura técnico-científica sobre testes são de Alan Turing. Em artigos publicados na virada das décadas de 1940 e 1950, o “pai da computação” trata sobre o uso de assertivas para verificar a prova de correção de algoritmos.
Os textos estão inclusos no período que David Gelperin e Bill Hetzel classificam como a fase orientada à depuração, o primeiro de cinco períodos da história dos testes. De acordo com os autores, essas fases são:
| FASE | PERÍODO | FOCO PRINCIPAL |
| Até 1956 | Orientação à depuração | Corrigir erros quando a máquina falhava |
| De 1957 a 1978 | Orientação à demonstração | Provar que o software atendia aos requisitos |
| De 1979 a 1982 | Orientação à destruição | Encontrar ativamente falhas antes que aparecessem |
| De 1983 a 1987 | Orientação à evolução | Usar erros como ponto de partida para melhorias |
| De 1988 em diante | Orientação à prevenção | Garantir qualidade contínua desde o início do projeto |
Podemos classificar os dois primeiros períodos como a “pré-história” dos testes. Isso porque 1979 é o ano da publicação do livro “The art of software testing” – em português, “A arte de testes em software” – do cientista da computação Glenford Myers. A obra é o principal marco sobre o tema na indústria, tanto que até hoje é uma referência sobre Gestão de Qualidade no desenvolvimento de software.
Na primeira fase da história dos testes, a de orientação à depuração, eles eram aplicados apenas quando a máquina apresentava algum erro. A testagem era a própria atividade de depuração. Tanto que, em boa parte da literatura técnica da época, os termos “depuração” e “testes” eram frequentemente usados como sinônimos.
Nunca é demais lembrar que, nesse período da história, computadores e programas não eram partes intercambiáveis; quando uma empresa adquiria uma máquina, ela vinha com seu próprio sistema. Essa peculiaridade também ficava evidente na atividade de testes: eles eram muito mais focados em hardware que em software. Os problemas destes eram despriorizados – e muitas vezes ignorados – diante da preocupação com a confiabilidade do hardware.
Na segunda fase, a de orientação à demonstração, testes e depuração passaram a ser encarados como atividades distintas. Essa separação fica clara no livro “Digital Computer Programming” – em português, “Programação de Computadores Digitais”, de Dan McCracken. A partir dessa abordagem, o objetivo da testagem não era corrigir uma máquina quando ela apresentava erros e sim demonstrar que o programa rodava e que resolvia os problemas propostos. Em outras palavras, que o software atendia os requisitos.
Essa abordagem mais profissional e criteriosa na atividade de testes tornou-se necessária diante da evolução das aplicações, seja em complexidade ou custo. Com mais softwares no mercado, o volume de bugs e problemas multiplicava. Isso aumentava o risco econômico que as quebras de programas poderiam provocar, fazendo aumentar tanto a exigência de qualidade quanto o investimento nas atividades de testes.
Em 1979 é publicado “A arte de testes em software”, o principal marco da disciplina. Sua relevância deve-se ao fato dela propor tanto uma nova lógica quanto um novo objetivo da atividade de testagem.
Na fase de orientação à destruição, o resultado final desejado era o mesmo da anterior: software funcionando e atendendo os requisitos. Mas Myers propõe uma nova e holística forma de alcançar esse intento: verificar todas as hipóteses que poderiam levar a um erro. A atividade de testes de software não deveria ser sobre checar o que estava funcionando e sim o de executar um programa com a intenção de encontrar erros.
É devido à “A arte de testes em software” que testes ganharam sua atual função, a de prevenção. Ao mudar a orientação da demonstração para a detecção de possíveis problemas, a atividade passa a visar a qualidade total, concedendo a possibilidade de checar a conformidade das aplicações no momento da sua conclusão.
As duas fases posteriores, tanto a orientada à evolução quanto à prevenção, são evoluções da fase orientada à destruição. Elas não alteram o princípio, apenas somam objetivos à atividade de testes.
Na fase orientada à evolução, a testagem passa a ser integrada à revisão e análise para promover a evolução do produto durante o ciclo de vida da aplicação. Colocando de outra forma, a atividade de testes continua tendo a finalidade de encontrar erros. Só que agora, as informações sobre eles tornam-se o início do planejamento da melhoria do sistema.
Por fim, a fase atual, a orientada à prevenção, pode ser sintetizada na expressão “qualidade como serviço”. A atividade de testagem não ocorre com o software pronto e sim ao longo de todo o ciclo de desenvolvimento, desde a fase de conceito. Os testes são realizados paralelamente à criação da aplicação, em todas as fases do projeto.
É no contexto dessa abordagem que nascem as metodologias de desenvolvimento atualmente muito praticadas no mercado: a de desenvolvimento orientado a testes – executada para testes unitários -, desenvolvimento orientado a comportamento e desenvolvimento orientado a testes de aceitação.
Toda a história da Inmetrics está intimamente ligada à atividade de testes. Nascemos como uma empresa que tinha o propósito de elevar a qualidade e performance de aplicações. Enquanto nosso DNA, ele está em todas as nossas atividades. Não à toa, somos uma empresa líder em Continuous Testing no ISG Provider Lens Next-Gen ADM Services Brazil 2022.
Se você precisa desenvolver aplicações realmente robustas e que performam sem erros, tendo todo o ambiente monitorado e corrigido quase instantaneamente, clique aqui, fale com o time de especialistas e conheça todas as nossas soluções!