DEV Community

Cover image for Why I Built LoreTest: The Open-Source, Privacy-First Test Management Platform
Tony Clarke 999
Tony Clarke 999

Posted on

Why I Built LoreTest: The Open-Source, Privacy-First Test Management Platform

Tired of per-seat SaaS bills, bloated Jira plugins, and brittle spreadsheets? Discover how a QA veteran with two decades of experience engineered a modern, self-hosted, open-source test management platform using .NET 10, Blazor, PostgreSQL, Playwright, and Prometheus.


1. Introduction: The Crisis in Test Management

Software development tooling has made massive leaps over the last decade. CI/CD pipelines deploy in seconds, container orchestration has become standard, and automated testing frameworks have evolved rapidly.

Yet, when QA engineers and engineering leads look at how manual and exploratory testing is managed, they are usually confronted with a frustrating dilemma:

  1. The Costly SaaS Heavyweights (e.g., TestRail, Testmo, Qase): Expensive per-user, per-month licensing that inflates as your engineering team grows. For large or regulated teams, storing sensitive test scenarios, bug descriptions, and proprietary system behavior in someone else’s multi-tenant cloud is either financially prohibitive or a compliance nightmare.
  2. The Bloated Jira Plugins (e.g., Xray, Zephyr): While convenient for linking to issues, heavy Jira plugins turn Jira projects into sluggish mazes, pollute issue backlogs, and force organizations to purchase expensive Atlassian licenses for every tester, contractor, or business analyst who just needs to record a test run.
  3. The "Spreadsheet Trap" (Google Sheets & Excel): Free and accessible, but completely devoid of execution traceability, audit logging, role-based governance, and real-time execution metrics.

Enter LoreTest.

Built by a QA veteran with over 20 years of real-world testing experience, LoreTest is a modern, collaborative, open-source QA test management platform. It gives engineering teams full data sovereignty, zero per-seat licensing costs, integrated Jira tracking, automatic audit logging, and lightning-fast execution workflows—all in a self-hosted Docker container.

LoreTest Dashboard


2. Head-to-Head: How LoreTest Compares

To understand where LoreTest fits into the testing landscape, let’s compare it across the key metrics that matter to engineering leaders and QA teams:

Feature / Attribute LoreTest TestRail Xray / Zephyr Testmo / Qase Spreadsheets
Pricing & Licensing 100% Free & Open Source (MIT) $37–$50+/user/month Per-Jira-tier ($$$$) $8–$30+/user/month Free / Cloud Office
Deployment Model Self-Hosted (Docker Compose) SaaS / Costly Enterprise On-Prem Cloud Jira / Data Center Primarily SaaS Cloud / Local
Data Sovereignty 100% On-Premise / Private VPC Vendor-hosted cloud Atlassian cloud Vendor-hosted cloud Shared drive
Jira Integration Native REST (Fetch & Create Bugs) Add-on plugin Native (Runs inside Jira) API / Webhooks None
Audit Trails Full EF Core Column-Level Audit Enterprise tier only Jira History Varies by tier Cell history only
UI Performance Blazor InteractiveServer (SignalR) Heavy Web UI Depends on Jira load Modern Vue/React SPA Fast, but fragile
Self-Hosted Compliance Custom Privacy & Terms with in-app Admin Vendor TOS Atlassian TOS Vendor TOS None
Observability Prometheus + Grafana Dashboard Black-box metrics Cloud status page Cloud status page None
Test Automation Reporting Automated Allure + Playwright Traces CLI / Test API JUnit XML / API Native API Manual pastes

3. Core Features: Designed for Real QA Workflows

LoreTest was designed by testers who know the daily friction of test design, suite maintenance, and live run execution.

🗂️ 1. Hierarchical Project & Test Suite Management

Organize your testing by application, release, or microservice. Group tests into logical Test Suites that can be created collaboratively, updated, and bulk-imported or exported via standard CSV files for offline editing.

LoreTest Projects
LoreTest Test Suites

🎥 Quick Video Walkthrough: Project Setup & Jira Linking

See LoreTest in action setting up a test project, linking Jira epics, and organizing suites:


(Or watch directly: LoreTest Project Setup Demo)

📝 2. Rich Test Cases with Granular Step Definitions

Each test case supports detailed preconditions, rich-text WYSIWYG step descriptions (via Quill.js), step numbers, and expected results.

LoreTest Test Cases

⏱️ 3. Step-by-Step Interactive Test Runs

When executing a run, testers need clarity without cognitive overload. LoreTest features a focused execution view where you step through each test case sequentially, marking steps as Pass, Fail, or Blocked, with immediate bug-raising capabilities at the exact point of failure.

LoreTest Test Runs

🎥 Quick Video Walkthrough: Live Test Execution & 1-Click Bug Reporting

Watch a live test execution where a step failure is flagged, an immediate bug report is generated with repro steps, and logged into the defect register:


(Or watch directly: LoreTest Interactive Execution Demo)

🐛 4. Deep Jira Integration & In-App Bug Tracking

LoreTest bridges the gap between dedicated test execution and project tracking:

  • Pull Jira Issue Details: Enter a Jira key (PROJ-123) to auto-populate test case descriptions and link back to your issue tracker.
  • Push Direct Bugs to Jira: Create a bug during a failed test run, and LoreTest will automatically create the ticket in your Jira instance via REST APIs.

