Spry LogoOpsfolio
Get started

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:

  1. Deno – runtime required by Spry
  2. Homebrew (brew) – package manager for installing dependencies
  3. Spry – runbook and SQLPage orchestration engine
  4. Surveilr – ingestion and transformation engine
  5. Run Spry – Visual Studio Code Extension/ Cursor IDE Extension which simplifies editing Evidence Block values
  6. qualityfolio-json-etl.sql – SQL-based ETL script for Qualityfolio data
  7. qualityfolio.md – Markdown file containing database configuration and SQLPage queries
  8. 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/workspaces

1. Install Deno

Install Deno using the following command:

curl -fsSL https://deno.com/install.sh | sh

Verify your Deno installation:

deno --version

Upgrade Deno to the latest version:

deno upgrade

2. 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 --version

3. Install Spry

If you are a first-time Spry user:

brew install programmablemd/packages/spry

Upgrade Spry, if Spry is already installed:

brew uninstall spry
brew untap programmablemd/packages
brew install programmablemd/packages/spry

Verify your Spry installation:

spry --version

For 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 surveilr

If 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.gz

Extract the archive:

tar -xzf surveilr_3.23.0_x86_64-unknown-linux-gnu.tar.gz

Move 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.0

For 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/workspaces

1. Install Deno

Install Deno using the following command:

curl -fsSL https://deno.com/install.sh | sh

Verify your Deno installation:

deno --version

Upgrade Deno to the latest version:

deno upgrade

2. 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.sh

Verify Homebrew installation:

brew --version

3. Install Spry

If you are a first-time Spry user:

brew install programmablemd/packages/spry

Upgrade Spry, if Spry is already installed:

brew uninstall spry
brew untap programmablemd/packages
brew install programmablemd/packages/spry

Verify your Spry installation:

spry --version

For 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 surveilr

If an existing version is found, remove it:

sudo rm -rf <surveilr_path_with_file_name>

Install Surveilr:

brew tap surveilr/tap && brew install surveilr

Verify Surveilr installation and ensure the version is v3.10.0 or higher:

surveilr --version
sudo surveilr upgrade -v 3.23.0

For 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+X or Cmd+Shift+X).
  • Click on the ellipsis (...) in the top-right corner and select Install from VSIX....
  • Browse and select the .vsix file 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 .vsix file 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 generated

Key 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.md

What This Does

  • Parses test artifacts under test-artifacts/
  • Ingests execution evidence under evidence/
  • Applies the ETL logic defined in qualityfolio.md and qualityfolio-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 --watch

These commands result in:

  • Rebuilds the database from artifacts and evidence
  • Generates sqlpage.json in the sqlpage folder and configures SQLPage using sqlpage.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:

sqlpage

Access 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.md

Running 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.db for 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

On this page