UAT Test 1 · Finance & Accounting
BMV's Finance UAT runs across 16 phases, from Chart-of-Accounts setup through a full end-to-end simulation. This page walks through every phase that's been run so far — the real scenario tested, the exact steps taken, what we expected, and what actually happened — and lists what's still ahead with the process we'll follow to test it.
Each phase below is tested against the live, running ERP — not reviewed on paper. We describe the real BMV business scenario simulated, the exact steps carried out, what the system was expected to do, and what it actually did. Where a test turned up something broken, that defect and its fix sit directly under the test that found it. Phases not yet run are listed further down with the process we intend to follow for each, so nothing is a surprise when we get there.
Does the foundation everything else depends on actually exist and work?
Can the company's starting financial position be entered, posted, and trusted?
{entry}) and the controller's expected parameter ($journalEntry) meant Laravel silently handed every request an empty, blank entry instead of the real one. This wasn't specific to this one entry — nothing could be posted, reversed, approved, rejected, or submitted for approval anywhere in the ERP until this was fixed. Corrected by renaming the route parameter to match the controller. Verified: the entry then posted cleanly, Trial Balance showed ₦49,000,000 = ₦49,000,000, balanced.Can BMV pay a supplier correctly, against the right account, without overdrawing the bank?
Does stock on the warehouse floor match stock in the General Ledger?
Can BMV invoice a customer, collect payment, and enforce credit terms correctly?
| Revenue recognized | Dr AR ₦37,625,000 / Cr Local Sales ₦35,000,000 / Cr VAT Payable ₦2,625,000 — correct |
| Customer Statement | Correct balance, after a fix below |
| Sales Report | Built (didn't exist before) — reconciles to GL exactly |
| Trial Balance | Balanced, ₦124,122,500.00 = ₦124,122,500.00 |
| Customer payment | Correct after a fix below — Bank and AR both tie out exactly |
When BMV sells, does the true cost of the sale post alongside the revenue?
Not yet started. Each will be tested live against the running ERP the same way Phases 1–6 were — a real BMV scenario, exact steps, expected vs. actual — and this page will be updated as each closes.
Recording day-to-day expenses (fuel, utilities, office costs) and confirming they hit the Profit & Loss correctly.
Process: post a sample expense against Bank, verify the P&L moves by exactly that amount and nothing else.
Expenses incurred but not yet paid, and payments made in advance of the period they cover, recognized in the right period.
Process: post an accrual and a prepayment, confirm each lands in the correct accounting period and reverses/releases correctly afterward.
Bank reconciliation against a statement, and whether the Bank Account dashboard reflects real postings.
Process: run a bank reconciliation to a known statement balance and confirm Difference = ₦0. Already known going in: the Bank Account dashboard doesn't yet sync from real GL postings (flagged during Phase 2/3) — this phase will confirm whether the dedicated Reconciliation module has the same gap or works independently, and close it out either way.
VAT/WHT calculation on invoices and bills, and correct posting to tax payable/receivable accounts.
Process: raise a transaction with tax applied, verify the tax line posts to the right account and appears correctly on the VAT/WHT report.
Broader FX handling beyond the receipt-level gain/loss already verified in Phase 5 — multi-currency balances and period-end revaluation.
Process: revalue an open foreign-currency balance at a new rate and confirm the unrealized gain/loss posts correctly without affecting realized figures already booked.
Whether the opening ₦5,000,000 office equipment asset has a proper fixed-asset register entry, and whether depreciation runs correctly against it.
Process: confirm/create the register entry, run a depreciation period, verify the expense and accumulated depreciation post correctly.
The control tests that run underneath every phase above, tested directly and deliberately: duplicate transactions, closed-period protection, invalid transactions, permissions/security, and the audit trail itself.
Process: deliberately attempt a duplicate entry, a post into a closed period, an invalid/unbalanced entry, and an action outside a role's permissions — each should be blocked, and the audit trail should show who did what, when.
Running an actual period close — locking the period, confirming nothing can post into it afterward.
Process: close a test period, attempt to post into it afterward (should be blocked — this is also where closed-period protection from Phase 13 gets its real exercise), confirm opening balances roll forward correctly into the next period.
Balance Sheet, P&L, Cash Flow, and the full set of module-to-GL reconciliations.
Process: run each report and reconcile AP, AR, Inventory, Bank, Tax, and Fixed Assets against the GL individually, plus trace a sample of source documents through to their accounting entries. Already known going in: the Balance Sheet is missing Retained Earnings/Current Year Earnings, so Total Assets won't yet equal Total Liabilities + Equity by exactly the period's Net Income — flagged during earlier testing, to be fixed and verified as part of this phase.
One end-to-end run through a realistic BMV business cycle — purchase, receive, process, sell, export, collect, close — touching every module at once, the way the business actually operates.
Process: a single simulated scenario from purchase order through to month-end close, checked against every control above in sequence rather than in isolation.