Qualityfolio Operational Truth™ Quick Start Guide
Qualityfolio is a downloadable software package that must be installed on a local workstation or server environment. The software is not web-based and requires local installation to operate.To install Qualityfolio, users must first set up the required software dependencies and then download and install the primary Qualityfolio application package by following the provided installation instructions.
This guide outlines the step-by-step setup of Qualityfolio, which delivers Operational Truth™ through Test-Management-as-Code (TMaC) system powered by Spry’s Axiom-based execution pattern and Surveilr’s ingestion, transformation, and ETL pipeline.
Welcome to Qualityfolio - a Markdown-native Test Management system backed by Spry’s ontology engine and Surveilr’s data ingestion pipeline. Qualityfolio follows a Test Management as Code (TMaC) approach, where test artifacts, execution evidence, and dashboards are all derived from structured files under version control.
Objectives
Qualityfolio is designed to:
- Generate an SQLite database from test artifacts and execution evidence files.
- Generate a Test Management Dashboard for test metrics, traceability, and execution insights.
- HTML UI Generation (Live Preview) with real-time ontology parsing, live reload, and structural validation.
Prerequisites
Ensure the following tools and files are available on your system before proceeding:
- Deno – runtime required by Spry
- Homebrew (brew) – package manager for installing dependencies
- Spry – runbook and SQLPage orchestration engine
- Surveilr – ingestion and transformation engine
- Run Spry – Visual Studio Code Extension/ Cursor IDE Extension which simplifies editing Evidence Block values
- qualityfolio-json-etl.sql – SQL-based ETL script for Qualityfolio data
- qualityfolio.md – Markdown file containing database configuration and SQLPage queries
- sqlpage.json – SQLPage runtime configuration file (under
./sqlpage/)
Installation
To work with Spry and the Surveilr-based Qualityfolio framework, you need to install Deno, Homebrew, Spry, and Surveilr, and ensure the required Qualityfolio files are available in your workspace.
Installation Steps on Kali-Linux
Open your terminal and switch to your workspace directory:
cd $HOME/workspaces1. Install Deno
Install Deno using the following command:
curl -fsSL https://deno.com/install.sh | shVerify your Deno installation:
deno --versionUpgrade Deno to the latest version:
deno upgrade2. Install Homebrew (if not already installed)
Homebrew is required to install Spry.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Verify Homebrew installation:
brew --version3. Install Spry
If you are a first-time Spry user:
brew install programmablemd/packages/spryUpgrade Spry, if Spry is already installed:
brew uninstall spry
brew untap programmablemd/packages
brew install programmablemd/packages/spryVerify your Spry installation:
spry --versionFor more details on Spry installation and usage, refer to the official Spry documentation.
4. Install Surveilr
Check if Surveilr already exists on your system:
which surveilrIf an existing version is found, remove it:
sudo rm -rf <surveilr_path_with_file_name>Download Surveilr version 3.10.0 or higher (the following example uses version 3.23.0):
wget https://github.com/surveilr/packages/releases/download/3.23.0/surveilr_3.23.0_x86_64-unknown-linux-gnu.tar.gzExtract the archive:
tar -xzf surveilr_3.23.0_x86_64-unknown-linux-gnu.tar.gzMove Surveilr to /usr/local/bin/:
sudo mv surveilr /usr/local/bin/Verify Surveilr installation and ensure the version is v3.10.0 or above:
surveilr --version
sudo surveilr upgrade -v 3.23.0For more details on Surveilr installation and usage, refer to the official Surveilr documentation.
Installation Steps on macOS
Open your terminal and switch to your workspace directory:
cd $HOME/workspaces1. Install Deno
Install Deno using the following command:
curl -fsSL https://deno.com/install.sh | shVerify your Deno installation:
deno --versionUpgrade Deno to the latest version:
deno upgrade2. Install Homebrew (if not already installed)
Homebrew is required to install Spry.
curl -fsSL -o install.sh https://raw.githubusercontent.com/Homebrew/install/HEAD/install.shVerify Homebrew installation:
brew --version3. Install Spry
If you are a first-time Spry user:
brew install programmablemd/packages/spryUpgrade Spry, if Spry is already installed:
brew uninstall spry
brew untap programmablemd/packages
brew install programmablemd/packages/spryVerify your Spry installation:
spry --versionFor more details on Spry installation and usage, refer to the official Spry documentation.
4. Install Surveilr
Check if Surveilr already exists on your system:
which surveilrIf an existing version is found, remove it:
sudo rm -rf <surveilr_path_with_file_name>Install Surveilr:
brew tap surveilr/tap && brew install surveilrVerify Surveilr installation and ensure the version is v3.10.0 or higher:
surveilr --version
sudo surveilr upgrade -v 3.23.0For more details on Surveilr installation and usage, refer to the official Surveilr documentation.
Install Run Spry Extension (for Visual Studio Code/ Cursor IDE)
To install Run Spry extension, download and install the pre-packaged extension for Visual Studio Code or Cursor IDE from the links below:
For Visual Studio Code:
2. Install the extension:
- Open Visual Studio Code.
- Go to the Extensions view (press
Ctrl+Shift+XorCmd+Shift+X). - Click on the ellipsis (
...) in the top-right corner and select Install from VSIX.... - Browse and select the
.vsixfile you downloaded. - Complete the Installation process.
For Cursor IDE:
2. Install the extension:
- Open Cursor IDE.
- Go to the Extensions menu and select Install Extension.
- Browse and select the
.vsixfile you downloaded. - Complete the Installation process.
For more details on Run Spry extension usage and updates, refer the documentation.
Folder Structure
Qualityfolio expects the following directory structure:
ASSURANCE-PRIME/
├── support/
│ └── assurance/
│ └── qualityfolio/
│ ├── evidence/
│ │ ├── TC-GLUE-001/
│ │ │ └── 1.1/
│ │ │ ├── result.auto.json
│ │ │ └── run.auto.md
│ │ └── TC-GLUE-002/
│ │ └── 1.1/
│ │ ├── loginButtonClick.png
│ │ ├── result.auto.json
│ │ └── run.auto.md
│ ├── sqlpage/
│ │ └── sqlpage.json # runtime configuration file for SQLPage, auto-generated
│ ├── test-artifacts/
│ │ └── example-artifact.md
│ ├── qualityfolio-json-etl.sql # SQL ETL script for Qualityfolio data
│ ├── qualityfolio.md # SQLPage Markdown page (DB config + queries)
│ └── resource-surveillance.sqlite.db # Database generatedKey Directories and Files
- test-artifacts/ – Authoring location for test cases, plans, suites, and metadata
- evidence/ – Location for test execution evidence (results, runs, attachments)
- qualityfolio.md – Core logic file that defines database creation and SQLPage queries
- qualityfolio-json-etl.sql – ETL script that transforms ingested JSON into relational tables
- sqlpage/sqlpage.json – SQLPage runtime configuration
- resource-surveillance.sqlite.db – Generated SQLite database containing test data
Authoring Tests in Markdown
Qualityfolio tests follow a structured Markdown hierarchy to ensure full traceability and machine-readable execution. Qualityfolio projects can range from simple to highly complex structures. You can explore ready-made examples based on real-world implementations.
An example test artifact file (example-artifact.md) for the project, OWASP - GLUE UP (with Qualityfolio's Small pattern) is available here.
This example demonstrates:
- Header-based classification
- Hierarchical test design
- Evidence block patterns
Generate SQLite Database from Test Artifacts
To generate a queryable SQLite database from your test artifacts and execution evidence, run the following command from the qualityfolio directory:
spry rb run qualityfolio.mdWhat This Does
- Parses test artifacts under
test-artifacts/ - Ingests execution evidence under
evidence/ - Applies the ETL logic defined in
qualityfolio.mdandqualityfolio-json-etl.sql - Produces a clean, ready-to-use SQLite database:
resource-surveillance.sqlite.db
You can open this database using any SQLite-compatible SQL editor for ad-hoc analysis or reporting.
Generate Test Management Dashboard
The Test Management Dashboard provides a live, browser-based view of Qualityfolio metrics.
Prepare Test Artifacts
Ensure your test cases and related metadata are authored as Markdown files under: test-artifacts/
Commands for Test Management Dashboard
Execute the following commands in a terminal from the qualityfolio directory:
spry rb run qualityfolio.md
spry sp spc --fs dev-src.auto --destroy-first --conf sqlpage/sqlpage.json --md qualityfolio.md
spry sp spc --fs dev-src.auto --destroy-first --conf sqlpage/sqlpage.json --md qualityfolio.md --watchThese commands result in:
- Rebuilds the database from artifacts and evidence
- Generates
sqlpage.jsonin thesqlpagefolder and configures SQLPage usingsqlpage.json - Loads SQLPage queries defined in
qualityfolio.md - Watches for file changes and auto-refreshes the data
Start SQLPage Server
In a separate terminal, from the qualityfolio directory, start the SQLPage server:
sqlpageAccess the Test Management Dashboard
Open your browser and navigate to: http://localhost:9227/
The dashboard includes:
- Test metrics and summaries
- Requirement Traceability Matrix (RTM)
- Test cycle-wise execution status
- Case-level execution details with linked evidence
HTML UI Generation (Live Preview)
You can launch the server using the following command in a terminal from the qualityfolio directory:
spry axiom web-ui test-artifacts/example-artifact.mdRunning this command loads the parsed test artifact(s) in your browser at: http://127.0.0.1:9876/
- Real-time ontology parsing
- Automatic live reload whenever you save a file
- A structured HTML UI showing headings, roles, metadata, hierarchy, cases, and evidence
- Built-in validation of classification rules and document structure
This feature allows you to visually inspect and validate your Qualityfolio pattern directly from HTML UI.
Next Steps
Once your database and dashboard are running, you can:
- Query
resource-surveillance.sqlite.dbfor custom analytics - Extend SQLPage views by updating
qualityfolio.md - Add new test artifacts and execution evidence
- Integrate Qualityfolio into CI/CD pipelines
How is this guide?
Last updated on