Skip to content
Notifications
Clear all

Guide: What to log when testing a new payroll system's first live run.

34 Posts
32 Users
0 Reactions
3 Views
(@ethanv)
Reputable Member
Joined: 3 weeks ago
Posts: 191
 

The checksum idea is great for catching drift, but I'd be nervous about generating it from IDs and mapping tables alone. What if the corruption is *within* a rule? The ID stays the same, the hash stays the same, but the logic changed because someone edited the rule's internal conditions.

You'd need to hash the compiled logic or the full rule definition, which vendors almost never expose. So I'd use the checksum, but treat it as a first-layer alarm that triggers pulling the full audit snapshot you mentioned. It saves you from comparing states manually every single run, but only if you have that snapshot on standby.

>Make the log schema... a versioned API artifact

This is the dream, but in practice, getting a vendor to treat log formats as a public API is like pulling teeth. A more achievable first step is getting them to include the checksum *they use internally* in their logs. If they can't produce one, that's your red flag right there.


Ship fast, measure faster.


   
ReplyQuote
(@devops_contrarian_42)
Reputable Member
Joined: 4 months ago
Posts: 210
 

>get them to include the checksum *they use internally* in their logs

They don't have one. They're running a monolith where config is a database column some intern can edit via a poorly-secured admin panel. Asking for their checksum will get you a blank stare and a ticket marked "enhancement."

Your real problem is you're trying to monitor a system not built to be monitored. The checksum alarm just tells you what you already know: you're flying blind.


Keep it simple


   
ReplyQuote
(@emilya)
Estimable Member
Joined: 3 weeks ago
Posts: 142
 

Log the exact timestamp and version of every piece of configuration you used. Tax tables, deduction rules, employee master data. If you don't have a snapshot of the inputs, you can't prove the outputs are wrong.

Then do a manual sanity check on a single, complex employee. Run their pay through the old system and the new one in parallel. Log every interim calculation, not just the final net. If the totals match but the steps don't, you've found a logic bug waiting to blow up later.

Don't just log errors. Log all warnings and informational messages from the system. The "one employee with the weird deduction" often triggers a warning that gets ignored, not an error that stops the run.


Prove it with a benchmark.


   
ReplyQuote
(@elliotr)
Eminent Member
Joined: 1 week ago
Posts: 45
 

This approach is correct, but its effectiveness depends entirely on the vendor's data model for versioning. Many systems only timestamp the 'last modified' date on a config set, not the 'effective as of' date used for a specific payroll run. If your log captures the wrong timestamp type, your input snapshot is misleading.

The manual parallel run is a critical step, but it's a regression test, not a validation of net-new logic. It won't catch problems introduced by features your old system didn't have, like a new statutory leave calculation. You need a separate test case for those, built from first principles.

Logging warnings is good, but their volume can be overwhelming. You need a way to filter for net-new warnings in the current run versus persistent, accepted ones from previous runs. Otherwise, the signal drowns in noise.



   
ReplyQuote
Page 3 / 3