Case Study · EdTech / E-learning · Saudi Arabia

Learners' progress was sometimes silently not saving. Nobody could tell until a parent complained.

A Learning Management System built for a Saudi client had a quiet problem: the most important logic in the platform — learner progress, quiz scoring, completion records — was invisible. To verify it manually, a tester had to enroll in a course, work through it lesson by lesson, take the assessments, confirm the score, confirm progress saved, confirm completion triggered. Then do it again for the instructor view. Then admin. Every release. We automated the whole learner and instructor journey in Java, Selenium and RestAssured.

Real project — client anonymized under NDA Java-first stack
Industry
EdTech / E-learning
Region
Saudi Arabia
Engagement
~9 weeks
Stack
Java · Selenium · RestAssured
The Problem

What was actually going wrong.

A Learning Management System for instructors, learners and administrators: course catalog, enrollment, sequential content delivery, quizzes and assessments, progress tracking, completion records, role-based access. The hard part of LMS testing is that the important logic is invisible and sequential. To verify a release manually, a tester has to enroll in a course, work through it, take the assessments, confirm the score calculates correctly, confirm progress saves, confirm completion triggers — then repeat across learner, instructor and admin roles.

It's slow, it's repetitive, and because it's sequential, you can't really shortcut it by hand. So in practice, releases shipped with only a portion of the regression actually verified — and the bugs that slipped through were the worst kind: a learner finishes a module and their progress doesn't save.

Why It Mattered

The business cost of getting it wrong.

For an LMS, the cost of a QA miss is credibility. If a learner's progress doesn't save, or a quiz scores incorrectly, or a completion record doesn't generate, the platform loses the trust of both learners and the institutions paying for it. In an education context — especially in markets where credentials and certificates carry real weight — those errors are taken seriously. A few months of intermittent progress-save bugs can permanently damage a platform's reputation.

What We Did

The work, specifically.

No vague phrases. Every item below is a real piece of the engagement.

The Result

What actually changed.

Slow manual cycle → reliable automated runs
The sequential, role-based manual regression became an automated suite that ran quickly and repeatably on every build
Invisible bugs became visible
Progress not saving, quizzes scoring wrong, completion not triggering — all now explicit automated assertions instead of 'we hope someone notices'
Releases stopped being gated by manual QA
The team could ship without a multi-day manual pass through every course and role
The Stack

Tools we actually used.

No tools listed for show. Each one earned its place in the real engagement.

Java Selenium 4 RestAssured TestNG Maven GitLab CI Allure
Risks Eliminated

What we made harder to ship by accident.

Each of these used to be a way the platform could quietly fail. Now each one has a named, explicit automated test.

Want the same audit for your team?

Send us your stack and one flow you don't fully trust. Within 48 hours we send back a private Loom walking through exactly what we'd automate first, what framework fits your stack, and what we'd skip. Yours to keep — even if you don't hire us.

Get Your Free 48-Hour Audit →
More case studies

Other real projects.