Teste de software e Machine Learning

É preciso uma nova abordagem para testar sistemas que nem sempre retornam a mesma a resposta. Isto é ainda mais importante quando as respostas do sistema se adaptam de acordo com resultados anteriores.

Teste de software, na teoria, é uma atividade bem direta. Cada input tem um output definido e conhecido. Após os valores serem inseridos é esperado determinado resultado. Se isso ocorrer, ótimo. Se não, pode haver um bug e está é diferença para o machine learning, onde são esperados resultados variados.

Machine learning, colocando de forma simples, são aplicações baseadas em previsão usando modelos prontos. Estas aplicações são montadas em cima de algoritmos de aprendizagem que mudam de acordo com os dados e as interações. Do ponto de vista dos testes, os valores esperados após uma bateria predeterminada serão diferentes dos próximos resultados, já que a máquina terá aprendido com o primeiro teste.

Técnicas tradicionais de testes são feitas com valores fixos. A premissa comum nos testes é de que de que o valor de input X sempre resultará em output Y. Com o machine learning o output não é fixo, ele variará com o tempo, à medida que modelo tenha mais dados. Isto força o testador a pensar diferente e a adotar estratégias que diferem das técnicas de testes tradicionais.

Leve os seguintes pontos em consideração:

  1. Saiba a margem de erro, defina uma quantidade aceitável de erros que vão acontecer. Encontrar a otimização matemática é uma tarefa impossível. Algoritmos e aproximação não vão gerar cenários com 100% de precisão.
  2. Teste com novos dados. Uma vez que você treinou a rede e congelou a arquitetura e coeficientes, use novas entradas e saídas para verificar a precisão.
  3. Não espere que todos resultados serão 100% certos. Com este modelo de teste é esperado que ocorrerão erros, não tenha medo de tentar.
  4. Entenda a arquitetura da rede como parte do processo de testes. Compreender como funciona a arquitetura  ajudará testadores a perceber qual arquitetura trará os melhores resultados.
  5. Comunique com a equipe o grau de confiança que se tem no teste. Sistemas machine learning permitem mensurar a confiança em termos estatísticos. Faça uso dessa possibilidade única.
  6. É preciso criar cenários de testes. Você precisará criar alguns modelos de dados. Três cenários talvez sejam suficientes, um para o melhor cenário possível, outro para o caso aceitável e um para o pior cenário.

Em resumo, testar sistemas baseados em machine learning é um desafio. No entanto, é perfeitamente possível, adotando-se uma visão adequada. As habilidades que os testadores profissionais precisam ter nesse novo modelo não mudam, continuam sendo pensamento crítico, uma mente engenhosa e um aprendizado constante.

CONTINUOUS TEST AUTOMATION - WHITE PAPER

Conheça uma abordagem ágil e escalável para seus projetos de automação de testes.

BAIXE O WHITE PAPER