Aquele papo sobre Inteligência Artificial, robôs e testes de software…

Fábio Correia e Mello
CESAR Update
Published in
3 min readFeb 16, 2018

Não sei se vocês conhecem a piada do Engenheiro de Testes que entra em um bar e pede:
0 cervejas.
Depois pede 999999999999 cervejas.
Depois pede uma *’ç”@#!$ÜÓí.}{}][‘
Depois pede uma cerveja vazia.
Depois pede NULL cervejas.
Depois pede uma “><script>give_me_your_credit_card()</script>.
Para finalmente sair do bar sem pagar, voltar, e pedir pelo cardápio, conhecem?!

Cada um pede o que quer, não é mesmo?!

O que esses cenários tem em comum? A natureza aleatória do caos, gerada por pura prática (ou a falta dela), que geralmente não é considerada no primeiro momento da concepção e desenvolvimento de uma aplicação, seja qual for a plataforma.

Repetimos os métodos, aprendemos paulatinamente, e trabalhamos incessantemente na incrementação da complexidade dos nossos cenários de testes e profundidade da nossa exploração. Essa prática se dá, geralmente, em um escopo considerando a visão de usuário final, através de fluxos que são exercitados manualmente, uma vez que testes automáticos são patetas (só faça isso, só faça aquilo, veja se quebrou!) e na teoria nunca vão sair dos trilhos, pelo menos até eles começarem a considerar que sair dos trilhos é algo interessante… E então: BOOM! SKYNET!

Estamos à salvo, pelo menos por enquanto… (Créditos: Simone Giertz)

Rotinas e repetições, nós adoramos padrões!

Durante uma conversa com um amigo, sobre um bug de cenário um tanto incomum, ele pensou alto: “Existem situações em que os maus usuários de computadores parecem ser os melhores testadores”, referindo-se a filha dele mais nova, que em brincadeiras aleatórias com seu telefone celular, conseguia quebrar as aplicações de forma trágica com alguma frequência… Pois é, por isso que eu comecei com a piada do Engenheiro de Testes entrando em um bar, porque por mais que digam que os cenários são absurdos, eles ocasionalmente serão provocados por um ou outro perfil de usuário.

Enxergamos padrões e repetições o tempo todo. (Foto por Dan Freeman via Unsplash)

Enxergamos padrões de forma corriqueira, e como bons mamíferos (nosso cérebro reconhece padrões de forma primorosa, quer eles façam sentido ou não!) acabamos por nos apegar a eles, uma Inteligência Artificial munida de boas situações de testes e de uma capacidade de aprendizado muito mais anabolizada do que a nossa, certamente não sofreria do mal, sendo imune a praga da repetitividade de tarefas, podendo flutuar entre uma criança de 5 anos, um de engenheiro de testes apaixonado por repetições ou um varredor de bugs aleatórios incansável, conseguindo desta forma, aposentar a velha concepção postulada no terceiro parágrafo de que: “testes automáticos são patetas”, garantindo uma camada quase initerrupta de testes, assim como uma cobertura infinitamente maior do que as que nossos protocolos mentais podem estruturar.

Por fim…

Quando isso vai acontecer?! Já está acontecendo. Se você não leu ou ouviu recentemente sobre como os bots (abreviação simpática de Robots) estão mudando (geralmente para o mal) o rumo da opinião pública, dos atendimentos eletrônicos, e até das especulações monetárias (oh hai bitcoin!), saiba que eles já estão entre nós, e não adianta resistir, nosso conhecimento está sendo assimilado.

Ray Kurzweil, engenheiro chefe do Google e para muitos um profeta tecnológico, acredita que a inteligência artificial atingirá o estado de singularidade — estado em que máquinas se tornam auto-suficientes a ponto de criarem máquinas mais inteligentes que elas próprias — deverá acontecer em aproximadamente 30 anos, e se o Governo dos EUA, por exemplo, está preocupado com os rumos e regulações que a IA tomará nesse tempo, acredito que temos que nos preparar também. Apesar disso tudo, daqui para lá teremos muito o que testar e muito código para lapidar.

--

--