Execuția Testelor - sebiboga/testlink-upgraded GitHub Wiki

Execuția Testelor ▶️

Ce înseamnă Execuție Test?

Execuția testului este procesul prin care:

  1. Iei un test case din plan
  2. Îl execuți efectiv (manual sau automat)
  3. Înregistrezi rezultatul
  4. Raportezi eventuale defecte

Flow Execuție

Plan de Test
    ↓
Selectează Test Case (atribuit ție)
    ↓
Citește pași și precondițiuni
    ↓
Execută pași 1, 2, 3...
    ↓
Compară rezultat real vs așteptat
    ↓
Markează: PASS / FAIL / BLOCKED
    ↓
Adaugă note și evidență (dacă FAIL)
    ↓
Raportează bug (dacă FAIL)

⚠️ Build - MANDATORY pentru Test Execution!

IMPORTANT: Fiecare test execution este OBLIGATORIU executat împotriva unui Build specific!

Test Plan LINKED TO Build
    ↓
Selectezi Plan → Auto-selectează Build asociat
    ↓
Execuți test → Împotriva Build-ului planului
    ↓
Rezultat SALVAT → "TC-001 PASS on v1.5.0 RC1"

De ce Build e Mandatory?

Exemplu: TC-001 (Login)

Pe v1.4.0: PASS ✅ (old version)
Pe v1.5.0 RC1: FAIL ❌ (bug introduced)
Pe v1.5.0 RC2: PASS ✅ (bug fixed)

Fără Build reference = imposibil să știi ce a fost testat!

🖥️ Platform - MANDATORY pentru Test Execution!

CRITICAL: Fiecare test se execută pe o PLATFORM SPECIFICĂ!

Test Plan Platforms:
├─ Windows 10 + Chrome 120
├─ macOS 13 + Safari 17
├─ iOS 17 + Safari
└─ Android 13 + Chrome

Fiecare Test Case se execută pe TOATE platformele!

TC-001 (Login):
├─ Windows: PASS ✅
├─ macOS: PASS ✅
├─ iOS: PASS ✅
└─ Android: FAIL ❌ (autofill bug)

Rezultate DIFERITE per platform!

De ce Platform e Important?

Exemplu Real:

Test: TC-050 (Transfer Money)

Pe Desktop (Windows + Chrome):
├─ Result: PASS ✅
├─ Performance: 5 seconds
└─ All buttons visible

Pe Mobile (iOS + Safari):
├─ Result: FAIL ❌
├─ Issue: "Keyboard covers input field"
├─ Performance: 8 seconds
└─ Button layout: Broken

Same test = DIFFERENT results!

Platform-Specific Issues

Platform Matrix:

Test Case | Windows | macOS | iOS | Android
-----------|---------|-------|-----|--------
TC-001    | PASS    | PASS  | FAIL| PASS
TC-002    | PASS    | FAIL  | PASS| PASS
TC-050    | PASS    | PASS  | FAIL| FAIL
TC-100    | FAIL    | PASS  | PASS| PASS

Each platform can have different issues!

Accesare Teste pentru Execuție

Metoda 1: Din Plan (Recomandată)

  1. Login ca Tester
  2. Mergi la Planuri de Test
  3. Selectează planul ție atribuit
    • ✅ Plan auto-selectează Build (v1.5.0 RC1)
    • ✅ Plan liste CARE platforme (Windows, macOS, iOS)
  4. SELECTEAZĂ PLATFORM pe care testezi:
    Platforms în Plan:
    [ ] Windows 10 + Chrome
    [ ] macOS 13 + Safari
    [✓] iOS 17 + Safari  ← YOU SELECTED THIS
    [ ] Android 13 + Chrome
    
  5. Vezi lista test cases-urilor pentru ACEA platform
  6. Apasă pe test pentru a executa

Important: Platform determines WHERE test runs!

Metoda 2: Din Dashboard

  1. Login
  2. Dashboard arată:
    • Teste atribuite ție
    • Plan asociat (cu Build + Platforms)
    • Deadline-uri
    • Teste pendente
  3. Click pe test
    • Te cere: "Pe care platform testezi?"
  4. Select platform → Execute test

