Selenium CRM
Automation Framework
End-to-end regression automation framework for a large-scale CRM application. Mapped every critical user journey — multi-step forms, data entry workflows, business process flows — and automated them with Selenium WebDriver so the entire CRM surface could be validated on every CI push, with no manual test run required.
Manual CRM regression before every release took days — inconsistent, error-prone, and impossible to scale.
At FIS Global, every deployment to the CRM required a full manual regression pass across dozens of user workflows — data entry forms, multi-step business processes, reporting flows, and authentication paths. QA engineers executed these by hand before each release. At financial-services scale, even one missed edge case could produce a data integrity issue or a failed customer interaction.
The manual process was also inconsistent — different engineers ran different subsets depending on what they remembered or had time for. Edge cases outside the standard checklist consistently escaped into production. The goal: build a framework that automated the complete CRM surface, ran on every CI push, and produced a clear pass/fail report without any human involvement.
Page Object Model — workflow logic decoupled from selectors at every layer.
A framework built to last — not just to pass this sprint's tests.
Every CRM screen and user workflow has a corresponding Python class (Page Object) that encapsulates its selectors and interaction logic. Test logic never touches raw selectors — it calls methods on these objects. When the CRM UI changed (and it changed frequently), only the relevant Page Object needed updating; none of the test cases did. This is what kept the framework maintainable and continuously expanded across 18 months of active CRM development without requiring a rewrite.
90%+ coverage generates hundreds of test cases across complex multi-step CRM workflows. Without parallelism, the suite would block CI for 30+ minutes per run, killing deployment velocity. I configured Pytest-xdist with worker counts tuned to the CI environment, bringing end-to-end execution to under 8 minutes. The full regression suite runs on every push to main — developers get a complete pass/fail result before the branch merges.
Test data lives in external fixture files, not hardcoded in test functions. This kept the framework portable: the same test suite runs against staging and production environments by swapping the config, not rewriting tests. It also let the QA team expand coverage by adding fixture entries without writing Python — lowering the barrier for non-developers to contribute new test scenarios as new CRM features shipped.