QA Engineer Guide
Guide complet pour les testeurs QA sur MyTV v2 API.
Philosophie QA
- Shift-left testing - Trouver les bugs tot
- Automation first - Automatiser le repetitif
- Risk-based - Focus sur les chemins critiques
- Continuous - Tester a chaque changement
Environnements de Test
| Env | URL | Donnees |
|---|---|---|
| Local | http://localhost:3000 | Fresh/seeded |
| Staging | https://staging-api.mytv.com | Production-like |
| Production | https://api.mytv.com | Real data |
Quality Gates
| Gate | Requirement | Bloquant |
|---|---|---|
| Unit Tests | 80% coverage | Oui |
| Lint | No errors | Oui |
| Build | Successful | Oui |
| E2E Tests | Pass | Oui |
| Security | No high/critical | Oui |
| Code Review | 1 approval | Oui |
Test Categories
Functional Testing
| Category | Description | Priority |
|---|---|---|
| Authentication | Login, logout, refresh | Critical |
| Authorization | RBAC, permissions | Critical |
| CRUD Operations | Create, Read, Update, Delete | High |
| Business Logic | Subscriptions, payments | High |
| Edge Cases | Boundary values | Medium |
| Error Handling | Invalid inputs | Medium |
Non-Functional Testing
| Category | Description | Tools |
|---|---|---|
| Performance | Response time | K6, Postman |
| Load | Concurrent users | K6 |
| Security | Auth bypass, injection | OWASP ZAP |
| Documentation | Swagger accuracy | Manual |
Collections Postman
postman/
├── MyTelevision_API_Collection.json # 179 endpoints
├── MyTelevision_Admin_Collection.json # 150+ endpoints
├── MyTelevision_Account_Profile_Collection.json
└── environments/
├── local.json
├── staging.json
└── production.json
Import & Setup
- Importer les collections dans Postman
- Importer l environnement (local/staging)
- Executer "Login" pour obtenir les tokens
- Les tokens sont automatiquement sauvegardes
Test Checklist
Authentication
- Login avec email/password
- Login avec Google
- Login avec Apple
- Refresh token
- Logout
- Invalid credentials (401)
- Account suspended (403)
- Rate limiting (429)
Accounts & Profiles
- Creer compte
- Lister profils (max 4)
- Creer profil standard
- Creer profil kids
- Changer de profil
- PIN management
- Supprimer profil (pas default)
- Account deletion (30j retractation)
Content
- Lister films avec pagination
- Filtrer par genre, access type
- Recherche textuelle
- Details film
- Lister series
- Saisons et episodes
- Live TV channels
- Radio channels
- Podcasts
- News
- Events
Streaming
- Generer token streaming
- Verifier token
- Revoquer token
- Token expire
- Max uses
- IP binding
Engagement
- Like/Dislike content
- Toggle reaction
- Ajouter favori
- Lister favoris
- Enregistrer vue
- Cooldown vue (30 min)
- Watch history
Bug Reporting
Template
## Description
[Description claire du bug]
## Steps to Reproduce
1. Step 1
2. Step 2
3. Step 3
## Expected Result
[Ce qui devrait se passer]
## Actual Result
[Ce qui se passe reellement]
## Environment
- Environment: [Local/Staging/Production]
- Browser/Client: [Chrome/iOS/Android]
- Version: [API version]
## Evidence
[Screenshots, logs, request/response]
## Severity
[Critical/High/Medium/Low]
Severity Levels
| Level | Description | Example |
|---|---|---|
| Critical | System down, data loss | API crash, auth bypass |
| High | Major feature broken | Cannot play video |
| Medium | Feature partially broken | Pagination incorrect |
| Low | Minor issue | Typo in response |
Release Criteria
Definition of Done
- Unit tests pass (80%+ coverage)
- E2E tests pass
- No critical/high bugs
- Documentation updated
- Performance acceptable (< 500ms P95)
- Security scan clean
- Code review approved
Go/No-Go Checklist
- All planned features implemented
- All blocking bugs fixed
- Staging tests passed
- Rollback plan ready
- Monitoring alerts configured