Metoda 3: Directă (Advanced)

  1. Mergi la Test Execution
  2. TREBUIE selectezi:
    • Plan (auto-selectează Build)
    • Platform (MANDATORY!)
    • Status (Not Run, etc)
  3. Alege test din lista
    • ⚠️ Test va rula pe ACEA platform!

Metoda 2: Din Dashboard

  1. Login
  2. Dashboard arată:
    • Teste atribuite ție
    • Plan asociat (cu Build info)
    • Deadline-uri
    • Teste pendente
  3. Click pe test pentru a executa
    • ✅ Build e setat din plan

Metoda 3: Directă (Advanced)

  1. Mergi la Test Execution
  2. TREBUIE selectezi:
    • Plan (auto-selectează Build)
    • Platform
    • Status (Not Run, etc)
  3. Alege test din lista
    • ⚠️ Build e inherited de la Plan!

📦 Utilizare Inventory Data la Execuție

IMPORTANT: TestLink Inventory conține test data pe care o folosești la execuție!

Ce Este Inventory?

Inventory = Test Data Repository

Conține:
├─ Test Accounts ([email protected] / pass123)
├─ API Credentials (API keys, endpoints)
├─ Test Data Sets (customers, products)
├─ Test Files (PDFs, CSVs, images)
└─ Outras test data (URLs, phone numbers, etc)

Cum Accesezi Inventory?

Înainte de a executa test:

  1. Plan → View Inventory
  2. Selectează ce data trebuie
  3. Copy credentials/data
  4. Folosești în test case (ca input)

Exemplu Real:

Test Case: TC-050 (Transfer Bani)

Precondițiuni:
- "User must be logged in"

Step 1: Login
├─ Deschide login page
├─ Username: [From Inventory]
│  └─ [email protected]
├─ Password: [From Inventory]
│  └─ SecurePass123!
└─ Click Login

Step 2: Go to Transfer
├─ Click Transfers menu
└─ Enter amount

Step 3: Enter Destination
├─ Destination Account: [From Inventory]
│  └─ [email protected]
└─ Click Continue

Step 4: Confirm
├─ Review transfer details
└─ Click Confirm

Expected Result:
├─ Transfer successful
├─ Money transferred
└─ Confirmation email sent

Inventory Workflow:

Inventory Define (Before Testing):
├─ TestUser_001: [email protected] / pass123
├─ TestUser_002: [email protected] / pass456
└─ TestAccount: $5,000 balance

Test Execution (During Testing):
├─ Step 1: Login with TestUser_001
├─ Step 2: Transfer to TestUser_002
└─ Step 3: Verify both accounts updated

Inventory Cleanup (After Testing):
├─ Reset TestUser_001 balance: $5,000
├─ Reset TestUser_002 balance: $5,000
└─ Prepare for next test run

Best Practice: Link Test Case to Inventory

Documentează care inventory data e folosit:

Test Case: TC-050

Inventory Items Used:
├─ SourceAccount: BankingApp_TestUser_001
├─ DestinationAccount: BankingApp_TestUser_002
└─ TransferAmount: $100

This ensures:
✅ Consistent test data
✅ Traceable execution
✅ Easy to refresh

Executarea Unui Test

Pasul 1: Deschide Test Case

Test Case: TC-001
Titlu: Login cu email și parolă valide
Prioritate: Alta
Timp Estimat: 5 min

Precondițiuni:
- Utilizatorul are email valid
- Utilizatorul are parolă corectă

Pasul 2: Citește și Execută Pași

Pas 1: Deschide https://banking.app/login
Rezultat Așteptat: Se încarcă pagina de login în < 3 sec

[Tu]: Deschid URL în browser
[Rezultat]: Pagina se încarcă în 2 sec ✓ OK
Pas 2: Introdu email: [email protected]
Rezultat Așteptat: Email se introdu fără erori

[Tu]: Tip email în câmpul "Email"
[Rezultat]: Se introdu corect ✓ OK
Pas 3: Introdu parolă: SecurePass123
Rezultat Așteptat: Parolă se introdu (ascunsă cu *)

