Execuția Testelor - sebiboga/testlink-upgraded GitHub Wiki
Execuția Testelor ▶️
Ce înseamnă Execuție Test?
Execuția testului este procesul prin care:
- Iei un test case din plan
- Îl execuți efectiv (manual sau automat)
- Înregistrezi rezultatul
- 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ă)
- Login ca Tester
- Mergi la Planuri de Test
- Selectează planul ție atribuit
- ✅ Plan auto-selectează Build (v1.5.0 RC1)
- ✅ Plan liste CARE platforme (Windows, macOS, iOS)
- SELECTEAZĂ PLATFORM pe care testezi:
Platforms în Plan: [ ] Windows 10 + Chrome [ ] macOS 13 + Safari [✓] iOS 17 + Safari ← YOU SELECTED THIS [ ] Android 13 + Chrome - Vezi lista test cases-urilor pentru ACEA platform
- Apasă pe test pentru a executa
Important: Platform determines WHERE test runs!
Metoda 2: Din Dashboard
- Login
- Dashboard arată:
- Teste atribuite ție
- Plan asociat (cu Build + Platforms)
- Deadline-uri
- Teste pendente
- Click pe test
- Te cere: "Pe care platform testezi?"
- Select platform → Execute test
Metoda 3: Directă (Advanced)
- Mergi la Test Execution
- TREBUIE selectezi:
- Plan (auto-selectează Build)
- Platform (MANDATORY!)
- Status (Not Run, etc)
- Alege test din lista
- ⚠️ Test va rula pe ACEA platform!
Metoda 2: Din Dashboard
- Login
- Dashboard arată:
- Teste atribuite ție
- Plan asociat (cu Build info)
- Deadline-uri
- Teste pendente
- Click pe test pentru a executa
- ✅ Build e setat din plan
Metoda 3: Directă (Advanced)
- Mergi la Test Execution
- TREBUIE selectezi:
- Plan (auto-selectează Build)
- Platform
- Status (Not Run, etc)
- 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:
- Plan → View Inventory
- Selectează ce data trebuie
- Copy credentials/data
- 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:
- Execuție Test → Status: FAIL
- Apasă Creare Bug Report
- 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 |
- 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:
- Execuție Test → Status: BLOCKED/FAIL
- Apasă Re-execută Test
- Execută din nou cu build nou
- 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! 📊