banner

blog

Jun 11, 2023

Como contribuí como testador para um sistema de aprendizado de máquina: oportunidades, desafios e aprendizados

Artigos da página inicial do InfoQ Como contribuí como testador para um sistema de aprendizado de máquina: oportunidades, desafios e aprendizados

16 de fevereiro de 2023 10 minutos de leitura

por

Shivani Gaba

revisados ​​pela

Ben Linders

O teste é considerado um aspecto vital no ciclo de vida de desenvolvimento de software (SDLC), por isso os testadores são envolvidos para garantir a qualidade da aplicação. Isto vale para sistemas de software convencionais, incluindo aplicações web, aplicações móveis, serviços web, etc.

Mas você já se perguntou sobre sistemas baseados em aprendizado de máquina? Nesses casos, os testes ficam em segundo plano. E mesmo que alguns testes sejam feitos, eles são feitos principalmente pelos próprios desenvolvedores. O papel do testador não é claramente retratado nessas áreas.

Os testadores geralmente têm dificuldade para compreender os sistemas baseados em ML e explorar quais contribuições eles poderiam fazer em tais projetos. Portanto, neste artigo, compartilharei minha jornada para garantir a qualidade de sistemas baseados em ML como testador. Vou destacar meus desafios, aprendizados e minha história de sucesso.

Como a maioria dos testadores, participei de testes de sistemas convencionais envolvendo aplicativos da web, aplicativos nativos, back-end, microsserviços, etc. Nesses sistemas, a entrada é obtida e a lógica é escrita por humanos (principalmente desenvolvedores) para produzir um saída determinística. Como testadores, nosso foco é verificar o resultado esperado em relação aos requisitos especificados/implícitos.

Curiosamente, há alguns anos tive a oportunidade de testar um sistema de recomendações baseado em ML. É bem diferente dos sistemas convencionais, então fiquei animado e ansioso ao mesmo tempo.

Em sistemas de ML, uma grande quantidade de dados com padrões é fornecida como entrada. Ele é alimentado a um modelo, que aprende lógica para descobrir esses padrões e prever eventos futuros.

Para garantir a qualidade, é importante testarlógica aprendida . Então me perguntei: como posso testar esse processo de aprendizagem e ológica aprendida pelo modelo? É mesmo possível testar essa lógica? Um modelo é completamente uma caixa preta?

Tendo muitas dessas questões em mente, fiquei curioso para explorar e aprender. Eu estava pronto para um passeio de montanha-russa :)

Em meu entusiasmo e curiosidade para contribuir rapidamente, fiz o que a maioria de nós faria - Google as ideias de teste! A maioria dos recursos aos quais me referi apontavam para métricas de avaliação de modelo, como precisão, recall, matriz de confusão, etc. Honestamente, eu não os entendi. Mas levei de volta meu aprendizado incompleto aos meus desenvolvedores, e eles me disseram que já estavam levando essas métricas em consideração.

Percebi que os desenvolvedores conheciam bem seu domínio. Para criar impacto como testador, precisei trazer as perspectivas que eles perderam.

Nós, como testadores, somos abençoados com o grande conjunto de habilidades para fazer as perguntas certas, compreender o panorama geral, pensar fora da caixa, aplicar conhecimento mais profundo do produto, desafiar o status quo, etc. testar sistemas de ML, muitos dos problemas poderiam ser evitados.

Também percebi que estava tentando testar algo sem sequer entender como o sistema funciona e quais são os blocos de construção. Mas, para testar melhor qualquer sistema, este deve ser o primeiro passo.

Discuti essa abordagem com meus desenvolvedores para colaborar no entendimento profundo do sistema e aplicar minhas habilidades de teste em todas as fases.

Os desenvolvedores, que inicialmente estavam céticos em ter um testador a bordo, ficaram entusiasmados ao ouvir esse plano e ansiosos pelo valor que eu poderia oferecer.

Junto com minha equipe, entendi que no aprendizado de máquina um enorme conjunto de dados com determinados padrões é coletado, filtrado e alimentado em um modelo. O modelo identifica esses padrões e prevê a probabilidade de eventos futuros.

COMPARTILHAR