Enable Dark Mode!
how-to-perform-effective-post-migration-testing-in-odoo-19.jpg
By: Sayed Mahir Abdulla KK

How to Perform Effective Post-Migration Testing in Odoo 19

Technical Odoo 19 Odoo Enterprises Odoo Community

Migration to Odoo 19 is not over after the database migration. The migration process needs to be validated after migration to ensure that the business processes, information, customization, and integrations work as expected in the new environment. Validation after migration allows detection of potential problems before implementing the system into production.

Why Post-Migration Testing Matters:

  • Even in the case of successful completion of migration, there may be issues associated with the following:
    • migrated data.
    • business workflows.
    • custom modules.
    • scheduled actions.
    • reports.
    • external integrations.

Without proper testing, these issues will manifest only once people start using the new system.

  • These post-migration risks include:
    • missing or inconsistent records.
    • broken automated actions.
    • incorrect accounting balances.
    • access control issues
    • incompatible custom modules.
    • report rendering problems.
    • integration failures.

Phase 1: Environment Verification

Before functional testing begins, verify that the migrated environment is stable.

The Odoo 19 instance is running correctly

  • All required modules are installed
  • Custom modules load without errors
  • Database migration scripts completed successfully
  • Third-party integrations are configured
  • Server logs contain no critical startup errors

Command to verify installed modules:

./odoo-bin -d your_database --stop-after-init

Review the output for any module failures or deprecation warnings.

Phase 2: Data Integrity Testing

Validate that all critical business data has been migrated correctly.

Records to Audit

ModuleWhat to Check
ContactsCustomer and vendor records, addresses, tags, and payment terms
SalesOpen quotations, confirmed orders, and invoiced amounts
PurchaseOpen RFQs, purchase orders, and received quantities
InventoryStock quantities per location, lot/serial numbers, valuations
AccountingJournal entries, outstanding invoices, bank statements
HREmployee records, contracts, leave balances
ProjectsActive projects, tasks, timesheets

Testing Approach

  • Compare record counts between old and new databases
  • Verify totals for accounting reports
  • Spot-check critical records manually
  • Validate computed fields and balances
  • Confirm archived records are preserved

Phase 3: Functional Testing

Test all critical business workflows from start to finish.

Sales Cycle

  • Create a new quotation > confirm as sales order > deliver > invoice > register payment.
  • Verify pricelist and tax rules are applied correctly
  • Test discount and promotional pricing logic

Purchase Cycle

  • Create a Request for Quotation > confirm purchase order > receive goods > vendor bill > payment.
  • Check landed costs if used
  • Validate three-way matching (PO, receipt, bill)

Inventory & Warehouse

  • Perform an inventory adjustment and verify journal entries
  • Test routes: FIFO, FEFO, average cost
  • Run a replenishment and confirm reorder rules trigger correctly
  • Validate multi-warehouse and multi-location setups

Accounting & Finance

  • Open and post a journal entry manually
  • Reconcile a bank statement
  • Generate a Trial Balance, Profit & Loss, and Balance Sheet
  • Check the fiscal year configuration and tax mapping

Human Resources

  • Run a payroll for at least one employee
  • Validate leave allocations and balances
  • Check attendance integrations if applicable

CRM

  • Move a lead through all pipeline stages
  • Test email gateway (inbound and outbound)
  • Verify scheduled activities and automated actions

Phase 4: Automated Actions & Scheduled Tasks

Automations should be tested individually after migration.

Steps:

  1. Navigate to Settings > Technical > Automation > Automated Actions.
  2. Review all active rules — confirm they reference valid models and fields in Odoo 19
  3. Manually trigger critical crons (e.g., invoice aging, stock forecasting) and check results.
  4. Confirm email templates are rendering correctly with no broken placeholders.

Phase 5: Custom Module Testing

All custom and third-party modules must be tested separately.

  • Clean Installation: Verify the module installs in the migrated environment without dependency errors or traceback logs.
  • Feature Walkthrough: Conduct a full end-to-end audit of all added or modified functionalities to ensure business logic remains intact.
  • UI/UX & Data Audit: Manually inspect all custom views, wizards, and reports. Validate that computed fields trigger and display correctly.
  • Method Integrity: Ensure overridden core methods maintain their intended behavior and do not conflict with the updated base code.
  • Constraint Testing: Stress-test Python and SQL constraints against edge cases to prevent data corruption or bypasses.