LoreTest Bug Management
LoreTest Jira Bug Creation
LoreTest Jira Bug Details

🛡️ 5. Granular Security, 2FA & Immutable Audit Trails

  • Role-Based Access Control (RBAC): Supports Administrator, Editor, and Viewer roles to enforce least privilege.
  • Two-Factor Authentication (2FA): Optional authenticator-app integration for hardened enterprise deployments.
  • Complete Audit Trail: Every entity change—creation, update, status toggle, or deletion—is automatically written to a database audit table with timestamps, user identities, and previous/new values.

LoreTest User Management
LoreTest Audit Trail Report

🌍 6. Dynamic Multi-Language Localization

For distributed global engineering teams, LoreTest includes built-in dynamic language switching and resource localization across all UI components.

LoreTest Translation & Admin Settings
LoreTest Language Settings

📜 7. Built-in Privacy & Terms Management for Internal Hosting

Unlike proprietary SaaS tools that force vendor terms on you, LoreTest recognizes that companies hosting internal instances must adhere to corporate data governance. LoreTest ships with ready-to-use, open-source Privacy Policy and Terms and Conditions templates with highlighted organization placeholders (<mark>[Organization / Company Name]</mark>), fully editable by administrators in the database via /admin/legal.


4. Architecture & Engineering Strategy

Rather than following the fragile trend of piling hundreds of npm dependencies into an oversized client-side SPA, LoreTest embraces a lean, high-performance, robust stack:

  • Frontend & UI Layer: ASP.NET Core 10 Blazor in InteractiveServer mode with Bootstrap 5 and SignalR WebSockets. The DOM is rendered on the server, pushing ultra-compact binary diffs to the browser.
  • Backend & Business Logic: C# 10 Web Application with native dependency injection, built-in REST API endpoints with OpenAPI/Swagger documentation, and JWT token authentication.
  • Persistence & Auditing: PostgreSQL 16 managed through Entity Framework Core with automatic migrations and a custom SaveChangesAsync audit interceptor.
  • Observability: Prometheus metrics scraping and Grafana visualization dashboards powered by docker-stats-exporter.
  • Accessibility: Audited for WCAG 2.2 AA compliance for high-contrast accessibility and keyboard navigation.

5. Walking the Walk: How We Test LoreTest

A testing platform that doesn’t test itself thoroughly is untrustworthy. LoreTest practices extreme dogfooding with a multi-layered testing strategy:

  1. MSTest Unit & Integration Tests: 31 comprehensive automated tests covering database persistence, audit logging, JWT token security, role permissions, and legal policy defaults.
  2. Playwright Automated Browser Testing: Microsoft Playwright running multi-browser end-to-end tests that simulate realistic user flows: logging in, creating projects, editing test suites, and stepping through test executions.
  3. Living BDD Specifications with Reqnroll: Requirements authored in Gherkin syntax (Given / When / Then) using Reqnroll, bridging business intent with test automation.
  4. Allure Reports on GitHub Pages: Every CI/CD pipeline automatically aggregates TRX test results into rich Allure dashboards published to GitHub Pages.
  5. Playwright Trace Viewer: For every test execution, detailed Playwright traces capture DOM snapshots, network payloads, and step timings, viewable directly via trace.playwright.dev.

📊 Explore the Live Test Reports: https://tonyclarke999-wq.github.io/LoreTest/


6. Real-Time Observability: Prometheus & Grafana

Enterprise readiness requires more than just passing tests; you must know how your system behaves under load.

LoreTest includes a turn-key observability stack:

  • docker-stats-exporter: Scrapes CPU percentage, memory saturation, network I/O, and block read/writes directly from Docker daemon sockets.
  • Prometheus: Aggregates time-series metrics over configurable scrape intervals.
  • Grafana: Pre-configured dashboards to visualize application container resource footprints and detect memory leaks or latency spikes before they reach testers.

7. Spin Up LoreTest in 60 Seconds

You don’t need an enterprise sales call or a credit card to get started with LoreTest. You just need Docker:

1. Create docker-compose.yml:

services:
  db:
    image: postgres:16-alpine
    container_name: loretest-db
    environment:
      POSTGRES_DB: loretest
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: YourSecurePassword
    volumes:
      - loretest-db-data:/var/lib/postgresql/data

  app:
    image: ghcr.io/tonyclarke999-wq/loretest:main
    container_name: loretest-app
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ConnectionStrings__DefaultConnection=Host=db;Port=5432;Database=loretest;Username=postgres;Password=YourSecurePassword
    ports:
      - "5000:8080"
    depends_on:
      - db

volumes:
  loretest-db-data:
Enter fullscreen mode Exit fullscreen mode

2. Launch:

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

Open http://localhost:5000 in your browser and you're ready to test!


8. Conclusion: Take Back Control of Your Testing Stack

Testing shouldn’t be gated behind exorbitant monthly SaaS subscriptions or locked inside bloated project management suites.

With LoreTest, you get:

  • 🚀 Zero per-user license fees (forever open source)
  • 🔒 100% data privacy and self-hosted control
  • ⚡ Blazing-fast, modern Blazor execution interface
  • 🔗 Frictionless Jira synchronization
  • 📊 Enterprise-grade audit logging & Prometheus/Grafana monitoring

Get Involved & Contribute:


💬 **Join the Conversation on LinkedIn: Read the companion article and join the professional discussion on LinkedIn.

Top comments (0)