HomeLogo
English

Selenium test framework rebuilt as a standalone tool

Dec 2022 - Sep 2023 · Delivered · 3 separate engagements with the same client

Developer, framework rewrite, web interface and packaging

A Java and Excel driven Selenium framework rebuilt in Python as a browser-configured standalone executable that QA staff can run without installing an IDE.

  • Python
  • Selenium
  • Test Automation

Overview

A client had a keyword-driven and data-driven Selenium framework in Java, configured through an Excel control sheet and needing a full IDE on every machine that ran tests. That made it unusable for their QA staff, so I rebuilt it.

The problem

The framework worked, but running it required Eclipse or another IDE installed on the machine. That meant their QA staff could not use it, and a test framework only developers can run is not doing its job.

What I built

The Excel control sheet became a web interface where test cases are defined, ordered and parameterised in a browser. The framework itself was rewritten in Python and packaged as a standalone executable that runs browser tests on any Windows machine with no IDE, no Python installation and no setup. Reports were rewritten for people who do not read stack traces.

Complexities tackled

Keeping the keyword layer extensible through a rewrite. The entire point of a keyword-driven framework is that new test actions get added without touching the engine. That property is easy to lose when you port across languages and very hard to retrofit afterwards, so the action registry stayed open while everything around it changed.

Data-driven runs. One test definition has to iterate cleanly across many input sets without the definition being duplicated per input, which is what people usually end up doing when the abstraction is not right.

Bundling browser drivers. The most common way a portable test tool breaks on someone else’s machine is a browser and driver version mismatch. Shipping drivers inside the executable removes an entire class of support problems that would otherwise land on the client’s QA team.

Reports for the audience that reads them. A stack trace tells a developer what happened. It tells a QA lead nothing actionable. The reporting was rebuilt around which test failed, at which step, with what data.

Outcome

The original scope was delivered as agreed. Everything after it was additional work the client chose to order over the following year, which matters more to me than the first delivery: the tool was in real use and they kept extending it.

Stack

Python, Selenium, standalone executable packaging, web-based test configuration.

Client feedback

Verbatim from the public review left on the completed contract. Clients are not named because the contract record does not carry names.

Usman will be a great addition to any team, sincere and skillful in his field.
5.0 / 5.0 · Upwork ·
Usman will be a great addition to any team, sincere and skillful in his field.
5.0 / 5.0 · Upwork ·
Usman will be a good addition to any team
5.0 / 5.0 · Upwork ·

Working on something similar?

Tell me what you are building and what is in the way. I will tell you honestly whether I am the right person for it.

Start a conversation

Last updated: