A folha tem um modo de falha que é fácil de ignorar até lhe acontecer: vazamento cruzado entre funcionários.
Acontece quando a taxa, a configuração ou as horas de um funcionário afetam silenciosamente o salário de outro. Num pequeno grupo pode ser um incómodo de arredondamento. Num restaurante ou operação de trabalho temporário com 50 funcionários pode significar pagamentos errados, impostos errados e muitas verificações manuais.
Não queríamos assumir que o motor estava imune a isto. Então construímos uma prova para tentar quebrá-lo.
A prova
Configurámos vários funcionários na mesma empresa de teste com taxas por hora diferentes e configurações diferentes, e depois corremos a folha para todos eles no mesmo ciclo de cálculo.
As perguntas que fizemos:
- Se a taxa por hora do Funcionário A é 10,00 EUR, continua 10,00 EUR e não vaza para o cálculo do Funcionário B?
- Se a configuração do Funcionário B muda, o salário do Funcionário A continua exatamente como era?
- Correr a folha para um funcionário contamina o cálculo de outro?
Um motor de folha que não tem cuidado com estado pode falhar estas provas de forma subtil — caches partilhados, objetos mutáveis partilhados, um cálculo que lê acidentalmente o registo do funcionário errado.
O que encontramos
Zero vazamentos.
A prova passou 3 de 3 cenários:
- Linha de base horária padrão — horas regulares de dia útil calculadas corretamente por funcionário sob a empresa de teste.
- Cenário de turno dividido — um turno dividido estilo restaurante com pausa não remunerada calculado corretamente, com regular e horas extras diárias divididas no limiar certo.
- Isolamento de folha — modificar a taxa ou configuração de um funcionário não teve qualquer efeito na folha de qualquer outro funcionário.
Nenhum dos testes de regressão de folha existentes regrediu. O isolamento manteve-se.
Por que isto importa na compra de software de folha
Se está a correr folha para vários funcionários, precisa de duas garantias:
- Correção por funcionário — o salário de cada pessoa está certo.
- Isolamento entre funcionários — os dados de uma pessoa não podem mudar silenciosamente os de outra.
A maioria dos fornecedores afirma ambas. Nós queríamos prova, não afirmação. Então testámos explicitamente o vazamento e publicámos o resultado aqui.
Se está a avaliar a Chegatta para folha real, este é o tipo de prova que deve pedir a cada fornecedor: "mostre que testou vazamento cruzado entre funcionários, não apenas que um único funcionário calcula corretamente".
Este é apenas um peça de um quadro mais amplo
Zero vazamentos é necessário, não suficiente. A folha tem outros riscos: tabelas de imposto erradas, bases de Segurança Social erradas, tratamento de horas extras que não corresponde ao seu setor, execuções bloqueadas que podem ser alteradas de qualquer forma.
Nós cobrimos o quadro mais amplo aqui: Por que é que publicamos os resultados dos nossos testes de folha em vez de fingirmos que tudo é perfeito.
E o cenário específico que quebra sistemas de folha ingénuos aqui: A folha de restaurante é mais difícil do que a folha de escritório — o que testámos.