Release Quality Gates 1067 - sebiboga/testlink-upgraded GitHub Wiki
Release Quality Gates / Go-No-Go Dashboard (Issue #1067)
Overview
The Release Quality Gates screen provides a consolidated readiness view for a single test plan. It evaluates a set of configurable threshold gates and returns a release verdict: GO / CONDITIONAL GO / NO-GO together with a 0–100 readiness score.
Scope of Evaluation
- Execution progress: executed / assigned (test-case version assignments on the selected platform/scope)
- Pass rate: passed / executed
- Failed cases: count of failed assignments
- Blocked cases: count of blocked assignments
- Unaddressed failures: failed assignments that have no linked bug evidence (
execution_bugs) in the filtered executions - Requirement coverage: covered requirements / total requirements (N/A when requirements are disabled for the project)
The "latest result" is the MAX(executions.id) per (tcversion_id, platform_id) on the selected build/platform filter.
UI Features
- Scope & thresholds panel: Build selector, Platform selector, and numeric thresholds (min progress %, min pass rate %, max failed, max blocked, max unaddressed, min req. coverage %)
- Verdict banner: colored badge with decision and readiness score; gate pass/fail/na counts shown
- Metric tiles: Assigned, Executed, Passed, Failed, Blocked, Not run, Unaddressed failures, Progress, Pass rate
- Report context: Test project, Test plan, Scope, Requirements status
- Gates table: Gate, Value, Target, Status, Blocking (critical gates marked with ◆)
- Requirement coverage panel: total/covered/partial/uncovered and percentage
- Actions: Evaluate, Refresh, Export CSV, Close
API
- BFF:
/api/qualitygate/index.php?action=init&tplan_id=N[&tproject_id=P][&build_id=B][&platform_id=PL][&progress_min=...][&pass_rate_min=...][&max_failed=...][&max_blocked=...][&max_unaddressed=...][&req_coverage_min=...] - Security: session auth +
bffSameOriginGuard+bffEnforceSession; requirestestplan_metricson the owning project; all IDs are positive integers.
Screenshots

Verification
Verified on tmp/fixtures_1067.php (project QG1067 / plan QG Release; platforms Android/iOS; 1 open build; 7 assignments = 3 pass / 2 fail, one addressed through BUG-1067, 1 blocked, 1 not run; 3 requirements, 1 covered):
- Default thresholds → NO-GO, score 29 (progress 85.7%, pass rate 50%, 1 unaddressed failure, coverage 33.3%).
- Platform = iOS → CONDITIONAL GO, score 83 (1 assigned / 1 executed / 1 passed).
- Relaxed thresholds → GO, score 100.
- Empty plan → NO-GO, score 50 (total 0).
- Guard matrix: 400
invalid_request, 404tplan_not_found, 404project_mismatch, 401not_authenticated, 403no_right, 405method_not_allowed. - Export CSV: UTF-8 BOM,
;-separated, localized headers, 6 gate rows + verdict/score line. - Event Viewer clean (no Error/Warning attributed to this screen/BFF).
Refs
- Issue #1067