programmati.ca Open Studio

Gallery / Developer lab

Sprint Test Coverage Tracker

Track sprint test execution, coverage metrics, and report publication status for engineering teams.

Try this workflow

  1. Open Sprint Overview.
  2. Open Report Publication Board.
  3. Open Coverage Trends.

Records stay in this browser. Reset demo data clears the saved records for this app.

The AppSPEC

Use this complete declarative specification in Studio. The runner supplies the site navigation and sandbox; the specification defines the workflow.

View complete AppSPEC (107 lines)
<?xml version="1.0" encoding="UTF-8"?>
<APP ID="composed-b959ffdb89660cc124782782" NAME="Sprint Test Coverage Tracker" THEME="studio-slate" WIDTH="1240px">
  <DATA MODE="local">
    <COLLECTION ID="sprint_plans">[{"end_date":"2023-10-13","id":"sp_001","sprint_name":"Sprint 42","start_date":"2023-10-02","status":"Completed"},{"end_date":"2023-10-27","id":"sp_002","sprint_name":"Sprint 43","start_date":"2023-10-16","status":"Active"},{"end_date":"2023-11-10","id":"sp_003","sprint_name":"Sprint 44","start_date":"2023-10-30","status":"Planned"}]</COLLECTION>
    <COLLECTION ID="test_runs">[{"executed_at":"2023-10-05","exit_code":1,"fail_count":2,"id":"tr_001","pass_count":120,"run_label":"Unit Suite A","sprint_id":"sp_001","suite_name":"Core Logic"},{"executed_at":"2023-10-06","exit_code":0,"fail_count":0,"id":"tr_002","pass_count":85,"run_label":"Unit Suite B","sprint_id":"sp_001","suite_name":"API Layer"},{"executed_at":"2023-10-18","exit_code":1,"fail_count":3,"id":"tr_003","pass_count":45,"run_label":"Integration Suite","sprint_id":"sp_002","suite_name":"Database"},{"executed_at":"2023-10-20","exit_code":0,"fail_count":0,"id":"tr_004","pass_count":12,"run_label":"E2E Smoke","sprint_id":"sp_002","suite_name":"User Flow"},{"executed_at":"2023-10-22","exit_code":1,"fail_count":1,"id":"tr_005","pass_count":125,"run_label":"Unit Suite A","sprint_id":"sp_002","suite_name":"Core Logic"}]</COLLECTION>
    <COLLECTION ID="coverage_metrics">[{"branch_rate":72.1,"code_layer":"Core","id":"cm_001","metric_label":"Sprint 42 Core","recorded_at":"2023-10-10","sprint_id":"sp_001","statement_rate":88.5},{"branch_rate":85.3,"code_layer":"API","id":"cm_002","metric_label":"Sprint 42 API","recorded_at":"2023-10-10","sprint_id":"sp_001","statement_rate":92.0},{"branch_rate":75.8,"code_layer":"Core","id":"cm_003","metric_label":"Sprint 43 Core","recorded_at":"2023-10-25","sprint_id":"sp_002","statement_rate":90.2},{"branch_rate":88.1,"code_layer":"API","id":"cm_004","metric_label":"Sprint 43 API","recorded_at":"2023-10-25","sprint_id":"sp_002","statement_rate":93.5}]</COLLECTION>
    <COLLECTION ID="test_reports">[{"due_date":"2023-10-13","id":"trp_001","report_title":"Unit Test Report S42","report_type":"Unit","sprint_id":"sp_001","status":"Published"},{"due_date":"2023-10-13","id":"trp_002","report_title":"System Validation S42","report_type":"System","sprint_id":"sp_001","status":"Published"},{"due_date":"2023-10-27","id":"trp_003","report_title":"Unit Test Report S43","report_type":"Unit","sprint_id":"sp_002","status":"Draft"},{"due_date":"2023-10-27","id":"trp_004","report_title":"System Validation S43","report_type":"System","sprint_id":"sp_002","status":"In Review"},{"due_date":"2023-11-10","id":"trp_005","report_title":"Unit Test Report S44","report_type":"Unit","sprint_id":"sp_003","status":"Planned"}]</COLLECTION>
  </DATA>
  <STATE ID="v_sprint_list" NAV="Sprint Overview">
    <TEXT TEXT="Sprint Overview" STYLE="h1" />
    <TEXT TEXT="Track sprint test execution, coverage metrics, and report publication status for engineering teams." STYLE="muted" />
    <TEXT TEXT="Fictional demonstration records. Changes stay in this browser; no service or equipment is connected." STYLE="small" />
    <TABLE SRC="sprint_plans" EMPTY="No records match this view." OPEN="v_sprint_detail">
      <COL FIELD="sprint_name" LABEL="Sprint Name" />
      <COL FIELD="start_date" LABEL="Start Date" />
      <COL FIELD="end_date" LABEL="End Date" />
      <COL FIELD="status" LABEL="Status" />
    </TABLE>
    <TEXT TEXT="Cannot parse test output files, connect to CI/CD systems, calculate complex coverage formulas, generate report documents, track file-level coverage, or integrate with version control systems." STYLE="small" />
  </STATE>
  <STATE ID="v_sprint_detail">
    <TEXT TEXT="Sprint Details" STYLE="h1" />
    <TEXT TEXT="Fictional demonstration records. Changes stay in this browser; no service or equipment is connected." STYLE="small" />
    <DETAIL SRC="sprint_plans" TITLE="sprint_name" FIELDS="sprint_name,start_date,end_date,status" EMPTY="Choose a record from its list." />
    <TEXT TEXT="Test Runs" STYLE="h2" />
    <TABLE SRC="test_runs" EMPTY="No records match this view." WHERE="sprint_id={record.id}">
      <COL FIELD="run_label" LABEL="Run Label" />
      <COL FIELD="sprint_id" LABEL="Sprint" />
      <COL FIELD="suite_name" LABEL="Suite Name" />
      <COL FIELD="pass_count" LABEL="Pass Count" />
      <COL FIELD="fail_count" LABEL="Fail Count" />
      <COL FIELD="exit_code" LABEL="Exit Code" />
      <COL FIELD="executed_at" LABEL="Executed At" />
    </TABLE>
    <TEXT TEXT="Coverage Metrics" STYLE="h2" />
    <TABLE SRC="coverage_metrics" EMPTY="No records match this view." WHERE="sprint_id={record.id}">
      <COL FIELD="metric_label" LABEL="Metric Label" />
      <COL FIELD="sprint_id" LABEL="Sprint" />
      <COL FIELD="code_layer" LABEL="Code Layer" />
      <COL FIELD="statement_rate" LABEL="Statement Rate" />
      <COL FIELD="branch_rate" LABEL="Branch Rate" />
      <COL FIELD="recorded_at" LABEL="Recorded At" />
    </TABLE>
    <TEXT TEXT="Test Reports" STYLE="h2" />
    <TABLE SRC="test_reports" EMPTY="No records match this view." WHERE="sprint_id={record.id}">
      <COL FIELD="report_title" LABEL="Report Title" />
      <COL FIELD="sprint_id" LABEL="Sprint" />
      <COL FIELD="report_type" LABEL="Report Type" />
      <COL FIELD="status" LABEL="Status" />
      <COL FIELD="due_date" LABEL="Due Date" />
    </TABLE>
    <BUTTON LABEL="Back to list" ACTION="v_sprint_list" STYLE="secondary" />
    <TEXT TEXT="Cannot parse test output files, connect to CI/CD systems, calculate complex coverage formulas, generate report documents, track file-level coverage, or integrate with version control systems." STYLE="small" />
  </STATE>
  <STATE ID="v_report_board" NAV="Report Publication Board">
    <TEXT TEXT="Report Publication Board" STYLE="h1" />
    <TEXT TEXT="Fictional demonstration records. Changes stay in this browser; no service or equipment is connected." STYLE="small" />
    <BOARD SRC="test_reports" GROUP="status" COLUMNS="Published:Published,Draft:Draft,In Review:In Review,Planned:Planned" TITLE="report_title" OPEN="v_report_editor" />
    <TEXT TEXT="Add a record" STYLE="h2" />
    <FORM SAVE="test_reports" SUBMIT-LABEL="Add record" COLS="2">
      <FIELD NAME="report_title" LABEL="Report Title" TYPE="text" REQUIRED="true" />
      <FIELD NAME="sprint_id" LABEL="Sprint" TYPE="select" REQUIRED="true" OPTIONS="sp_001:Sprint 42,sp_002:Sprint 43,sp_003:Sprint 44" />
      <FIELD NAME="report_type" LABEL="Report Type" TYPE="text" REQUIRED="true" />
      <FIELD NAME="status" LABEL="Status" TYPE="select" REQUIRED="true" OPTIONS="Published,Draft,In Review,Planned" />
      <FIELD NAME="due_date" LABEL="Due Date" TYPE="date" REQUIRED="true" />
    </FORM>
    <TEXT TEXT="Cannot parse test output files, connect to CI/CD systems, calculate complex coverage formulas, generate report documents, track file-level coverage, or integrate with version control systems." STYLE="small" />
  </STATE>
  <STATE ID="v_report_editor">
    <TEXT TEXT="Edit Report" STYLE="h1" />
    <TEXT TEXT="Fictional demonstration records. Changes stay in this browser; no service or equipment is connected." STYLE="small" />
    <FORM UPDATE="test_reports" SUBMIT-LABEL="Save changes" COLS="2" TO="v_report_board">
      <FIELD NAME="report_title" LABEL="Report Title" TYPE="text" REQUIRED="true" />
      <FIELD NAME="sprint_id" LABEL="Sprint" TYPE="select" REQUIRED="true" OPTIONS="sp_001:Sprint 42,sp_002:Sprint 43,sp_003:Sprint 44" />
      <FIELD NAME="report_type" LABEL="Report Type" TYPE="text" REQUIRED="true" />
      <FIELD NAME="status" LABEL="Status" TYPE="select" REQUIRED="true" OPTIONS="Published,Draft,In Review,Planned" />
      <FIELD NAME="due_date" LABEL="Due Date" TYPE="date" REQUIRED="true" />
    </FORM>
    <BUTTON LABEL="Delete record" ACTION="delete_v_report_editor" STYLE="danger" />
    <TEXT TEXT="Cannot parse test output files, connect to CI/CD systems, calculate complex coverage formulas, generate report documents, track file-level coverage, or integrate with version control systems." STYLE="small" />
  </STATE>
  <WIRE LABEL="delete_v_report_editor" DELETE="test_reports" TO="v_report_board" />
  <STATE ID="v_coverage_chart" NAV="Coverage Trends">
    <TEXT TEXT="Coverage Trends" STYLE="h1" />
    <TEXT TEXT="Fictional demonstration records. Changes stay in this browser; no service or equipment is connected." STYLE="small" />
    <CHART SRC="coverage_metrics" TYPE="bar" X="code_layer" Y="statement_rate,branch_rate" TITLE="Coverage Trends" HEIGHT="300px" />
    <TABLE SRC="coverage_metrics" EMPTY="No records match this view.">
      <COL FIELD="metric_label" LABEL="Metric Label" />
      <COL FIELD="sprint_id" LABEL="Sprint" />
      <COL FIELD="code_layer" LABEL="Code Layer" />
      <COL FIELD="statement_rate" LABEL="Statement Rate" />
      <COL FIELD="branch_rate" LABEL="Branch Rate" />
      <COL FIELD="recorded_at" LABEL="Recorded At" />
    </TABLE>
    <TEXT TEXT="Cannot parse test output files, connect to CI/CD systems, calculate complex coverage formulas, generate report documents, track file-level coverage, or integrate with version control systems." STYLE="small" />
  </STATE>
  <STATE ID="v_coverage_compare" NAV="Compare Coverage Metrics">
    <TEXT TEXT="Compare Coverage Metrics" STYLE="h1" />
    <TEXT TEXT="Fictional demonstration records. Changes stay in this browser; no service or equipment is connected." STYLE="small" />
    <RECORD-COMPARE SRC="coverage_metrics" TITLE="metric_label" EMPTY="Choose two records to compare their literal values.">
      <COL FIELD="code_layer" LABEL="Code Layer" />
      <COL FIELD="statement_rate" LABEL="Statement Rate" />
      <COL FIELD="branch_rate" LABEL="Branch Rate" />
    </RECORD-COMPARE>
    <TEXT TEXT="Cannot parse test output files, connect to CI/CD systems, calculate complex coverage formulas, generate report documents, track file-level coverage, or integrate with version control systems." STYLE="small" />
  </STATE>
</APP>