Sageworks · Case study
Selenium Test Automation
Turning manual test cases for Sageworks’ banking software into automated Java and Selenium tests, plus helpers that made the next test easier to write.

- Role
- Software Quality Assurance Intern: test automation in Java and Selenium.
- Company
- Sageworks
Overview
William’s first job: two summers and a spring semester in QA at Sageworks, the Raleigh company behind lending and credit-risk software for banks and credit unions, now part of Abrigo. He converted manual test cases into Selenium WebDriver tests written in Java, repaired tests that had broken, and wrote shared libraries so other people’s automation took less effort.
Problem
Manual test cases need a person clicking through the same screens before every release. Automated UI tests remove that repetition, but only if they are reliable and cheap to write; otherwise they break and get ignored.
Architecture
- Manual test cases → Automated tests: async event, automate
- Automated tests → Shared helpers: request, call
- Shared helpers → Selenium: request, commands
- Selenium → Browser: request, drive
- Browser ↔ Sageworks web app: request, load
- Automated tests → Test results: data read / write, report
- Test results → QA team: async event, failures
- QA team → Manual test cases: async event, new cases
What made it hard
- Translating written manual steps into repeatable automated tests.
- Fixing tests that broke when the application changed.
- Pages that load at their own pace.
- The same setup and locator code copied into every test.
Solution
Each manual case became a Java test that drives a real browser through Selenium WebDriver. Common steps moved into a shared helper library, so a UI change is fixed in one place and a new test is mostly calls to existing helpers. Results show which cases pass and which need a closer look.
Skills used
- Java
- Selenium
- WebDriver
- Automated testing
Impact
- Turned manual test cases into automated tests that run without anyone clicking through.
- Brought broken tests back to passing.
- Left shared libraries that made the next person’s automation easier.
Decisions
- 01Keep page details in shared helpers, not in every test.
- 02Wait for conditions instead of sleeping for a fixed time.
- 03Fix a test that fails for the wrong reason before writing the next one.