[Tu]: Tip parolă
[Rezultat]: Se afișează * în loc de caractere ✓ OK
Pas 4: Click buton "Login"
Rezultat Așteptat: Se redirecționează la Dashboard

[Tu]: Click buton Login
[Rezultat]: Se redirecționează la Dashboard ✓ OK

Pasul 3: Decide Status

După executarea tuturor pașilor, alege:

Status Caz de Utilizare
PASS ✅ Toți pași s-au executat cum se așteptau
FAIL ❌ Cel puțin un pas nu s-a comportat corect
BLOCKED 🟣 Nu poți executa (dependență, mediu down)
NOT RUN ⚪ Ai omis testul deliberat

Pasul 4: Completează Notes (Opțional)

Adaugă note cu observații:

Notes: 
- Login a durat 2 secunde (normal)
- Interfață responsivă
- Nicio eroare în console
- Cookies salvate corect
- Gata de production

Pasul 5: Upload Evidență (Pentru FAIL)

Dacă testul FAIL, atașează dovezi:

  • 📸 Screenshot-uri
  • 🎥 Recordare video
  • 🔗 Network logs
  • 📝 Error messages
  • 📊 Performance data

Exemplu:

Pas 3: Introdu parolă
Rezultat Așteptat: Parolă se ascunde cu *

REZULTAT REAL: Parolă se afișează în text clar ❌

Evidență:
- Screenshot: password_visible.png
- Error message: "Encryption failed"
- Severity: CRITICAL

Raportare Defecte (Bugs)

Când gasești o problemă, creezi un Bug Report.

Creare Bug Report:

  1. Execuție Test → Status: FAIL
  2. Apasă Creare Bug Report
  3. Completează:
Camp Descriere
Titlu Descriere scurtă a problemei
Descriere Details ample
Severity Critical/High/Medium/Low
Pas Failed Num pas unde s-a întâmplat
Rezultat Real Ce s-a întâmplat de fapt
Rezultat Așteptat Ce trebuia să se întâmple
Steps Reproduce Pași exacți pentru a reproduce
  1. Apasă Raportează Bug

Exemplu Bug Report:

Titlu: Password se afișează în text clar în login form

Descriere:
Când introduc parolă în formularul de login, textul 
se afișează în clar în loc de a fi ascuns cu asteriscuri (*).
Aceasta este o problemă de securitate majoră.

Severity: CRITICAL
Platform: Windows 10, Chrome 119

Pas Failed: 3

Rezultat Așteptat:
- Parolă să fie ascunsă cu *
- Niciun caracter vizibil

Rezultat Real:
- Toți caracterele parolei sunt vizibili în clar
- Oricine care vede ecranul poate citi parola

Steps Reproduce:
1. Mergi la https://banking.app/login
2. Click pe câmpul Password
3. Tipă o parolă (ex: "Test123!")
4. Observă că parolă e vizibilă în clar

Linkare Test cu Bug Report

Când raportezi bug din test:

Test Execution: TC-001 (Login valid)
    ↓
Status: FAIL
    ↓
Bug Created: BUG-2024-001 (Password visible)
    ↓
Linkuri: Test ← → Bug
    ↓
Status Update:
- Test: FAIL (linkate bug)
- Bug: IN INVESTIGATION

Dezvoltatorii fixează bug-ul și testul se poate re-executa.

Re-execuție Teste (Retry)

După ce bug-ul e fixat, poți re-executa testul.

Pași:

  1. Execuție Test → Status: BLOCKED/FAIL
  2. Apasă Re-execută Test
  3. Execută din nou cu build nou
  4. Markează rezultat final
Test Execution History:
├─ Run 1: FAIL (2024-02-05) - BUG-001
├─ Run 2: FAIL (2024-02-08) - same issue
├─ Run 3: FAIL (2024-02-10) - developer fixing
└─ Run 4: PASS ✅ (2024-02-12) - bug fixed!

Blocked Tests (Teste Blocate)

Când nu poți executa test din cauze externe:

Test: TC-050 - Payment Processing
Status: BLOCKED

Motiv: Serviciu payment gateway offline
Dependency: PG service must be UP

Alternate: Re-executa mâine după fix

