====== Zagotavljanje kakovosti ======
Pregled procesov in pregledov QA za WvdS FPC RAD Studio.
Ti kontrolni seznami veljajo za **vse razvijalce** - tako za ročne preglede kot za preglede s pomočjo UI.
===== Potek dela QA =====
Vsaka sprememba prestane teh 5 korakov preverjanja:
^ Korak ^ Preverjanje ^ Kontrolni seznam ^
| 1 | **Pripravljeno za produkcijo** | Brez TODO, Stub, Mock |
| 2 | **Varnost** | KRITIS/NIS2, OWASP |
| 3 | **Kakovost kode** | Poimenovanje, DRY, obravnava napak |
| 4 | **SSOT** | Skupne knjižnice namesto lokalnih kopij |
| 5 | **Dokumentacija** | PasDoc komentarji, API dokumentacija |
===== Matrika profilov =====
Katere kontrolne sezname uporabiti glede na vrsto projekta:
^ Vrsta projekta ^ Obvezno ^ Opcijsko ^
| Razširitev VSCode | Core, Cross-Platform, VSCode-Stack | Varnost, beleženje |
| Namizna aplikacija | Core, Build, beleženje | i18n, varnost |
| TUI/CLI | Core, CLI-Stack, Cross-Platform | Varnost, zmogljivost |
| Knjižnica | Core, poimenovanje, funkcije, Build | Varnost, Cross-Platform |
| Web API | Core, varnost, beleženje | Zmogljivost, SQL |
===== Kontrolni seznami podrobno =====
^ Dokument ^ Vsebina ^ Kdaj uporabiti ^
| [[.:audit-core|Jedrovni kontrolni seznam]] | Pripravljeno za produkcijo, obravnava napak, beleženje | **Vedno** |
| [[.:audit-sicherheit|Varnostni kontrolni seznam]] | KRITIS/NIS2, OWASP, kripto | Pri omrežju, avtentikaciji, kripto |
| [[.:audit-codequalitaet|Kontrolni seznam kakovosti kode]] | Poimenovanje, funkcije, DRY | Pri spremembah API |
| [[.:kommentierung|Standardi komentiranja]] | PasDoc, XMLDoc, načela | Pri novih enotah |
| [[.:audit-vscode|Kontrolni seznam VSCode]] | Specifično za razširitve, pas2js | Pri delu na razširitvah |
===== Pravila brez tolerance =====
Ta pravila so **neizpogajljiva** - koda s kršitvami bo zavrnjena.
==== Prepovedano v produkcijski kodi ====
PREPOVEDANO ZAHTEVANO
─────────────────────────────────────────────────
// TODO: ... → Popolna implementacija
// FIXME: ... → Popravljena koda
raise ENotImplemented → Delujoča koda
Stub funkcije → Prave implementacije
Mock implementacije → Produkcijska koda
Nadomestne vrednosti → Prave vrednosti
Trdo kodirani nizi → Resourcestrings (i18n)
Prazni obdelovalci izjem → Specifična obravnava napak
Čarobne številke → Poimenovane konstante
==== Varnostne osnove ====
PREPOVEDANO ZAHTEVANO
─────────────────────────────────────────────────
SQL konkatenacija nizov → Parametrizirane poizvedbe
Skrivnosti v dnevnikih → Brisanje po uporabi
Trdo kodirane poverilnice → Okoljske spremenljivke
Sporočila o napakah s potmi → Saniziirana sporočila
===== Potek pregleda =====
==== Korak 1: Jedrovni kontrolni seznam ====
[ ] Brez TODO/FIXME komentarjev
[ ] Brez stub ali mock funkcij
[ ] Vse funkcije popolnoma implementirane
[ ] Brez praznih obdelovalcev izjem
[ ] Napake se zabeležijo pred obravnavo
[ ] Viri se deterministično sprostijo
[ ] Brez podvojene kode (DRY)
[ ] Brez čarobnih številk
==== Korak 2: Varnost (če relevantno) ====
[ ] Vnosi validirani na vseh mejah
[ ] SQL parametriziran (brez konkatenacije)
[ ] Brez skrivnosti v dnevnikih
[ ] Sporočila o napakah sanizirana (brez poti/verzij)
[ ] Skrivnosti izbrisane po uporabi (brisanje)
[ ] Časovne omejitve za zunanje operacije
==== Korak 3: Preverjanje SSOT ====
[ ] NodeJS API-ji prek ~/sources/common/web/nodejs/
[ ] VSCode API-ji prek ~/sources/common/web/vscode/
[ ] Beleženje prek WvdS.System.Logging
[ ] Brez neposrednih require() klicev v razširitvah
[ ] Brez dvojnikov skupnih enot
==== Korak 4: Dokumentacija ====
[ ] Javni API ima PasDoc komentarje
[ ] Komentarji razložijo ZAKAJ, ne KAJ
[ ] Brez zastarelih komentarjev
[ ] Komentarji v angleščini
===== Pregledi s pomočjo UI =====
Isti kontrolni seznami se uporabljajo za avtomatizirane preglede z UI:
# Naloge pregleda (glejte docs/automated-test-tasks.txt)
1. IMPLEMENTIRAJ VSE STUBE/MOCKE
- Ustvari inventar vseh enot
- Identificiraj stube/mocke
- Implementiraj produkcijsko pripravljeno
2. IZVEDI PREGLED KAKOVOSTI/VARNOSTI
- Identificiraj varnostna tveganja
- Najdi kršitve SoC
- Popravi po standardih
3. DODAJ KOMENTARJE KODE
- Identificiraj manjkajoče komentarje
- Napiši PasDoc komentarje
4. PREVERJANJE SSOT
- Najdi lokalne require() klice
- Zamenjaj s klici skupne knjižnice
5. ZGRADI RAZŠIRITVE
- Prevedi in testiraj
- Ustvari VSIX
===== Protokoliranje =====
Vsi koraki pregleda se protokolirajo v formatu sledenja sklada:
[2026-01-13 10:30:22.001] Pregled zagnan
at TWvdSAudit.Initialize(Audit.Service.pas:42)
Obseg: sources/extensions/**
[2026-01-13 10:30:22.015] Najdeno: TODO komentar
at extension_main.pas:156
Besedilo: "// TODO: Implement error handling"
Akcija: Zahtevana implementacija
[2026-01-13 10:30:22.042] Popravljeno: TODO komentar odstranjen
at extension_main.pas:156
Sprememba: Implementirana popolna obravnava napak
===== Glejte tudi =====
* [[.:audit-core|Jedrovni kontrolni seznam]]
* [[.:audit-sicherheit|Varnostni kontrolni seznam]]
* [[.:audit-codequalitaet|Kontrolni seznam kakovosti kode]]
* [[.:kommentierung|Standardi komentiranja]]
* [[.:audit-vscode|Kontrolni seznam razširitve VSCode]]
* [[.:sicherheit|Varnostne smernice]]
* [[.:code-konventionen|Konvencije kode]]