Oi Meu nome é Olga Mikhalchuk, sou engenheiro de controle de qualidade (engenheiro ou testador de garantia de qualidade) na empresa fintech da ID Finance. Neste post, mostrarei o que o controle de qualidade faz e como procurar e corrigir erros nas estimativas de crédito, até que levem a grandes perdas na sua empresa.

Um pouco sobre o meu trabalho: controle de qualidade ou testador
A ID Finance é uma empresa de fintech cujos projetos são apresentados em sete países. Trabalho no Brasil, um produto do
MoneyMan (serviço de empréstimo on-line).
Para começar, gostaria de definir um pouco com os termos "engenheiro de garantia da qualidade" e "testador", embora esse seja um tópico para outro artigo. Não há uma única idéia desses conceitos. Na maioria dos casos, os testadores são chamados de especialistas que verificam a operação correta do sistema após o desenvolvimento e antes de fornecer funcionalidade aos usuários finais. E o controle de qualidade significa um trabalho mais global e mais profundo para garantir a qualidade do produto. Isso inclui o estudo das causas dos defeitos que surgiram, sua prevenção, manutenção pós-liberação, melhoria contínua do processo e muito mais.
De fato, meu trabalho se parece com isso: analisamos e verificamos as tarefas que outros departamentos compilaram e desenvolveram pelos programadores, inseriram e analisaram bugs, escrevem documentação e relatórios de teste, monitoram o status da produção, conduzem demonstrações, etc. Também temos o conceito de Produção QA. Os funcionários do nosso departamento também devem ter uma idéia sobre o processo de desenvolvimento: todos os dias, descemos para o nível de registro do banco de dados e do sistema, observamos o código e o console e usamos os sistemas para monitorar a carga e o estado do sistema. Devemos entender as especificidades do negócio: isso inclui a análise de tarefas e a comunicação com outros departamentos. Deve conhecer as características do trabalho de outros departamentos. Exemplo: como você pode testar se as acumulações de crédito são realizadas corretamente quando você não entende isso? É por isso que continuarei chamando minha posição de controle de qualidade, ou seja, um especialista em garantia de qualidade, embora não me ofenda se for chamado de testador.

Teste de custeio de crédito
Em nossa empresa, os cálculos de crédito chamam todos os cálculos de parâmetros e indicadores de crédito. Esse é o cronograma de pagamentos, o valor do principal e dos juros, a multa em caso de atraso, o cálculo de impostos, impostos etc. Um total de mais de 100 indicadores em diferentes tabelas do banco de dados. Além dos serviços básicos, existem outros adicionais: extensão, reestruturação, renovação. Há também um sistema de descontos, bônus, vários produtos de crédito disponíveis para o usuário e vários outros recursos.