Cauze Frecvente de Blocked:

  • Serviciu extern down
  • Base de date indisponibilă
  • Build incomplet
  • Dependență pe alt test
  • Mediu de test inaccessibil

Rezultate Salvate per Build × Platform

Fiecare rezultat test e salvat cu Build + Platform info:

TC-001 (Login) - Full Execution Matrix:

Build v1.5.0 RC1:

Platform: Windows 10 + Chrome
├─ Date: 2024-02-10
├─ Result: PASS ✅
├─ Duration: 5 min
└─ Tester: Maria

Platform: macOS 13 + Safari
├─ Date: 2024-02-10
├─ Result: PASS ✅
├─ Duration: 5 min
└─ Tester: Ion

Platform: iOS 17 + Safari
├─ Date: 2024-02-10
├─ Result: FAIL ❌ (autofill bug)
├─ Duration: 3 min
├─ Bug: BUG-2024-0050
└─ Tester: Alexandra

Platform: Android 13 + Chrome
├─ Date: 2024-02-10
├─ Result: PASS ✅
├─ Duration: 5 min
└─ Tester: Vasile

Matrix View:

Build v1.5.0 RC1

Platform | Result | Duration | Tester | Notes
----------|--------|----------|--------|--------
Windows   | PASS ✅| 5 min   | Maria  | Smooth
macOS     | PASS ✅| 5 min   | Ion    | Smooth
iOS       | FAIL ❌| 3 min   | Alex   | Autofill issue
Android   | PASS ✅| 5 min   | Vasile | Smooth

Avantaj:

  • Same test different results per platform
  • Platform-specific bugs identified
  • Coverage tracking per platform

Tracked Metrics Durante Execuție

TestLink urmărește automat:

  • ✅ Start Time - Când ai început testul
  • ✅ End Time - Când ai terminat
  • ✅ Duration - Cât a durat (vs estimare)
  • ✅ Tester Name - Cine a executat
  • ✅ Platform - Pe ce platform
  • ✅ Build - Ce versiune (MANDATORY!)
  • ✅ Notes - Observații tester
  • ✅ Attachments - Screenshot-uri, logs

Rapoarte Personale (Tester)

Fiecare tester vede propriul raport cu:

My Test Execution Report

Total Assigned: 50
Completed: 45
Pass: 30 (66%)
Fail: 10 (22%)
Blocked: 5 (11%)
Pending: 5

Time Spent: 25 hours
Avg Duration per Test: 30 min

Tips pentru Execuție Eficientă

✅ DO:

  • Citeste test case COMPLET înainte de a executa
  • Respecta pașii exact
  • Documentează observații
  • Raportează probleme imediat
  • Atașează screenshot-uri pentru FAIL
  • Re-executa testele failed după fix
  • Comunică cu team cand e BLOCKED

❌ DON'T:

  • Nu omite pași
  • Nu improvizezi în loc să urmezi pași
  • Nu markezi PASS dacă nu ești sigur
  • Nu uita notes pentru FAIL
  • Nu raporta vag bugs
  • Nu executa prea rapid (greșeli)
  • Nu uita status update

Workflow Complet: From Start to Finish

ZI 1: START TESTING
├─ Login TestLink
├─ Vad 50 teste atribuite
├─ Selectez primeira test: TC-001
├─ Citesc pași și precondițiuni
├─ Execut pași 1-5
├─ Toate pași OK → PASS ✅
├─ Adaug note: "Login fluid, no errors"
└─ Trec la următorul test

ZI 2: MIDDLE OF TESTING
├─ Continuu cu test TC-010
├─ Ejecutu pași
├─ Pas 3 eșuează (bug găsit)
├─ Markez FAIL ❌
├─ Raportez BUG-2024-005
├─ Atașez screenshot
├─ Markez test BLOCKED (waiting fix)
└─ Continuu cu alte teste

ZI 3: END OF TESTING
├─ BUG-2024-005 este fixat
├─ Re-execut test TC-010
├─ Toate pași OK → PASS ✅
├─ Vad că 48/50 teste sunt DONE
├─ Aștept 2 teste BLOCKED (externe)
├─ Generez raport personal
└─ Raportez completion la Manager

Te-ai gândit la rapoarte? Merge la Rapoarte! 📊