Technical Priority Areas

  • ORM API Compatibility: Update code to accommodate Odoo 19 ORM changes, specifically addressing deprecated methods and adopting new field types.
  • Frontend Framework: Review and refactor any JavaScript components to align with OWL 3 standards and lifecycle changes.
  • Security & Governance: Re-validate access control lists (ACLs) and record rules to ensure security definitions function correctly in the new version.

Phase 6: User Access & Security Testing

Validate user roles and permissions after migration.

  • Test
    • internal users.
    • managers.
    • administrators.
    • portal users.
    • multi-company access.
  • Verify
    • menu visibility.
    • record rules.
    • access rights.
    • restricted records.
    • portal document access.

Phase 7: Reports & Print Templates

Reports commonly break after migrations due to QWeb changes.

Test Reports

  • Sales Order PDF
    • Invoice PDF
    • Purchase Order PDF
    • Delivery Slip
    • Inventory Reports
    • Payslips
    • Custom QWeb Reports
    • XLSX Reports
  • Validate totals, formatting, company branding, missing fields, page layouts, and translations.

Phase 8: Integrations & External APIs

All integrations must be validated independently.

  • Payment Acquirers: Run a test transaction in sandbox mode
  • Shipping Providers: Generate a test label or rate quote
  • eCommerce / Website: Place a test order end-to-end
  • Accounting Integrations: Sync a transaction and verify mapping
  • Custom REST/RPC APIs: Call each endpoint and verify response structure

Phase 9: Performance Testing

Migration can introduce performance regressions.

  • Load the most-used list views (Sales Orders, Invoices, Stock Moves) and measure load time.
  • Run the most common searches with filters and group-bys
  • Execute a large batch operation (e.g., mass invoice validation) and note the duration
  • Monitor database query times using Odoo's built-in profiler or --log-level=debug

If a view or operation is significantly slower than before, investigate indexes, computed field dependencies, or inefficient domain filters.

Phase 10: User Acceptance Testing (UAT)

Business users should validate daily operational workflows before go-live.

UAT Process:

  1. Identify power users from each department (Sales, Finance, Warehouse, HR)
  2. Provide them with a UAT script covering their key daily tasks
  3. Have them perform tasks in the staging environment
  4. Collect feedback — bugs, UI changes, missing features
  5. Resolve all critical and major issues before going live
  6. Obtain sign-off from department leads

Go-Live Checklist

Before production deployment, confirm:

  • Critical issues resolved
  • Data validation completed
  • Functional workflows tested
  • Custom modules approved
  • Scheduled actions verified
  • Reports validated
  • Integrations tested
  • User access confirmed
  • Performance acceptable
  • UAT completed
  • Final backup created
  • Rollback plan documented

To read more about How to Use Upgrade (Migration) Scripts in Odoo 19, refer to our blog How to Use Upgrade (Migration) Scripts in Odoo 19.


Frequently Asked Questions

Why is post-migration testing necessary in Odoo 19?

Post-migration testing ensures that data, workflows, reports, customizations, and integrations continue functioning correctly after upgrading to Odoo 19.

What should be tested first after migration?

Once the migration to Odoo 19 is complete, there are several important validation processes that need to take place. These include validation of master data, which includes customers, vendors, and product information, to ensure all the information entered is accurate and complete. There is also validation of accounting information, such as journal entries and tax settings. Sales, purchasing, and inventory business processes also need to be completed from start to finish to ensure they function properly without any issues.

How do I validate accounting accuracy after migration?

The verification of accounting integrity post-migration is done through the comparison of financial statements before and after the upgrade. The trial balance, general ledger, and accounts receivable/payable aging statements should be analyzed to check for exact matching of amounts. It is necessary to confirm that there are no missing entries, duplicate entries, or reconciliations still exist. Small mistakes can signal more significant problems, and therefore, this process needs a meticulous approach.

What common issues occur after an Odoo migration?

Some of the common problems that may arise after the Odoo migration process are those that emerge due to differences in versions and the framework itself. Such problems may be caused by custom modules that do not work anymore, missing or wrongly mapped fields, and broken automated workflows. Some users might also experience difficulties related to permissions or interface design problems.

Should testing be performed on a staging environment?

Yes. Testing should always be performed on a staging environment that mirrors production before the final go-live.

If you need any assistance in odoo, we are online, please chat with us.



0
Comments



Leave a comment



Recent Posts

whatsapp_icon
location

Calicut

Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635

location

Kochi

Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.

location

Bangalore

Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message