Os cálculos de crédito são uma das áreas mais difíceis que encontrei durante meu trabalho na empresa. Na minha opinião, apenas uma política de crédito está em um nível de complexidade (um conjunto de regras e algoritmos segundo os quais é tomada uma decisão sobre a possibilidade de concessão de um empréstimo e qual empréstimo podemos conceder a esse usuário).
Recursos de teste de estimativas de crédito
- Prepare-se para o processo de teste com antecedência, idealmente - antes do desenvolvimento. Analise os requisitos, prepare a documentação de teste.
- Passamos de verificações mais básicas para as mais complexas e combinadas: primeiro, verificamos a emissão de um empréstimo, os pagamentos dentro do prazo, o valor em quantidade, etc.
- Verificamos as configurações iniciais e o contrato que o mutuário assina.
- Não se esqueça de serviços adicionais (renovação, descontos, etc.)
- Ambiente de produção - um depósito de casos de teste. É uma boa idéia pegar os casos de "referência" e comparar o custo com eles.
- O impacto das mudanças nos custos nos clientes existentes não pode ser permitido.
- Você deve sempre se lembrar da regressão após qualquer alteração.
- Consideramos se outras tarefas de terceiros podem afetar as estimativas de crédito.
Casos específicos: como os bugs podem afetar milhares de dólares em receita e como lutamos com elesComecei a trabalhar com estimativas quando elas já estavam no lançamento há cerca de dois anos, então não conhecia os muitos encantos da origem desse processo. No entanto, tive que enfrentar sua estabilização e correção de bugs. Vou falar sobre os casos que mais me lembro:
Efeito borboleta no custeioSe você pesquisar no Google a definição de "efeito borboleta", poderá ver: "O efeito borboleta é um termo que denota a propriedade de alguns sistemas caóticos: um pequeno efeito no sistema pode ter consequências grandes e imprevisíveis, inclusive em um local completamente diferente". Eu acho que essa definição descreve perfeitamente a situação nas estimativas de crédito.
Como exemplo, uma vez que corrigimos um bug menor: houve uma pequena imprecisão no arredondamento de alguns campos. Depois de recontar todos os empréstimos (bom no ambiente de teste), descobriu-se que cerca de mil empréstimos estavam atrasados, embora realmente não devessem! Portanto, a correção desse bug insignificante afetou, porque nos cálculos de crédito todos os parâmetros estão fortemente interligados e afetam uns aos outros, às vezes em locais inesperados. Graças a Deus, isso foi rapidamente percebido, reparado, não permitindo que os usuários finais. O fato é que enviamos informações sobre o atraso à agência de crédito. Poderíamos estragar centenas de históricos de crédito de clientes e nossa reputação. E, é claro, esse erro resultaria em milhares de dólares em perdas.
Não é possível corrigir 100% dos errosComo escrevi no primeiro parágrafo, todos os parâmetros nos cálculos se influenciam bastante. Por causa disso, durante a correção em um lugar, muitas vezes algo quebra em outro. Quando fomos confrontados com a correção de um grande número de bugs acumulados, é claro, o departamento de negócios queria que absolutamente todos os erros fossem corrigidos. Porém, na tentativa de corrigir alguns erros sem importância, mais e mais erros aumentavam, como uma bola de neve. Como se costuma dizer, o ideal é o inimigo do bem. Portanto, nossa principal tarefa naquele momento era levar o sistema ao estado mais estável, com um impacto mínimo de bugs nos negócios, e não corrigir 100% dos defeitos. Essa abordagem acabou sendo muito mais produtiva do que a correção sem fim de mais e mais erros que surgem um do outro.
Atenção a combinações não triviaisA maioria dos erros ocorre precisamente com combinações não triviais de métodos de pagamento e uso de um empréstimo, quando as ramificações do código se confundem. Por exemplo: o usuário paga a primeira parcela antecipadamente, a segunda paga em 5 etapas, faz uma extensão na terceira e depois fica adiada por várias semanas ... Infelizmente, muitas vezes os bugs nesses casos já estão no prod. Conclusão: prestamos atenção à combinação de casos e lembramos do sexto ponto da última seção (prod. Quarta-feira - um depósito de casos de teste).
Não toque em clientes existentes!É impossível permitir que quaisquer alterações no valor, prazo ou condições do empréstimo afetem os clientes existentes que o aceitaram em determinadas condições. Se isso acontecer, trará muitos problemas ao departamento de suporte e a toda a empresa.
Comparação de carteiras de empréstimosUma maneira muito eficaz de verificar se as estimativas de crédito funcionam corretamente se alguma alteração foi feita é comparar as carteiras de empréstimos antes e depois das alterações. Isso significa que temos uma base de empréstimos condicionalmente correta, com estimativas que atendem às expectativas do negócio. Aplicamos novos cálculos de crédito a esse banco de dados e, usando ferramentas especiais e análise de dados, comparamos alguns indicadores gerais dessa pilha de empréstimos, como, por exemplo, o número de empréstimos vencidos antes e depois das alterações ou o montante de juros de todos os empréstimos. Este método é muito útil nos testes e na solução de problemas.

Conclusões
Os cálculos de crédito são um tópico sério e difícil, mas muito interessante e cheio de quebra-cabeças. Ao trabalhar com ele, você precisa ser um pouco analista de dados, financeiro e matemático. Mas mesmo um animal tão perigoso pode ser domado se você encontrar uma abordagem para ele.
E pontos simples ajudarão nisso:
- Preparação cuidadosa: requisitos de qualidade, documentação comercial e de controle de qualidade, projeto de teste cuidadoso;
- Regressão (lembre-se do "efeito borboleta");
- Ambiente de produção como fonte indispensável de casos de teste e benchmark.