Cerințe și Trasabilitate - sebiboga/testlink-upgraded GitHub Wiki

Cerințe și Trasabilitate 📋

Ce este o Cerință (Requirement)?

O Cerință este o descriere a ceva ce trebuie implementat și testat:

Cerință: REQ-101
Titlu: Utilizatorii trebuie să se poată loga cu email și parolă
Status: Approved
Prioritate: Critical
Cover Age: 85% (7/8 test cases)

Relația: Cerință → Test Cases

TestLink urmărește cărui test case acoperă care cerință:

Cerință: REQ-050 (Login functionality)
├─ Test Case: TC-001 (Login valid email)
├─ Test Case: TC-002 (Login invalid email)
├─ Test Case: TC-003 (Login blank email)
├─ Test Case: TC-004 (Password reset)
├─ Test Case: TC-005 (Logout)
├─ Test Case: TC-006 (Session timeout)
├─ Test Case: TC-007 (Remember me)
└─ Test Case: TC-008 (2FA)

Coverage: 8/8 test cases → 100% acoperit

Aceasta se numește Trasabilitate - putem urmări ce cerințe sunt testate și cât de bine.

Adăugare Cerințe

Cine poate: Administrator, Manager

Pași:

  1. Mergi la Proiect → Cerințe → Adaugă Cerință Nouă
  2. Completează:
Camp Descriere
Titlu Descriere scurtă
ID Cerință Unic (ex: REQ-001)
Descriere Detalii ample
Prioritate Critical/High/Medium/Low
Status Draft/Approved/Rejected
Versiune 1 (implicit)
  1. Apasă Salvează

Exemplu Cerință:

ID: REQ-201
Titlu: Transferuri de bani între conturi
Descriere: 
Sistemul trebuie să permită utilizatorilor să transfere bani
dintr-un cont în altul, cu validare destinație și confirmă
prin SMS OTP.

Prioritate: Critical
Status: Approved
Versiune: 1

Linkare Test Case cu Cerință

Din Test Case:

  1. Deschide Test Case
  2. Mergi la Linkuri → Adaugă Cerință
  3. Selectează cerință din lista
  4. Apasă Salvează

Efectul:

Test Case: TC-101
├─ Linkuri:
│  ├─ Cerință: REQ-201 (Transferuri bani)
│  └─ Cerință: REQ-202 (Validare Destinație)
└─ Coverage: Acoperă 2 cerințe

Din Cerință:

  1. Deschide Cerință
  2. Mergi la Test Cases
  3. Apasă Adaugă Test Case
  4. Selectează din lista sau creează nou
  5. Apasă Salvează

Matrice Trasabilitate

Poți vedea matricea completa: Care test case acoperă care cerință.

Acces:

  1. Rapoarte → Matrice Trasabilitate
  2. Sau Cerință → Tabel Coverage

Exemplu Matrice:

Cerință | TC-001 | TC-002 | TC-003 | Coverage
---------|--------|--------|--------|----------
REQ-001  |   ✅   |   ✅   |   ✅   | 100%
REQ-002  |   ✅   |   ❌   |   ✅   | 66%
REQ-003  |   ❌   |   ❌   |   ❌   | 0% ⚠️
REQ-004  |   ✅   |   ✅   |   ❌   | 66%

Coverage Rapoarte

TestLink calculează automat:

Project Coverage Summary

Total Cerințe: 50
Acoperite complet (100%): 40
Parțial acoperite (50-99%): 8
Neacoperite (< 50%): 2

Coverage Proiect: 92%

Interpretare:

Coverage Semnificație Risc
100% Toate cerințele au test cases ✅ Low
80-99% Aproape toate acoperite 🟡 Medium
50-79% Gapuri semnificative 🟠 High
< 50% Coverage insuficient 🔴 Critical

Untested Requirements

Raportul de Cerințe Netestare:

Cerințe fără test cases:

1. REQ-045: Backup Automata
   Prioritate: High
   Action: Trebuie create test cases urgent

2. REQ-067: Dark Mode
   Prioritate: Low
   Action: Nice to have, lower priority

Acces:

  1. Rapoarte → Untested Requirements
  2. Vezi ce cerințe nu au test cases
  3. Prioritizează care trebuie testate

Status Cerințe

Status Semnificație
Draft Cerință temporară, neaprobată
Approved Cerință validă, trebuie implementată
Rejected Cerință refuzată, nu va fi făcută
Implemented Deja codificat, aștapta test
Tested Testare completă, gata lansat

Schimbă Status:

  1. Cerință → Editează
  2. Status dropdown
  3. Salvează

Versionare Cerințe

Cerințele se pot versiona:

REQ-001 (Login Functionality)
├─ v1 (Initial)
├─ v2 (Added 2FA requirement)
├─ v3 (Added biometric login)
└─ v4 (Current - OAuth added)

Fiecare versiune poate fi legată de alte test cases.

Coverage per Build

Poți vedea coverage pentru fiecare build:

Build v1.0:
- Coverage: 85%
- Untested: 7 cerințe

Build v1.1:
- Coverage: 92%
- Untested: 3 cerințe

Build v2.0:
- Coverage: 98%
- Untested: 1 cerință

Rapoarte Trasabilitate

1. Coverage by Requirement

REQ-001: 100% (5/5 tests pass)
REQ-002: 60% (3/5 tests pass, 2 fail)
REQ-003: 0% (0 tests)

2. Gaps in Coverage

Cerințe fără test cases: 3
Cerințe cu test cases failed: 8
Cerințe implementate dar netestare: 2

3. Requirements vs Build

Build v1.5:
- Implemented: 48
- Tested: 45
- Untested: 3

Linkare cu Bug Reports

Cerințele se pot linka și cu bug reports:

REQ-050: Transfer Bani
├─ Test Cases: 8
├─ Bugs Found:
│  ├─ BUG-2024-015 (Transfer amount validation)
│  └─ BUG-2024-016 (Destination account check)
└─ Status: BLOCKED (waiting bug fixes)

Best Practices

✅ DO:

  • Creează cerințe ÎNAINTE de test cases
  • Linkează fiecare test case cu cerință
  • Review coverage pre-launch
  • Documentează de ce sunt untested requirements
  • Track coverage metrics
  • Archive cerințe vechi

❌ DON'T:

  • Nu crea test case fără cerință linkată
  • Nu lansa cu coverage < 80%
  • Nu uita untested requirements
  • Nu modifica cerințe fără aprobă
  • Nu ștergi cerințe (archivează)

Workflow Trasabilitate Tipic

ETAPA 1: Definire Cerințe
- Product Manager creează cerințe
- Stakeholder-ii aprobă
- Status: APPROVED

ETAPA 2: Creare Test Cases
- QA Lead creează test cases
- Linkează cu cerințe
- Review coverage
- Status: READY

ETAPA 3: Execuție Teste
- Testatori execută
- Raportează pass/fail
- Status: TESTED

ETAPA 4: Pre-Launch Review
- Coverage report: 95%
- Untested: 1 cerință (Low priority)
- Approved pentru launch

Gata cu Cerințe? Merge la Integrări Externe! 🔗