ٹیسٹ سٹریٹیجی
سندھ آئی ٹی پورٹل — سہولت ڈیسک (SITP) کے لیے مرکزی ٹیسٹ اور تصدیق کی سٹریٹیجی: ٹیسٹنگ پیرامڈ، ٹولز، کوریج ہداف، CI/CD گیٹس، ٹیسٹ ڈیٹا سٹریٹیجی، نمونہ ٹیسٹ کیسز (TC-<EPIC>-<nnn>-<nn>)، Gherkin-as-spec، لوکلائزیشن/RTL، رسائی، سیکیورٹی، پرفارمنس/لوڈ، UAT، ریگریشن، خرابی کا انتظام، اور فنکشنل ریquirement ← یوزر اسٹوری ← قبولیت کے معیار ← ٹیسٹ کیس تک دو طرفہ ٹریس ایبلٹی۔
| فیلڈ | قدر |
|---|---|
| دستاویز ID | 13 |
| حیثیت | مسودہ |
| مالک | S&ITD / MAAHIR |
| زبانیں | EN (مرجع) · UR · SD |
| ID اسکیم | TC-<EPIC>-<nnn>-<nn> بمطابق _conventions.md §4 |
| حقیقت کا منبع | _context.md · /specs/ur/01-prd/ · /specs/ur/03-non-functional-reqs/ |
| تصدیق کرتا ہے | /specs/ur/02-functional-reqs/ · /specs/ur/06-ticket-workflow/ · /specs/ur/11-security-compliance/ |
1. مقصد اور اس دستاویز کو پڑھنے کا طریقہ
یہ دستاویز SITP کے لیے مستند تصدیقی معاہدہ ہے۔ یہ انجینئرنگ، QA، MAAHIR آپریشنز، اور S&ITD قبولیت کے اسٹیک ہولڈرز کو بتاتی ہے کہ کیا ٹیسٹ کیا جاتا ہے، کس تہہ میں، کس ٹول کے ساتھ، کس ہدف تک، اور ہر ٹیسٹ کیس کس طرح کسی یوزر اسٹوری، اس کے قبولیت کے معیارات، اور اس سے پیدا ہونے والے فنکشنل ریquirement سے جڑا ہے۔ اسے RFP اور ٹینڈر کے لیے تیار بنایا گیا ہے، اور PPP کی جواب دہی کے معیار کو پورا کرنے کے لیے کہ ہر شیپ شدہ صلاحیت واضح طور پر تصدیق شدہ ہے۔
1.1 ایک ہی تصدیق کے لیے پڑھنے کی ترتیب
فنکشنل ریquirement (
FR-...) → یوزر اسٹوری (US-...) → قبولیت کا معیار (GherkinScenario) → ٹیسٹ کیس (TC-<EPIC>-<nnn>-<nn>) → ٹیسٹ لیئر (یونٹ / انٹیگریشن / e2e / مینول) → CI گیٹ / NFR ہدف۔
اس دستاویز میں درج ہر TC /specs/ur/01-prd/ میں سے ایک یا زیادہ Gherkin منظرناموں کو عمل اور قابلِ تکرار بنانے کے لیے موجود ہے۔ ID مستقل، زبان سے آزاد ہیں، اور کبھی ترجمہ نہیں کیے جاتے۔
1.2 کوالٹی بار (ایک لائن بیان)
پورٹل اس وقت شیپ ابل ہے جب (a) PRD میں ہر
[M]قبولیت کے معیار کے لیے کم از کم ایک کامیاب خودکار ٹیسٹ کیس ہو، (b) §5 کے کوریج ہداف پورے ہوں، (c) §6 کا ہر CI/CD گیٹ سبز ہو، اور (d) §13 کے UAT ایگزٹ معیارات پر پائلٹ محکموں نے دستخط کریں۔
1.3 دائرہ کار
| دائرہ کار میں | دائرہ کار سے باہر (اس دستاویز میں) |
|---|---|
| خودکار یونٹ، انٹیگریشن، اینڈ ٹو اینڈ، کنٹریکٹ، پرفارمنس، سیکیورٹی، رسائی، i18n ٹیسٹ | تفصیلی مینول ٹیسٹ اسکرپٹس (QA ٹیسٹ مینجمنٹ ٹول میں رہتے ہیں، جیسے TestRail / Zephyr) |
کوریج ہداف، CI گیٹس، ٹیسٹ ڈیٹا سٹریٹیجی، نمونہ TC کیٹلاگ |
فی ایڈاپٹر موک اسپیسفیکیشنز (/specs/ur/08-integrations-spec/ میں رہتی ہیں) |
| UAT پلان، ریگریشن سٹریٹیجی، خرابی کا انتظام، ٹریس ایبلٹی | DR مشقیں، ریسٹور مشقوں کے لیے رن بکس (/specs/ur/15-tech-architecture/ میں رہتے ہیں) |
2. ٹیسٹنگ کے اصول
- بائیں کی طرف شفٹ کریں۔ یونٹ لیئر پر خرابیوں کو ٹھیک کرنا سب سے سستا ہے۔ ہر PR اپنے ٹیسٹس لاتا ہے؛ کچھ بھی بغیر تصدیق کے
mainتک نہیں پہنچتا (NFR-MAINT-003)۔ - رویے کا ٹیسٹ کریں، نہ کہ عمل درآمد کا۔ ٹیسٹ Gherkin منظرناموں سے قابلِ مشاہدہ نتائج کا دعویٰ کرتے ہیں؛ وہ پرائیویٹ طریقہ کے دستخط یا DB کالم کے ناموں کا دعویٰ نہیں کرتے۔ یہ ماڈیولر مونولیتھ کو ریفیکٹر کے قابل رکھتا ہے (NFR-MAINT-001)۔
- Gherkin معاہدہ ہے۔ PRD میں ایک
Scenario:واحد حقیقت کا منبع ہے: یہ اسٹیک ہولڈرز کے لیے ارادے کو دستاویز کرتا ہے اور Cucumber/Playwright کے اسٹیپ بائنڈنگز کے ذریعے آٹومیشن چلاتا ہے (§8 دیکھیں)۔ کوئی متوازی، مختلف "ٹیسٹ اسپیک" نہیں ہے۔ - گہرائی میں دفاع۔ سیکیورٹی، پرائیویسی، رسائی، اور i18n سنگل گیٹ چیکس نہیں ہیں؛ ہر ایک کی تصدیقی ایک خودکار تہہ (CI) پلس ایک مینول/ماہرانہ تہہ (فی ریلیز آڈٹ) سے ہوتی ہے۔ §10–§12 دیکھیں۔
- پہلے تعین۔ فلیکی ٹیسٹس کو P1 خرابیوں کے طور پر Treat کیا جاتا ہے؛ ایک ٹیسٹ جسے تعین بنایا نہیں جا سکتا اسے قرنطینہ کیا جاتا ہے اور ایک اسپرنٹ کے اندر دوبارہ لکھا جاتا ہے (QA پر لاگو NFR-RELY-004 طرزِ خیال)۔
- پروڈکشن حقیقت پسندی۔ پرفارمنس، لوکلائزیشن، اور گریس فل ڈیگریڈیشن ٹیسٹس ایک اسٹیجنگ ماحول کے خلاف چلتے ہیں جو پروڈکشن ٹاپالوجی کی عکاسی کرتا ہے (NFR-PORT-001، NFR-SCAL-001) حقیقت پسندانہ کارڈینلٹی پر (§7)۔
3. ٹیسٹنگ پیرامڈ
SITP کلاسک ٹیسٹنگ پیرامڈ پر عمل کرتا ہے: ایک وسیع، تیز یونٹ بیس؛ ایک تنگ انٹیگریشن بینڈ؛ ایک چھوٹا، سست اینڈ ٹو اینڈ (e2e) چوٹی؛ اور ایک پتلی مینول / UAT تہہ جو ایکسپلوریٹری ٹیسٹنگ، رسائی آڈٹ، سیکیورٹی پین ٹیسٹ، اور اسٹیک ہولڈر قبولیت کے لیے مخصوص ہے۔ یہ شکل جان بوجھ کر رکھی گئی ہے — وسیع اکثریت دعووں کی سب سے سستی، تیز ترین تہہ پر رہتی ہے۔
تحریری وضاحت۔ پیرامڈ کو نیچے سے اوپر پڑھا جاتا ہے: سب سے وسیع تہہ (یونٹ) سب سے زیادہ دعوے رکھتی ہے اور ہر پل ریکوئسٹ پر ملی سیکنڈ میں چلتی ہے۔ ہر اگلی تہہ کم دعوے رکھتی ہے، چلانے کے لیے زیادہ لاگت آتی ہے، اور کم بار بار چلتی ہے۔ بیس اس بات کی تصدیق کرتی ہے کہ ہر ماڈیول کا خالص منطق — SLA کیلکولیٹرز، حل کا ثبوت گیٹ، اسکیلیشن لیڈر شیڈولر، PII حذف و ترمیم میپرز، RBAC ریذولوشن، لوکیل کیٹلاگ مکملیت — الگ تھلگ درست سلوک کرتا ہے۔ انٹیگریشن بینڈ اس بات کی تصدیق کرتا ہے کہ ماڈیولز اپنے شائع شدہ انٹرفیس کے ذریعے اور Testcontainers کے ذریعے حقیقی MariaDB/Redis/MinIO کے خلاف تعاون کرتے ہیں۔ e2e چوٹی ان چند سفرات کو چلاتی ہے جو صرف اس وقت معنی رکھتے ہیں جب پورا اسٹیک (پورٹل + API + ورکرز + AI سروس + ایڈاپٹرز) لائیو ہو — ٹکٹ داخل کریں، ID سے ٹریک کریں، ثبوت کے ساتھ حل کریں، اسکیلیٹ کریں، MoM شائع کریں، QR سائن شدہ خط کی تصدیق کریں۔ مینول تہہ ان چیزوں کے لیے مخصوص ہے جو خودکار نہیں کی جا سکتیں: ایکسپلوریٹری ٹیسٹنگ، WCAG اسکرین ریڈر آڈٹ، آزاد پین ٹیسٹ، اور پائلٹ محکموں کا UAT دستخط۔
3.1 لیئر بہ لیئر معاہدہ
| لیئر | یہ کیا ثابت کرتا ہے | ٹولز | کب چلتا ہے | ہدف شیئر |
|---|---|---|---|---|
| یونٹ | خالص منطق، سنگل ماڈیول درستگی، کوئی I/O نہیں | Vitest / Jest، ts-jest، PyTest (AI سروس) |
ہر PR (CI) | ~70% دعوے |
| انٹیگریشن | ماڈیول تعاون، حقیقی انفرا (DB، کیش، اسٹوریج، قطار)، ایڈاپٹر موک | NestJS Test.createTestingModule، Testcontainers، Supertest |
ہر PR (CI) | ~20% |
| کنٹریکٹ | API/Webhook کنٹریکٹ دونوں طرف سے پورے | OpenAPI schema-diff، Pact (webhooks کے لیے کنزیومر ڈرائیون) | ہر PR (CI) | انٹیگریشن کا ذیلی سیٹ |
| اینڈ ٹو اینڈ | لائیو اسٹیک کے ذریعے مکمل اہم سفرات | Playwright (ویب)، Playwright APIRequestContext | راتوں رات + ریلیز پہلے اسموک | ~7% |
| پرفارمنس / لوڈ | تھرو پٹ، لیٹینسی p95، AI/OCR ٹائم آؤٹ، concurrency | k6 (بنیادی) / Artillery (متبادل) | ریلیز پہلے + ڈیمانڈ پر | — |
| سیکیورٹی | OWASP ASVS L2، authz میٹرکس، ABAC، پین ٹیسٹ | OWASP ZAP، Burp Suite، gitleaks، Trivy، Snyk |
راتوں رات ZAP + فی ریلیز مینول | — |
| رسائی | WCAG 2.1 AA خودکار + مینول اسکرین ریڈر | axe-core، Pa11y، Lighthouse CI، NVDA/VoiceOver | ہر PR (خودکار) + فی ریلیز (مینول) | — |
| i18n / l10n | تین لوکیل ہم آہنگی، RTL میرنگ، گلاسری تعمیل | حسبِ ضرورت لوکیل کیٹلاگ ڈف، Playwright بصری (LTR+RTL)، Lighthouse | ہر PR + ریلیز پہلے | — |
| مینول / UAT | ایکسپلوریٹری، آڈٹ گریڈ a11y، پین ٹیسٹ، پائلٹ قبولیت | انسانی ٹیسٹرز، اسکرین ریڈرز، پائلٹ محکمہ عملہ | فی ریلیز / فی فیز | ~3% |
4. ٹولز اور اسٹیک
ٹولز کو _context.md §3 میں مقفل ٹیکنالوجی اسٹیک اور /specs/ur/03-non-functional-reqs/ §3.9 میں قابلِ维护یت گیٹس سے ملانے کے لیے منتخب کیا گیا ہے۔ کوئی ایسا ٹول متعارف نہیں کرایا گیا جو ہر پل ریکوئسٹ پر CI میں نہ چل سکے۔
| تشویش | بنیادی ٹول | متبادل / نوٹ |
|---|---|---|
| یونٹ ٹیسٹس (NestJS / TypeScript) | Vitest (تیز، ESM نیٹو) | Jest قابلِ قبول ہے جہاں کوئی ماڈیول پہلے سے اس پر معیار کرتا ہے |
| یونٹ ٹیسٹس (FastAPI AI سروس) | PyTest + pytest-asyncio + pytest-cov |
کوریج اسی گیٹ کو فیڈ کرتی ہے جیسا TS سائیڈ |
| انٹیگریشن ٹیسٹس (NestJS) | NestJS DI (Test.createTestingModule) + Testcontainers (MariaDB 10.11، Redis، MinIO، Keycloak ٹیسٹ ریلم) |
ہر اسپیک کو تازہ schema/namespace ملتا ہے؛ کوئی شیئرڈ میوٹیبل اسٹیٹ نہیں |
| HTTP/API دعوے | Supertest NestJS ایپ کے خلاف | کنزیومر ڈرائیون webhook کنٹریکٹس کے لیے Pact |
| اینڈ ٹو اینڈ (براؤزر) | Playwright (Chromium، Firefox، WebKit) | ایک سوٹ، EN/UR/SD اور LTR/RTL پر پیرامیٹرائزڈ |
| اینڈ ٹو اینڈ (موبائل) | Playwright ڈیوائس ایمولیشن (Moto G Power، iPhone SE) | React Native (Expo) Detox فیز 4 کے لیے ملتوی |
| کنٹریکٹ / API ڈف | کوڈ سے جنریٹڈ OpenAPI 3؛ بریکنگ چینج کی تشخیص کے لیے oasdiff | اسپیک ڈف ہارڈ گیٹ ہے (NFR-INTER-004) |
| پرفارمنس / لوڈ | k6 (بنیادی) | سوک/سناریو اسکرپٹنگ کے لیے متبادل Artillery |
| رسائی (خودکار) | axe-core (@axe-core/playwright کے ذریعے) + Pa11y + Lighthouse CI |
تینوں چلتے ہیں؛ Pa11y Docusaurus ڈاکس سائٹ کو بھی اسکین کرتا ہے |
| رسائی (مینول) | NVDA + Firefox، JAWS + Edge، VoiceOver + Safari/iOS، TalkBack + Android | فی ریلیز اہم سفرات پر آڈٹ (NFR-A11Y-002) |
| سیکیورٹی (DAST) | OWASP ZAP (راتوں رات بیس لائن + فی ریلیز ایکٹو اسکین) | آزاد پین ٹیسٹ کے لیے Burp Suite Professional |
| سیکیورٹی (SAST/SCA/secrets) | gitleaks/trufflehog (secrets)، Snyk یا Trivy (SCA)، ESLint سیکیورٹی پلگ ان (SAST) |
NFR-SEC-011 بمطابق کریٹیکل CVE گیٹ |
| i18n / l10n | حسبِ ضرورت locale-diff (EN↔UR↔SD کی پیرٹی)، eslint-plugin-react-intl (کوئی ہارڈ کوڈڈ اسٹرنگ نہیں)، Playwright بصری + LTR اور RTL میں اسکرین شاٹ ڈف |
_glossary.md سے گلاسری تعمیل چیک |
| بصری ریگریشن | Playwright اسکرین شاٹ ڈف (فی صفحہ، فی لوکیل، فی سمت) | بیس لائنز ہر ریلیز پر ریویو کی جاتی ہیں؛ ڈرفت → مینول منظوری |
| ٹیسٹ ڈیٹا | فیکٹری فنکشنز + Faker.js (سنتیٹک)، ماسکڈ PII کارپس (§7 دیکھیں) | فکسچرز tests/fixtures/ کے تحت ان-ریپو ورژنڈ |
| ٹیسٹ مینجمنٹ | TestRail (یا Zephyr Scale) مینول/UAT اسکرپٹس اور ٹریس ایبلٹی کے لیے | اس دستاویز میں ٹیسٹ کیسز اسپیک ہیں؛ ٹول ایگزیکیوشن ثبوت رکھتا ہے |
| کوریج | c8 / istanbul (TS)، coverage.py (Py) | CI کو رپورٹ ہوتی ہے؛ رجحان فی بلڈ ٹریک کیا جاتا ہے |
| میوٹیشن (اختیاری، [C]) | Stryker (TS) | فیز-2+ کریٹیکل پاتھ سوٹ کو مضبوط بنانے کے لیے |
5. کوریج ہداف
کوریج ہداف NFR-MAINT-002 سے ہم آہنگ ہیں اور سب سے زیادہ خطرے والے فیصلہ گیٹس کے لیے سخت تر معیار شامل کرتے ہیں۔ کوریج ایک فرش ہے، چھت نہیں؛ یہ ضروری ہے لیکن کافی نہیں (اونچا اسکور لیکن اتھلے دعوے ایک جانا پہچانا اینٹی پیٹرن ہے، جس کا مقابلہ §4 میں میوٹیشن ٹیسٹنگ آپشن سے کیا جاتا ہے)۔
| دائرہ کار | لائن کوریج | برانچ کوریج | گیٹ |
|---|---|---|---|
| NestJS API (مجموعی) | ≥ 70 % | ≥ 60 % | ہارڈ، بمطابق NFR-MAINT-002 |
| FastAPI AI سروس (مجموعی) | ≥ 70 % | ≥ 60 % | ہارڈ، بمطابق NFR-MAINT-002 |
| کریٹیکل پاتھ ماڈیولز (auth، ٹکٹ لائف سائیکل، آڈٹ، فائلز) | ≥ 80 % لائن | ≥ 70 % برانچ | ہارڈ، بمطابق NFR-MAINT-002 |
| سب سے زیادہ خطرے والے فیصلہ گیٹس (§5.1 دیکھیں) | 100 % لائن اور برانچ | — | ہارڈ |
| پبلک سائٹ / Next.js کمپوننٹس | ≥ 60 % لائن | ≥ 50 % برانچ | V1 پر نرم (وارن)؛ فیز 2 میں ہارڈ کریں |
ایک PR جو مجموعی کوریج کو فرش سے نیچے لاتی ہے وہ بلڈ فیل کرتا ہے۔ کوریج گیٹ ڈیلٹا (تبدیل شدہ لائنوں) پر چلتا ہے پورے پراجیکٹ کے کل کے علاوہ، تاکہ لیجیسی کوڈ پر جرمانہ نہ ہو لیکن نیا کوڈ معیار کا پابند ہو۔
5.1 100 % فیصلہ گیٹس
یہ وہ تنگ، بلے-ریڈیس کوڈ پاتھ ہیں جہاں ایک چھوٹا سا مس برانچ تعمیل یا اعتماد کی ناکامی ہے۔ انہیں صریح طور پر نامزد ٹیسٹ کیسز کے ساتھ 100 % لائن اور برانچ کوریج تک پہنچنا چاہیے، ماڈیول پر مبنی فرش سے قطع نظر:
| فیصلہ گیٹ | 100 % کیوں | ملکیت ماڈیول(s) |
|---|---|---|
حل کا ثبوت گیٹ — Resolved کو ثبوت + نوٹ کے بغیر بلاک کریں |
بندش کی سالمیت؛ اسکیلیشن اور CSAT سے تعلق | TKT (FR-TKT-013/014) |
آڈٹ ایپینڈ — ہر اسٹیٹ چینج ایک غیر تبدیل شدہ aud_event کو trace_id کے ساتھ لکھتا ہے |
حکومتی جواب دہی (NFR-AUD-001) | XCU / تمام ماڈیولز |
| اجازت allow/deny — RBAC ٹیمپلیٹ + اوورائیڈ ریذولوشن | کراس ٹیننٹ اور کراس محکمہ آئسولیشن | ORG (FR-ORG-005) |
| ABAC کانفیڈنشل/VIP چیک — حساس ٹکٹس پر ایٹریبیوٹ پر مبنی رسائی | پرائیویسی + اعتماد و حفاظت (NFR-AUD-004، NFR-PRIV-003) | ORG (FR-ORG-010) |
| کلاؤڈ AI سے پہلے PII حذف و ترمیم — کسی بھی کلاؤڈ کال سے پہلے mask/tokenize کریں | ڈیٹا ریزائڈنسی + خود مختاری (NFR-PRIV-006) | AI (FR-AI-010) |
| Idempotency-key dedup — ایک ہی key + payload ⇒ ایک write | ریٹری سیفٹی (NFR-RELY-004) | XCU / تمام اسٹیٹ تبدیل کرنے والے اینڈ پوائنٹس |
| Step-up auth چیلنج — پرانی سیشن ⇒ حساس روٹس پر step-up | سیشن ہائی جیک بلے-ریڈیس محدود (NFR-SEC-005) | ORG / INT |
| فیچر فلیگ فیل سیف ڈیفالٹ — فلیگ سروس ناقابل رسائی ⇒ محفوظ ڈیفالٹ | آپریشنل سیفٹی (US-FFG-002) | FFG |
6. CI/CD گیٹس اور پائپ لائن
نیچے دیا گیا ہر گیٹ main اور پروڈکشن ڈپلائے کے راستے پر ایک ہارڈ بلاک ہے، جسے برانچ پروٹیکشن (NFR-MAINT-003) کے ذریعے نافذ کیا جاتا ہے۔ ایک ڈپلائے جو گیٹ کو چھوڑ دے وہ ایک واقعہ ہے۔
تحریری وضاحت۔ ایک پل ریکوئسٹ بائیں جانب پائپ لائن میں داخل ہوتی ہے اور مرج ہونے سے پہلے بائیں سے دائیں ہر گیٹ پاس کرنا چاہیے۔ لنٹ اور ٹائپ چیک سب سے سستے کیچز ہیں اور پہلے چلتے ہیں۔ کوریج گیٹ کے ساتھ یونٹ ٹیسٹس اس کے بعد آتے ہیں، پھر انٹیگریشن ٹیسٹس جو Testcontainers کے ذریعے حقیقی MariaDB/Redis/MinIO کو چلاتے ہیں۔ کنٹریکٹ ٹیسٹس (شائع شدہ اسپیک کے خلاف OpenAPI ڈف، webhooks کے لیے Pact) پارٹنرز تک پہنچنے سے پہلے بریکنگ تبدیلیوں کو پکڑتے ہیں۔ بلڈ کنٹینرز اور بنڈلز تیار کرتا ہے۔ SCA + secrets ڈپینڈنسیز اور سورس میں معلوم کمزوریوں اور لیکڈ کریڈینشلز کو اسکین کرتا ہے (NFR-SEC-006، NFR-SEC-011)۔ رسائی (axe-core، Pa11y، Lighthouse) اور i18n/RTL (لوکیل پیرٹی، بصری ڈف) اس کے بعد چلتے ہیں۔ ایک e2e smoke سوٹ اوپری اہم سفرات کو کور کرتا ہے۔ License + SBOM جنریشن فی PR بلاک کو بند کرتی ہے۔ انسانی ریویو اور مرج کے بعد، راتوں رات مکمل سوٹ سستے، گہرے چیکس چلاتا ہے — ZAP DAST، k6 لوڈ، تینوں لوکیلز میں مکمل e2e، اور (اختیاری طور پر) میوٹیشن ٹیسٹنگ۔ ایک ریلیز گیٹ ہیومن ان-دی-لوپ چیکس شامل کرتا ہے: آزاد پین ٹیسٹ، مینول رسائی آڈٹ، اور پائلٹ محکمہ UAT دستخط۔ تبھی ایک زیرو ڈاؤن ٹائم ڈپلائے آگے بڑھتا ہے (NFR-AVAIL-006)۔
6.1 گیٹ کیٹلاگ
| گیٹ | ٹول | بلاکس | جڑا NFR |
|---|---|---|---|
| لنٹ | ESLint، Prettier، Ruff | PR مرج | MAINT-003 |
| ٹائپ چیک | tsc --noEmit، mypy |
PR مرج | MAINT-003 |
| یونٹ + کوریج | Vitest/Jest، PyTest + c8/coverage.py | PR مرج (ڈیلٹا + کل) | MAINT-002 |
| انٹیگریشن | NestJS DI + Testcontainers | PR مرج | RELY-004، RELY-005 |
| کنٹریکٹ | OpenAPI ڈف، Pact | PR مرج | INTER-001، INTER-004 |
| بلڈ | Docker، Next.js بلڈ | PR مرج | PORT-001 |
| SCA / secrets | Snyk/Trivy، gitleaks | PR مرج (کریٹیکل/ہائی CVE) | SEC-006، SEC-011 |
| رسائی (آٹو) | axe-core، Pa11y، Lighthouse CI | PR مرج (زیرو کریٹیکل خلاف ورزیاں) | A11Y-001 |
| i18n / RTL | locale-diff، eslint-plugin-react-intl، بصری | PR مرج | I18N-001، I18N-002، I18N-003 |
| e2e اسموک | Playwright | PR مرج (اوپری سفرات، EN) | — |
| License / SBOM | Syft، license-check | PR مرج (پروڈ ڈپس میں کوپى لیفٹ نہیں) | MAINT-001 |
| DAST (مکمل) | OWASP ZAP | راتوں رات + ریلیز پہلے | SEC-001، SEC-008 |
| لوڈ (مکمل) | k6 | ریلیز پہلے + ڈیمانڈ پر | PERF-001..011 |
| پین ٹیسٹ | Burp Suite (آزاد) | go-live پہلے + سالانہ | SEC-007 |
| مینول a11y آڈٹ | NVDA/JAWS/VoiceOver/TalkBack | فی ریلیز | A11Y-002، A11Y-003 |
| UAT دستخط | پائلٹ محکمے | فی فیز گیٹ | §13 دیکھیں |
7. ٹیسٹ ڈیٹا سٹریٹیجی
ٹیسٹ ڈیٹا بذریعہ ڈیفالٹ سنتیٹک ہے؛ حقیقی PII کبھی پروڈکشن سے نہیں نکلتی، اور چند کارپسز جو PII کی نقل کرتے ہیں وہ ماسکڈ اور رسائی کنٹرولڈ ہیں۔ ڈیٹا سٹریٹیجی NFR-PRIV-001 (کم سے کم) اور NFR-PRIV-003 (PII والٹنگ) کے تحت منظم ہے۔
7.1 ڈیٹا ذرائع
| ذریعہ | استعمال | نوٹس |
|---|---|---|
| سنتیٹک فیکٹریز (Faker.js + حسبِ ضرورت بلڈرز) | یونٹ، انٹیگریشن، e2e | تعین بیج؛ ہر اینٹیٹی ٹائپ کے لیے ایک فیکٹری |
| ماسکڈ PII کارپس | پرائیویسی حذف و ترمیم ٹیسٹس، پین ٹیسٹ | حقیقی شکلیں متبدل قدروں کے ساتھ؛ رسائی محدود |
| فی اینٹیٹی ٹائپ فکسچرز | کنٹریکٹ + e2e | tests/fixtures/ میں ورژنڈ JSON (کمپنی، ٹکٹ، MoM، خط، user×role) |
| ملٹی لنگول کارپس | i18n، OCR، سرچ | 3 لوکیل × نمائیندا مواد؛ §7.3 دیکھیں |
| انونیمائزڈ پروڈکشن نمونہ | پرفارمنس/لوڈ (اختیاری) | صرف منظور شدہ انونیمائزیشن پائپ لائن کے بعد؛ فیز-2+ |
7.2 اینٹیٹی فکسچر کوریج
ہر اینٹیٹی ٹائپ کے لیے کم از کم ایک کینونیکل فکسچر اور ایک ایڈج کیس فکسچر ہے، تاکہ شرطی منطق (اینٹیٹی ٹائپ مخصوص رجسٹریشن، کیٹگری مخصوص ٹکٹ فیلڈز، role-ٹیمپلیٹ اوورائیڈز) کو چلایا جا سکے:
- کمپنی — فی اینٹیٹی ٹائپ ایک: SECP کمپنی، سول پروپرائٹر/شراکت، فری لینسر، غیر ملکی شاخ، ابتدائی اسٹارٹ اپ (عارضی) (
US-ORG-001بمطابق)۔ - نمائندہ — فی role ٹیمپلیٹ ایک: بنیادی، ایڈمن، فائلر، ویور، نوٹیفائی؛ اس کے علاوہ ایک گرینولر اوورائیڈ کیس (
US-ORG-004بمطابق)۔ - محکمہ — ایک نسٹڈ فکسچر: محکمہ → سیکشن → عملہ، جس میں DG + سیکریٹری نگرانی تفویض شدہ ہے (
US-ORG-005بمطابق)۔ - ٹکٹ — ہیپی پاتھ، شرطی فارم (فی کیٹگری)، مسودہ، ذیلی ٹاسک پیرنٹ/چائلڈ، مرجڈ پرائمری/سیکنڈری، کانفیڈنشل/VIP، RTI کیٹگری (قانونی ڈیڈ لائن)۔
- MoM — اسکینڈ امیج (OCR پر مجبور)، ٹیکسٹ-PDF، Word؛ ایکشن آئٹمز کے ساتھ اور بغیر؛ حساس/VIP ویرینٹ۔
- خط / سرٹیفکیٹ — تین زبانی، سائنڈ/غیر سائنڈ، QR تصدیق کے لیے ٹیمپرڈ ہیش ویرینٹ۔
- اطلاع — فی چینل (ای میل، SMS، واٹس ایپ، ان ایپ) اور فی ایونٹ (بنایا، تفویض، اسکیلیٹ، حل، بند، MoM شائع)۔
7.3 ملٹی لنگول کارپس (3 لوکیلز)
ہر ٹیکسٹ بیئرنگ فکسچر EN، UR، اور SD میں موجود ہے تاکہ OCR، سرچ، AI ترجمہ، اطلاع رینڈرنگ، اور RTL لے آؤٹ تمام حقیقی اسکرپٹ مواد کے خلاف چلائے جائیں:
- لاطینی (EN) — بیس لائن۔
- اردو (UR) — نسطلیق، RTL۔
- سندھی (SD) — نسخ عربی اسکرپٹ، RTL۔
- ایک مکسڈ اسکرپٹ فکسچر (EN باڈی + UR اٹیچمنٹ) ترجمہ اور PII حذف و ترمیم ایڈج کیسز کے لیے۔
7.4 ڈیٹا حفاظت کے اصول
- کوئی حقیقی CNIC، حقیقی فون نمبر، یا حقیقی ای میل کسی بھی فکسچر یا کمٹڈ سیڈ میں نہیں آتا۔ Faker لوکیل قابلِ یقین شکلوں کے لیے
en_PKپر سیٹ ہے۔ - ماسکڈ PII کارپس رسائی کنٹرولڈ اسٹور میں رہتا ہے؛ CI صرف حذف و ترمیم/پین ٹیسٹ جابس کے لیے شارٹ لائیوڈ ٹوکن کے ذریعے اسے کھینچتا ہے۔
- ٹیسٹ ڈیٹا بیس عارضی ہیں (Testcontainers) اور فی اسپیک رن پر توڑ دیے جاتے ہیں؛ کوئی کراس اسپیک لیکج نہیں۔
- پرفارمنس ٹیسٹس کے لیے پروڈکشن جیسا کارڈینلٹی ایک سیڈر کے ذریعے جنریٹ کیا جاتا ہے جو
NFR-SCAL-004/005کی تعمیل کرتا ہے (100k ٹکٹس، 100k نمائندگان، 10k عملہ تک)۔
8. Gherkin منظرنامے بطور خودکار اسپیکس دوبارہ استعمال
/specs/ur/01-prd/ میں ایک Scenario: بلاک کوئی دستاویز نہیں ہے جسے پھر الگ ٹیسٹ اسکرپٹ میں ترجمہ کیا جائے۔ یہ قابلِ عمل اسپیسفیکیشن ہے۔ Gherkin متن دو طریقوں سے آٹومیشن سے باندھا جاتا ہے:
- Cucumber (PyTest کے لیے Behave / TS کے لیے
@cucumber/cucumber) — لفظی GherkinGiven/When/Thenاسٹیپس اسٹیپ ڈیفینیشن فنکشنز سے باندھے جاتے ہیں۔ منظرنامے کا متن اور ٹیسٹ ایک ہی آرٹیفیکٹ ہیں؛ منظرنامہ تبدیل کرنے سے ٹیسٹ تبدیل ہوتا ہے۔ - Playwright + data-testid بائنڈنگ — e2e کے لیے، ایک ہی Gherkin منظرنامے کو مستقل
data-testidسلیکٹرز کے ساتھ اینوٹیٹ کیا جاتا ہے تاکہ دعوا UI ریفیکٹرز میں پورٹیبل رہے۔
ورکڈ مثال — حل کا ثبوت گیٹ منظرنامہ (US-TKT-006) TC-TKT-006-01 بن جاتا ہے:
# Reused verbatim from /specs/ur/01-prd/ (US-TKT-006, Scenario: Resolution requires evidence and a note)
Scenario: Resolution requires evidence and a note
Given a staff member attempts to move a ticket to "Resolved"
When no evidence attachment and resolution note are present
Then the transition is blocked
And the system states which required items are missing
باندھی ہوئی آٹومیشن (وضاحتی):
// tests/integration/ticket/proof-gate.steps.ts
Given('a staff member attempts to move a ticket to {string}', async (status) => {
this.ticket = await ticketFactory.create({ status: 'InProgress' });
this.attempt = () => ticketsApi.transition(this.ticket.id, status);
});
When('no evidence attachment and resolution note are present', async () => {
// factory created the ticket without attachments and without a note — nothing to do
});
Then('the transition is blocked', async () => {
await expect(this.attempt()).rejects.toMatchObject({ status: 409, code: 'PROOF_GATE_MISSING' });
});
Then('the system states which required items are missing', async () => {
const err = await this.attempt().catch(e => e);
expect(err.details.missing).toEqual(expect.arrayContaining(['evidence_attachment', 'resolution_note']));
});
آرٹنگ رول: اگر ایک ٹیسٹ کیس Gherkin منظرنامے تک ٹریس نہیں ہو سکتا، تو یا تو منظرنامہ غائب ہے (اسے PRD میں شامل کریں) یا ٹیسٹ کیس عمل درآمد کی تفصیل کا ٹیسٹ کر رہا ہے (اسے ریفیکٹر یا حذف کریں)۔ یہ رول اسپیک اور سوٹ کو الگ ہونے سے روکتا ہے۔
9. نمونہ ٹیسٹ کیسز (TC-<EPIC>-<nnn>-<nn>)
نیچے دی گئی ٹیبل نمائندہ ٹیسٹ کیسز کی فہرست دیتی ہے جو _context.md §5 میں مقفل رویے کے فیصلوں اور PRD میں [M]/[S] یوزر اسٹوریز کو چلاتے ہیں۔ یہ مکمل سوٹ نہیں ہے — مکمل کیٹلاگ (E1–E17 میں ہر قبولیت کے معیار کے لیے ایک یا زیادہ TCs) QA ٹیسٹ مینجمنٹ ٹول میں رہتا ہے۔ یہاں ہر TC اپنی اصل یوزر اسٹوری، وہ فنکشنل ریquirement(s) جو یہ پورا کرتا ہے، بنیادی ٹیسٹ لیئر، اور وہ ترجیح جو ریگریشن میں شمولیت کا تعین کرتی ہے، سے میپ ہوتا ہے (§14 دیکھیں)۔
| TC ID | عنوان (ایک لائن رویہ) | ٹریس (US · FR) | لیئر | ترجیح |
|---|---|---|---|---|
TC-PUB-001-01 |
ہر پبلک صفحہ مکمل طور پر EN، UR، اور SD میں رینڈر ہوتا ہے، UR/SD کے لیے RTL کے ساتھ، اور کوئی فال بیک اسٹرنگ نہیں | US-PUB-001 · FR-PUB-001/002 |
e2e + i18n | P0 |
TC-ORG-001-01 |
شرطی رجسٹریشن فارم صرف منتخب شدہ اینٹیٹی ٹائپ (5 اقسام) کے لیے فیلڈز/دستاویزات دکھاتا ہے | US-ORG-001 · FR-ORG-001 |
انٹیگریشن + e2e | P0 |
TC-ORG-002-01 |
مکمل رجسٹریشن فوری عارضی بیج دیتی ہے؛ تصدیق کے متوازی چلنے کے دوران ٹکٹ داخل کرنا فعال ہے | US-ORG-002 · FR-ORG-002/003 |
انٹیگریشن | P0 |
TC-ORG-003-01 |
بنیادی مجاز نمائندہ کی منتقلی کے بعد بالکل ایک بنیادی باقی رہتا ہے؛ سابقہ کی تنزلی؛ تبدیلی آڈٹ لاگڈ | US-ORG-003 · FR-ORG-004 |
انٹیگریشن | P0 |
TC-ORG-004-01 |
ایک مسترد گرینولر اوورائیڈ نافذ ہوتا ہے حتیٰ کہ جب role ٹیمپلیٹ اجازت دیتا ہو | US-ORG-004 · FR-ORG-005 |
یونٹ + انٹیگریشن | P0 |
TC-ORG-005-01 |
اسکیلیشن لیڈر 2/5/10 دن پر فائر ہوتا ہے: 2 دن پر DG واچر، 7 دن پر سیکریٹری، 17 دن پر SACM شامل؛ اطلاعات بھیجی گئیں؛ await/ویک اینڈ/چھٹی پر SLA روکتا ہے | US-ORG-005 · FR-ORG-006/007 + _context.md §5 |
یونٹ + انٹیگریشن | P0 |
TC-ORG-007-01 |
کانفیڈنشل/VIP ٹکٹ میچنگ ایٹریبیوٹ کے بغیر عملے کے لیے (لسٹ + سرچ) نظر انداز ہے؛ رسائی کی کوشش لاگڈ | US-ORG-007 · FR-ORG-010 |
انٹیگریشن + e2e | P0 |
TC-TKT-001-01 |
ٹکٹ داخل کرنے کا ہیپی پاتھ: مکمل متحرک فارم ⇒ حیثیت "نیا"، ٹریکنگ ID SITP-YYYY-<DEPT>-<NNNNNN>، نمائندہ کی پسندیدہ زبان میں تصدیق |
US-TKT-001 · FR-TKT-001/002/004/007 |
انٹیگریشن + e2e | P0 |
TC-TKT-002-01 |
AI آٹو روٹ کانفڈنس اسکور کے ساتھ محکمہ/سیکشن/فوریت تجویز کرتا ہے؛ افسر قبول/تبدیل/مسترد؛ اوورائیڈ اصل تجویز کے ساتھ آڈٹ لاگڈ | US-TKT-002 · US-AI-002 · FR-AI-002/003، FR-TKT-005 |
انٹیگریشن (موکڈ انجن) | P0 |
TC-TKT-004-01 |
محفوظ شدہ مسودہ سیشنز/ڈیوائسز میں برقرار رہتا ہے اور اٹیچمنٹس بحال کرتا ہے؛ اسمارٹ اسسٹنٹ ملتی جلتی حل شدہ ٹکٹس دکھاتا ہے اور ڈسکارڈ پر انحراف ریکارڈ کرتا ہے | US-TKT-004 · FR-TKT-003، FR-AI-007 |
انٹیگریشن + e2e | P1 |
TC-TKT-006-01 |
حل کا ثبوت گیٹ ثبوت اٹیچمنٹ یا حل نوٹ کے بغیر "Resolved" میں منتقلی کو بلاک کرتا ہے؛ بتاتا ہے کہ کیا غائب ہے | US-TKT-006 · FR-TKT-013/014 |
یونٹ + انٹیگریشن | P0 |
TC-TKT-006-02 |
حل شدہ ٹکٹ CSAT ونڈو ختم ہونے پر کمپنی کے بغیر عمل کے آٹو بند ہو جاتا ہے؛ بندش ایونٹ/ٹائم اسٹیمپ/ٹرگر ریکارڈ شدہ | US-TKT-006 · FR-TKT-015 |
انٹیگریشن (ٹائم ٹریول) | P0 |
TC-TKT-006-03 |
کمپنی CSAT ونڈو کے اندر حل مسترد کرتی ہے ⇒ ٹکٹ پچھلے ورکنگ اسٹیٹ پر دوبارہ کھلتا ہے، SLA دوبارہ شروع، عملہ/واچرز مطلع؛ بند ٹکٹ ⇒ اپیل ریکارڈ بنتی ہے اور اگلی اسکیلیشن ٹائر کو بھیجا جاتا ہے | US-TKT-006 · FR-TKT-015/016 |
انٹیگریشن + e2e | P0 |
TC-NOT-003-01 |
دو طرفہ آنے والا: ٹکٹ اطلاع ای میل کا جواب دینا باڈی + اٹیچمنٹس کو تبصرہ کے طور پر شامل کرتا ہے اور عملہ/واچرز کو مطلع کرتا ہے؛ غیر ملتی آنے والا ریویو کے لیے روکا جاتا ہے، مسترد نہیں | US-NOT-003 · FR-NOT-003 |
انٹیگریشن | P1 |
TC-AI-001-01 |
ملٹی لنگول OCR کانفڈنس اسکور کے ساتھ لاطینی/اردو/سندھی اسکرپٹس کے لیے سرچ ایبل ٹیکسٹ نکالتا ہے؛ کم کانفڈنس مینول ریویو کے لیے flaگ کیا جاتا ہے | US-AI-001 · FR-AI-001 |
انٹیگریشن (فکسچر کارپس) | P1 |
TC-AI-006-01 |
MoM اپ لوڈ: OCR + AI اسٹرکچرڈ ایکشن آئٹمز (مالک + ڈیو تاریخ) + افسر کی تصدیق کے لیے خلاصہ نکالتے ہیں؛ تصدیق پر، ہر ایکشن آئٹم سورس ٹکٹ پر ذیلی ٹاسک بن جاتا ہے | US-AI-006 · US-MTG-003/004 · FR-AI-012، FR-MTG-009/012 |
انٹیگریشن + e2e | P1 |
TC-MTG-005-01 |
حساس/VIP MoM شائع کرنا منظوری کے لیے چیئر/DG کو بھیجا جاتا ہے اور منظوری تک آٹو شیئر بلاک؛ منظوری پر، تمام شرکاء کو تسلیم ٹریکنگ کے ساتھ آٹو شیئر | US-MTG-005 · FR-MTG-015/018 |
انٹیگریشن | P0 |
TC-FILE-002-01 |
ClamAV فلگ شدہ اپ لوڈ قرنطینہ ہو جاتی ہے، کبھی ڈاؤن لوڈ نہیں ہو سکتی، محفوظ پیغام کے ساتھ مسترد، اور سیکیورٹی الرٹ + آڈٹ ایونٹ اٹھاتی ہے | US-FILE-002 · FR-FILE-003، NFR-SEC-012 |
انٹیگریشن (سیڈڈ EICAR) | P0 |
TC-INT-001-01 |
NADRA آؤٹیج: کنفیگرڈ ناکامیوں کے بعد سرکٹ بریکر کھلتا ہے، رجسٹریشن "verification pending" میں منتقل، بحالی پر ریٹریز دوبارہ شروع، صفر انہینڈلڈ استثنائات | US-INT-001 · FR-INT-001، NFR-RELY-001/003 |
انٹیگریشن (فالٹ انجیکشن) | P0 |
TC-INT-004-01 |
OIDC SSO عملے کے سائن ان پر group/role کے دعوے لاگو کرتا ہے؛ حساس ایریا رسائی کے لیے step-up 2FA ضروری اور سیشن کو step-up authenticated نشان زد کرتا ہے | US-INT-004 · FR-INT-004، NFR-SEC-005 |
انٹیگریشن + e2e | P0 |
TC-DOC-003-01 |
سائن شدہ خط کی QR تصدیق جاری ہونے + میچنگ فائل ہیش کی تصدیق کرتی ہے؛ ٹیمپرڈ ہیش یا نامعلوم کوڈ ⇒ "تصدیق نہیں ہو سکی" + لاگڈ کوشش | US-DOC-003 · FR-DOC-011 |
انٹیگریشن + e2e | P0 |
TC-TRN-002-01 |
ایگزام گیٹ غیر مصدق افسر کے لیے لائیو ٹکٹ تفویض کو بلاک کرتا ہے؛ امتحان پاس کرنے سے اگلی کوشش پر تفویض غیر مقفل ہو جاتی ہے | US-TRN-002 · FR-TRN-006، US-ORG-007 |
انٹیگریشن | P1 |
TC-FFG-001-01 |
فی محکمہ غیر فعال فیچر فلیگ اس محکمے کے لیے صلاحیت چھپاتا ہے اور دیگر کو فعال چھوڑتا ہے؛ فلیگ سروس ناقابل رسائی ہونے پر کنفیگرڈ فیل سیف ڈیفالٹ ملتا ہے | US-FFG-001/002 · FR-FFG-001/002 |
انٹیگریشن (فالٹ انجیکشن) | P0 |
ترجیح کلید۔ P0 — لانچ بلاکنگ؛ ہر CI پائپ لائن اور ریگریشن میں چلتا ہے۔ P1 — V1 میں ضروری رویہ لیکن کم بلے ریڈیس؛ CI اور ریلیز پہلے ریگریشن میں چلتا ہے۔
سوٹ مکمل ہونے کا نوٹ۔ اوپر 23 کیسز نمائندہ ریڑھ کی ہڈی ہیں۔ مکمل ٹیسٹ مینجمنٹ کیٹلاگ E1–E17 میں ہر قبولیت کے معیار کے لیے کم از کم ایک
TC-<EPIC>-<nnn>-<nn>اخذ کرتا ہے (PRD کے فی ایپک AC شمار کے مطابق)، جس سے V1 لانچ پر تخمیناً 200+ خودکار کیسز ملتے ہیں، فی فیز بڑھتے ہوئے۔[M]ACs کی کوریج لانچ ریڈینس ایگزٹ معیار ہے (§1.2)۔
10. لوکلائزیشن اور RTL ٹیسٹنگ
لوکلائزیشن ایک فرسٹ کلاس ٹیسٹ تشویش ہے، فائنل پاس چیک نہیں، کیونکہ SITP تین قانونی صوبائی زبانیں سنبھالتا ہے جن میں سے دو دائیں سے بائیں ہیں۔ یہ سیکشن NFR-I18N-001…006 کو عملی شکل دیتا ہے۔
10.1 خودکار (ہر PR)
| چیک | ٹول | گیٹ |
|---|---|---|
| لوکیل کیٹلاگ key پیرٹی (EN ↔ UR ↔ SD) | locale-diff |
UR یا SD میں کوئی غائب key پر بلڈ فیل |
| کوئی ہارڈ کوڈڈ یوزر فیسنگ اسٹرنگ نہیں | eslint-plugin-react-intl |
یوزر فیسنگ کمپوننٹ میں ہارڈ کوڈڈ اسٹرنگ پر بلڈ فیل (NFR-I18N-003) |
| گلاسری تعمیل | _glossary.md کے خلاف حسبِ ضرورت چیک |
وارن → ڈرفت حل نہ ہونے پر مسلسل دوسری ریلیز پر فیل (NFR-I18N-006) |
| دوہرا کیلنڈر (گریگورین + ہجری) رینڈرنگ | تاریخ فارمیٹر پر یونٹ ٹیسٹ | اگر کوئی تاریخ بیئرنگ اسکرین صرف ایک کیلنڈر رینڈر کرے تو فیل (NFR-I18N-005) |
10.2 بصری (فی ریلیز)
- Playwright اسکرین شاٹ ڈف اوپر 20 صفحات کے لیے، تینوں لوکیلز میں اور دونوں سمتوں میں (EN کے لیے LTR، UR/SD کے لیے RTL) کیپچر کیا گیا۔ ٹالرینس سے آگے پکسل ڈرفت ریویور منظوری چاہیے۔
- RTL کے لیے میر چیکس: نیویگیشن، آئیکنوگرافی، بریڈ کررم ترتیب، ٹیبل کالم ترتیب، ماڈل کلوز بٹن پلیسمنٹ، اور چارٹ ایکسس سمت سب درست میر کرتے ہیں۔ منطقی CSS پراپرٹیز (
padding-inline-start، وغیرہ) خصوصاً استعمال ہوتی ہیں — ان لائن سمت ہیکس کو لنٹ آؤٹ کیا جاتا ہے (NFR-I18N-002)۔ - فانٹ رینڈرنگ برانڈ ٹائپ سائز پر Noto Nastaliq Urdu اور Noto Naskh Arabic کے لیے تصدیق شدہ۔
10.3 مینول (فی ریلیز)
- تبدیل شدہ اسکرینز کے لیے ایک منظور شدہ اردو ریویور اور ایک منظور شدہ سندھی ریویور کے ذریعے لسانی ریویو، گلاسری کے خلاف لاگڈ۔
- ملٹی لنگول کارپس کے خلاف UR اور SD میں سرچ کوالٹی اسپاٹ چیک (Meilisearch اسکرپٹ ہینڈلنگ)۔
11. رسائی ٹیسٹنگ
رسائی ایک حکومتی سروس کے لیے قانونی سے متعلق ہے اور تینوں زبانوں میں WCAG 2.1 لیول AA پر مقفل ہے (_context.md §2)۔ یہ سیکشن NFR-A11Y-001…004 کو عملی شکل دیتا ہے۔
11.1 خودکار (ہر PR)
- axe-core (
@axe-core/playwrightکے ذریعے) اوپر 20 صفحات پر — زیرو کریٹیکل خلاف ورزیاں ہارڈ گیٹ ہیں۔ - Pa11y اضافی طور پر Docusaurus ڈاکس سائٹ کو اسکین کرتا ہے۔
- Lighthouse CI رسائی کیٹگری ≥ 90 اوپر 10 صفحات پر؛ رجحان فی بلڈ ٹریک کیا جاتا ہے۔
- برانڈ ٹوکن پلیٹ (اجرک انڈگو/مرون) پر تمام ٹیکسٹ سائز پر کلر کنٹراسٹ یونٹ ٹیسٹ —
4.5:1نارمل،3:1بڑا (NFR-A11Y-004)۔
11.2 مینول (فی ریلیز)
- ہر اہم سفر کی کی بورڈ صرف واک تھرو: مرئی فوکس انڈیکیٹر، منطقی ٹیب ترتیب، کوئی کی بورڈ ٹریپ نہیں، skip-to-content لنک موجود (
NFR-A11Y-003)۔ - اہم سفرات پر NVDA + Firefox، JAWS + Edge، VoiceOver + Safari/iOS، TalkBack + Android کے ساتھ اسکرین ریڈر پاس؛ متحرک ریجنز (ٹکٹ تھریڈز، ڈیش بورڈز، چیٹ) پر ARIA سیمینٹکس تصدیق شدہ (
NFR-A11Y-002)۔ - خرابیاں شدت کے مطابق ٹرایج کی گئیں؛ WCAG ناکامیاں ریلیز بلاک کرتی ہیں۔
11.3 فیز-2 (ملتوی، ٹریکڈ)
پاکستان سائن لینگویج سائن ویڈیو گائیڈز (NFR-A11Y-005) اور ڈسلیکسیا دوست + وائس نیویگیشن موڈ (NFR-A11Y-006) فیز-2 کے ہیں اور ان کا اپنا ریلیز گیٹ ہے؛ یہ V1 بلاکرز نہیں ہیں۔
12. سیکیورٹی ٹیسٹنگ
سیکیورٹی ٹیسٹنگ NFR-SEC-001…013 اور /specs/ur/11-security-compliance/ میں کنٹرول کیٹلاگ کی تصدیق کرتی ہے۔ یہ مسلسل آٹومیشن کو آزاد ماہرانہ ریویو کے ساتھ جوڑتی ہے۔
12.1 مسلسل (CI/راتوں رات)
| چیک | ٹول | کیڈنس | گیٹ |
|---|---|---|---|
| SCA (ڈپینڈنسیز، بیس امیجز) | Snyk / Trivy | ہر بلڈ + راتوں رات | کریٹیکل (CVSS ≥ 9) بلاک؛ 30 دن میں ہائی (NFR-SEC-011) |
| ریپو/امیجز میں secrets | gitleaks / trufflehog | ہر PR | کوئی فائنڈنگ بلاک (NFR-SEC-006) |
| DAST بیس لائن | OWASP ZAP | راتوں رات | کریٹیکل/ہائی فائنڈنگز ریلیز بلاک (NFR-SEC-001/008) |
| محفوظ HTTP ہیڈرز | Mozilla Observatory / ہیڈر چیک | ہر ریلیز | ہدف گریڈ A (NFR-SEC-010) |
| TLS کنفیگریشن | SSL Labs مانیٹر | مسلسل | A یا A+ (NFR-SEC-002) |
| اپ لوڈ اینٹی میلویئر | ClamAV ورکر میٹرکس؛ سیڈڈ EICAR ٹیسٹ | سہ ماہی | زیرو انفیکٹڈ فائلز ریلیز (NFR-SEC-012) |
12.2 اجازت میٹرکس ٹیسٹس (خودکار)
ایک پیرامیٹرائزڈ ٹیسٹ میٹرکس ہر role × ہر حساس ایکشن کو چلاتا ہے، یہ دعویٰ کرتے ہوئے کہ allow/deny /specs/ur/04-roles-permissions/ میں اجازت میٹرکس سے میل کھاتا ہے۔ roles: کمپنی بنیادی/ایڈمن/فائلر/ویور/نوٹیفائی؛ حکومتی سیکشن عملہ/افسر/محکمہ ایڈمن/DG/سیکریٹری/سپر ایڈمن؛ پبلک وزٹر۔ ایکشنز: ٹکٹ پڑھیں، تبصرہ لکھیں، حیثیت تبدیل کریں، VIP بند کریں، PII ایکسپورٹ کریں، بنیادی نمائندہ تبدیل کریں، فیچر فلیگ ٹوگل کریں، آڈٹ لاگ پڑھیں، وغیرہ۔ کوئی بے میل بلڈ بلاک کرتا ہے۔
12.3 ABAC کانفیڈنشل/VIP ٹیسٹس (خودکار، 100 % گیٹ)
کانفیڈنشل/VIP رسائی چیک (§5.1) ایک مخصوص کیس میٹرکس کے ساتھ چلایا جاتا ہے: میچنگ ایٹریبیوٹ کے ساتھ اور بغیر ہر عملے کا role، لسٹ ویو، سرچ نتائج، براہ راست URL رسائی، اور API کال میں۔ متوقع نتیجہ غیر میچنگ کیس کے لیے deny + log ہے؛ مرئیت صفر ہونی چاہیے (شمار، سرچ تجاویز، یا مسترد فریق کے آڈٹ ریڈز کے ذریعے کوئی لیکج نہیں)۔
12.4 آزاد پین ٹیسٹ (فی ریلیز گیٹ)
عوامی go-live سے پہلے، اس کے بعد سالانہ، اور کسی بھی سیکیورٹی حساس تبدیلی کے بعد آزاد بیرونی نفوذ جانچ (NFR-SEC-007) ضروری ہے۔ دائرہ کار:
- پورٹل، API، WebSocket گیٹ وے، AI سروس، اور ڈاکس سائٹ۔
- تصدیق، سیشن، اور step-up فلوز (Keycloak)۔
- فائل اپ لوڈ/ڈاؤن لوڈ (ClamAV بائ پاس کوششیں، پاتھ ٹریورسل)۔
- PII حذف و ترمیم باؤنڈری (Restricted کلاس پر کلاؤڈ AI کال کی کوشش)۔
- Webhook سائننگ اور ریپلے۔
- کمپنیوں اور محکموں میں IDOR / ہوریزنٹل پرائیویلیج ایسکلیشن۔
- login/OTP/ٹریکنگ-ID lookup پر ریٹ لمٹنگ اور brute-force مزاحمت۔
کریٹیکل فائنڈنگز 30 دن میں، ہائی 60 دن میں دور کی جاتی ہیں؛ بندش کا ثبوت فیز گیٹ پر ریویو کیا جاتا ہے۔ پین ٹیسٹ رپورٹ ASVS L2 تعمیل کے لیے بنیادی ثبوت ہے (NFR-SEC-001)۔
13. پرفارمنس اور لوڈ ٹیسٹنگ
پرفارمنس ہداف NFR-PERF-001…011 میں مقدار میں بیان کیے گئے ہیں؛ یہ سیکشن بتاتا ہے کہ ان کی تصدیق کیسے کی جاتی ہے۔ تمام پرفارمنس ٹیسٹس اسٹیجنگ ماحول کے خلاف چلتے ہیں جو پروڈکشن ٹاپالوجی (NFR-PORT-001) کی عکاسی کرتا ہے حقیقت پسندانہ کارڈینلٹی پر (§7.4)۔
13.1 ہدف خلاصہ (دستاویز 03 سے)
| تشویش | ہدف | NFR |
|---|---|---|
| API read p95 | ≤ 300 ms | PERF-001 |
| API write p95 | ≤ 800 ms (async AI/OCR کو چھوڑ کر) | PERF-002 |
| LCP (اوپر 10 صفحات، 4G موبائل) | ≤ 2.5 s | PERF-003 |
| AI خلاصہ p95 | ≤ 15 s | PERF-004 |
| OCR فی صفحہ p95 | ≤ 30 s کلاؤڈ / ≤ 60 s آن پریم | PERF-005 |
| چیٹ پیغام e2e p95 | ≤ 500 ms سنگل انسٹنس / ≤ 800 ms کراس انسٹنس | PERF-006 |
| DB query p95 | ≤ 100 ms؛ slow-query تھریشولڈ 500 ms | PERF-007 |
| متوازی یوزرز | 5,000 authenticated، ≤ 1 % 5xx [TBD/confirm] |
PERF-008 |
| سرچ p95 (اوپر 10 شکلیں، 3 اسکرپٹس) | ≤ 250 ms | PERF-010 |
| اطلاع fan-out p95 | ≤ 30 s فوری / ≤ 5 min ڈائجسٹ | PERF-011 |
13.2 k6 منظرنامے
- سموک — فی ریلیز؛ 50 ورچول یوزرز، 5 min؛ اوپر read/write پاتھس؛ sanity۔
- لوڈ — فی ریلیز؛ V1 concurrency ہدف (
PERF-008) تک rimپ اور 30 min ہولڈ؛ p95 لیٹینسی ہداف اور ≤ 1 % 5xx کا دعویٰ۔ - سوک — فی ریلیز + ڈیمانڈ پر؛ 60 min کے لیے ہدف کا 110 %؛ میموری لیکس، کنکشن پول تھکاوٹ، قطار بیک لاگ نمو کا پتہ لگائیں (
PERF-008پیمائش کا طریقہ)۔ - اسپائک — ڈیمانڈ پر؛ < 30 s میں ہدف کا 2×؛ سرکٹ بریکرز اور گریس فل ڈیگریڈیشن ہولڈ کی تصدیق (
NFR-AVAIL-003)۔ - ملٹی لنگول سرچ — سہ ماہی؛ Meilisearch (
PERF-010) کے خلاف 100-query EN/UR/SD سوٹ۔
13.3 AI/OCR ٹائم آؤٹ اور گریس فل ڈیگریڈیشن
- AI خلاصہ اور OCR جابس کا دعویٰ ہے کہ وہ اپنے p95 سیلنگز (
PERF-004/005) کی تعمیل کرتے ہیں اور صاف طور پر ٹائم آؤٹ ہوتے ہیں — ایک رکا ہوا انجن ریکوئسٹ پاتھ کو بلاک نہیں کرنا چاہیے (قطار لیولڈ آرکیٹیکچر،NFR-SCAL-002)۔ - فالٹ انجیکشن سوٹ (فی ریلیز): ہر بیرونی ڈپینڈنسی (AI پرووائیڈر، OCR انجن، NADRA/SECP/FBR/SRB/PSEB/e-Office، Mailjet/SMS/واٹس ایپ) کو باری باری kill کیا جاتا ہے؛ اہم یوزر سفرات (داخل، ٹریک، تبصرہ، حل، بند) کو اب بھی پاس ہونا چاہیے، جس میں ڈپینڈنٹ صلاحیت واضح طور پر "عارضی طور پر دستیاب نہیں" نشان زد ہو (
NFR-AVAIL-003،NFR-RELY-001)۔
14. ریگریشن سٹریٹیجی
ریگریشن ان رویوں کی حفاظت کرتا ہے جو پہلے سے کام کرتے ہیں جبکہ نیا کوڈ شپ ہوتا ہے۔ SITP ریگریشن رسک ویٹڈ ہے، "ہمیشہ سب کچھ چلائیں" نہیں۔
| سوٹ | ٹرگر | مواد |
|---|---|---|
| فی PR ریگریشن | ہر پل ریکوئسٹ | یونٹ + انٹیگریشن + e2e اسموک (EN، اوپری سفرات) + §9 سے P0 TCs |
| راتوں رات ریگریشن | main پر راتوں رات |
تینوں لوکیلز + LTR/RTL میں مکمل e2e، ZAP DAST، کنٹریکٹ ٹیسٹس |
| ریلیز پہلے ریگریشن | ہر ریلیز کینڈیڈیٹ | راتوں رات سوٹ + k6 لوڈ + رسائی آڈٹ + مکمل §9 کیٹلاگ (P0 + P1) |
| اثر پر مبنی ذیلی سیٹ | تبدیل شدہ ماڈیول تجزیہ سے خودکار چنا گیا | چھوئے گئے ماڈیول(s) اور ان کے ڈپینڈنٹس کے لیے ٹیگڈ ٹیسٹس پہلے چلتے ہیں؛ مکمل سوٹ بیک اسٹاپ کے طور پر چلتا ہے |
ٹیگنگ۔ ہر ٹیسٹ کے ساتھ ٹیگ کیا جاتا ہے: ماڈیول کوڈ (جیسے، TKT، ORG)، ترجیح (P0/P1/P2)، لوکیل (EN/UR/SD)، سمت (LTR/RTL)، اور اصل US-/FR- IDs۔ یہ ہاٹ فکس برانچز پر تیز، ہدف ریگریشن کو قابل بناتا ہے۔
بائسیکشن۔ ایک ریگریشن جو main میں آتی ہے بائسیکٹیبل ہے کیونکہ راتوں رات سوٹ فی کمٹ گرین/ریڈ سگنل دیتی ہے؛ P0 ریگریشنز کے لیے خطا کار کمٹ اسی کاروباری دن میں ریورٹ کر دیا جاتا ہے۔
15. UAT پلان
یوزر ایکسیپٹنس ٹیسٹنگ وہ جگہ ہے جہاں پائلٹ محکمے اور IT کمپنیوں کا ایک گروہ اس بات کی تصدیق کرتا ہے کہ سسٹم حقیقی کام کے لیے کام کرتا ہے، صرف ٹیسٹ سوٹ کے لیے نہیں۔ UAT ہر فیز کے لائیو ہونے سے پہلے ہیومن گیٹ ہے (/specs/ur/14-roadmap-release/ بمطابق)۔
15.1 پائلٹ اسٹرکچر
| پائلٹ | شرکاء | دائرہ کار | مدت | ایگزٹ مالک |
|---|---|---|---|---|
| پائلٹ 1 — S&ITD اندرونی | S&ITD سہولت ڈیسک عملہ (5–10) | صرف اندرونی ٹکٹس پر ٹکٹ لائف سائیکل اینڈ ٹو اینڈ | 2 ہفتے | S&ITD سیکریٹری |
| پائلٹ 2 — سنگل محکمہ | ایک لائن محکمہ (جیسے، لیبر یا SRB) + 5 IT کمپنیاں | حقیقی محکمے کے خلاف حقیقی کمپنیوں کے حقیقی ٹکٹس | 4 ہفتے | متعلقہ محکمہ سیکریٹری + S&ITD |
| پائلٹ 3 — ملٹی محکمہ | 3–5 محکمے + 20 IT کمپنیاں | TRI میٹنگ + MoM سمیت مکمل سہ فریقی فلوف | 4 ہفتے | S&ITD سیکریٹری |
| پائلٹ 4 — پبلک لانچ ریمپ | تمام رجسٹرڈ کمپنیوں کے لیے اوپن بیٹا | حجم، چینل مکس، حقیقی لوڈ کے تحت AI فیچرز | 2 ہفتے | S&ITD سیکریٹری + MAAHIR |
15.2 UAT اینٹری معیارات
- ریلیز پہلے ریگریشن (§14) سبز۔
- پائلٹ ڈیٹا سیڈڈ؛ پائلٹ یوزرز تربیت یافتہ (ایپک E15 تربیت بمطابق)۔
- §16 کے مطابق یا اس کے نیچے کی جانچ پہچان خرابیاں (کوئی کھلا P0 نہیں؛ ≤ 5 کھلے P1)۔
- UAT اسکرپٹس (فی پائلٹ) پائلٹ لیڈ کے ذریعے ریویو شدہ۔
15.3 UAT ایگزٹ معیارات (دستخط)
- دائرہ کار میں 100 %
[M]قبولیت کے معیارات پائلٹ کو پاس دکھائے گئے۔ - فی پائلٹ گروہ، فی زبان سسٹم استعمالیٹی سکیل (SUS) ≥ 70 (
NFR-USA-006)۔ - پائلٹ ٹکٹس پر CSAT اکٹھا اور ریویو کیا گیا۔
- کوئی کھلا P0 خرابی نہیں؛ کھلی P1 خرابیوں کا ایک قبول شدہ اصلاحی پلان تاریخ کے ساتھ ہے۔
- پائلٹ محکمہ سیکریٹری اور S&ITD کی طرف سے دستخط شدہ UAT رپورٹ۔
15.4 فیڈبیک لوپ
پائلٹ فائنڈنگز uat- لیبل کے ساتھ خرابی ٹریکر (§16) میں بہتی ہیں؛ پیٹرنز (جیسے، کسی فلوف میں بار بار الجھن) /specs/ur/10-ux-sitemap-flows/ اور KB/SOPs (ایپک E10) میں واپس بہتے ہیں۔
16. خرابی کا انتظام
| شدت | تعریف | ہدف حل | ریلیز اثر |
|---|---|---|---|
| P0 — کریٹیکل | بنیادی سفر بلاک؛ ڈیٹا نقصان؛ سیکیورٹی/پرائیویسی خلاف ورزی؛ پیسے/SLA نمائش | اسی کاروباری دن؛ ہاٹ فکس | ریلیز بلاک |
| P1 — ہائی** | بڑی فیچر کوئی ورک اراؤنڈ کے بغیر ٹوٹی، یا [M] AC پر غلط رویہ |
1 اسپرنٹ کے اندر | منصوبے کے ساتھ قبول نہ ہونے تک ریلیز بلاک |
| P2 — میڈیم | فیچر ورک اراؤنڈ کے ساتھ ٹوٹی، یا [S]/[C] AC پر غلط رویہ |
2 اسپرنٹس کے اندر | لیڈ کی صوابدید پر ریلیز |
| P3 — لو | کاسمیٹک، معمولی UX، دستاویزات | بیک لاگ | کوئی ریلیز اثر نہیں |
ورک فلوف۔ ہر خرابی کے ساتھ لاگ کیا جاتا ہے: دہرا قابل اقدامات، متوقع بمقابلہ حقیقی، ماحول، لوکیل، ناکام TC- (یا "no TC" → نیا TC متحرک کرتا ہے)، شدت، اور اسٹیجنگ/پروڈکشن لاگ سے trace_id۔ خرابیوں کی ٹرایج UAT کے دوران روزانہ اور دیگر صورت میں ہفتہ وار کی جاتی ہے۔ ایک خرابی جس کے لیے کوڈ تبدیلی ضروری تھی اسے ایک ٹیسٹ کیس ضرور شامل یا اپ ڈیٹ کرنا چاہیے جو اسے پکڑ لیتا — لوپ بند کرنا اور ریگریشن سوٹ بڑھانا (NFR-RELY-004 طرزِ خیال)۔
فلیکینیس پالیسی۔ ایک فلیکی ٹیسٹ ایک خرابی ہے۔ اسے ایک واقعہ کے اندر قرنطینہ کیا جاتا ہے اور یا تو ٹھیک (تعین) یا ایک اسپرنٹ کے اندر دوبارہ لکھا جاتا ہے؛ یہ ایک معلوم غیر مستحکم گیٹ کے طور پر نہیں رہتا۔
17. ٹریس ایبلٹی
ٹریس ایبلٹی دو طرفہ ہے اور یہ آڈٹ ثبوت ہے کہ ہر شیپ شدہ صلاحیت تصدیق شدہ ہے اور ہر ٹیسٹ کسی دستاویز کردہ وجہ سے موجود ہے۔ زنجیر یہ ہے:
FR (
FR-<MOD>-<nnn>) → US (US-<EPIC>-<nnn>) → AC (GherkinScenario) → TC (TC-<EPIC>-<nnn>-<nn>) → ٹیسٹ لیئر + NFR ہدف۔
17.1 نمائندہ ٹریس ایبلٹی اقتباس
| FR | US | AC (Scenario) | TC | لیئر | NFR |
|---|---|---|---|---|---|
FR-TKT-001/002/004 |
US-TKT-001 |
کامیاب جمع کرائی بامعنی ٹریکنگ ID جنریٹ کرتی ہے | TC-TKT-001-01 |
انٹیگریشن + e2e | PERF-002 |
FR-TKT-013/014 |
US-TKT-006 |
حل کے لیے ثبوت اور نوٹ ضروری | TC-TKT-006-01 |
یونٹ + انٹیگریشن | AUD-001 |
FR-TKT-015 |
US-TKT-006 |
CSAT ونڈو کے بعد آٹو بند | TC-TKT-006-02 |
انٹیگریشن | PERF-011 |
FR-TKT-015/016 |
US-TKT-006 |
کمپنی مسترد / اپیل | TC-TKT-006-03 |
انٹیگریشن + e2e | — |
FR-ORG-006/007 |
US-ORG-005 |
نگرانی roles فی اسکیلیشن ٹائر مطلع | TC-ORG-005-01 |
یونٹ + انٹیگریشن | PERF-011 |
FR-ORG-010 |
US-ORG-007 |
کانفیڈنشل/VIP ایٹریبیوٹ پر مبنی رسائی نافذ | TC-ORG-007-01 |
انٹیگریشن + e2e | AUD-004، PRIV-003 |
FR-NOT-003 |
US-NOT-003 |
ای میل جواب ٹکٹ میں شامل | TC-NOT-003-01 |
انٹیگریشن | SEC-009 |
FR-AI-002/003 |
US-TKT-002/US-AI-002 |
AI کانفڈنس کے ساتھ روٹنگ تجویز؛ اوورائیڈ لاگڈ | TC-TKT-002-01 |
انٹیگریشن | OBS-007 |
FR-AI-001 |
US-AI-001 |
OCR ہر اسکرپٹ میں ٹیکسٹ نکالتا ہے | TC-AI-001-01 |
انٹیگریشن | PERF-005 |
FR-AI-012 |
US-AI-006/US-MTG-003/004 |
MoM اپ لوڈ اسٹرکچرڈ ایکشن آئٹمز دیتا ہے | TC-AI-006-01 |
انٹیگریشن + e2e | PERF-004/005 |
FR-MTG-015/018 |
US-MTG-005 |
حساس MoM کو منظوری ضروری | TC-MTG-005-01 |
انٹیگریشن | AUD-004 |
FR-FILE-003 |
US-FILE-002 |
انفیکٹڈ فائل قرنطینہ | TC-FILE-002-01 |
انٹیگریشن | SEC-012 |
FR-INT-001 |
US-INT-001 |
NADRA آؤٹیج گریس فللی ڈیگریڈ | TC-INT-001-01 |
انٹیگریشن | RELY-001/003 |
FR-INT-004 |
US-INT-004 |
OIDC SSO + step-up 2FA | TC-INT-004-01 |
انٹیگریشن + e2e | SEC-004/005 |
FR-DOC-011 |
US-DOC-003 |
QR تصدیق ٹیمپرڈ خط مسترد | TC-DOC-003-01 |
انٹیگریشن + e2e | — |
FR-TRN-006 |
US-TRN-002 |
ایگزام گیٹ لائیو تفویض بلاک | TC-TRN-002-01 |
انٹیگریشن | — |
FR-FFG-001/002 |
US-FFG-001/002 |
فلیگ غیر فعال + فیل سیف ڈیفالٹ | TC-FFG-001-01 |
انٹیگریشن | AVAIL-003 |
FR-PUB-001/002 |
US-PUB-001 |
تمام پبلک صفحات 3 لوکیلز + RTL میں | TC-PUB-001-01 |
e2e + i18n | I18N-001/002 |
17.2 قبولیت معیارات کی کوریج
لانچ ریڈینس کے لیے ضروری ہے کہ /specs/ur/01-prd/ میں ہر [M] قبولیت کے معیار کے لیے کم از کم ایک کامیاب خودکار ٹیسٹ کیس ہو (§1.2)۔ QA ٹیسٹ مینجمنٹ ٹول فی ریلیز ٹریس ایبلٹی میٹرکس رپورٹ تیار کرتا ہے جو دکھاتی ہے کہ، ہر ایپک کے لیے، کل ACs کے مقابلے میں passing-TCs کے ساتھ ACs کا تناسب؛ [M] ACs کے لیے 100 % سے کم ویلیو ریلیز گیٹ بلاک کرتی ہے۔
17.3 کراس دستاویز حوالہ جات
- فنکشنل ریquirements:
/specs/ur/02-functional-reqs/۔ - پرفارمنس/سیکیورٹی/a11y سوٹس کے ذریعے تصدیق شدہ non-functional ہداف:
/specs/ur/03-non-functional-reqs/۔ - ٹیسٹ کے تحت ٹکٹ ورک فلوف اور اسٹیٹ ٹرانزیشنز:
/specs/ur/06-ticket-workflow/۔ - §12 کے ذریعے تصدیق شدہ سیکیورٹی کنٹرول کیٹلاگ:
/specs/ur/11-security-compliance/۔ - انٹیگریشن ٹیسٹس کے لیے ایڈاپٹر موک:
/specs/ur/08-integrations-spec/۔ - کنٹریکٹ ٹیسٹس کے لیے API/Webhook کنٹریکٹس:
/specs/ur/12-api-contract/۔
18. RACI خلاصہ
| سرگرمی | ذمہ دار | جواب دہ | مشورہ لیا گیا | مطلع کیا گیا |
|---|---|---|---|---|
| یونٹ اور انٹیگریشن سوٹس | MAAHIR انجینئرنگ | MAAHIR QA لیڈ | S&ITD پروڈکٹ | S&ITD سیکریٹری |
| e2e + پرفارمنس + a11y آٹومیشن | MAAHIR QA | MAAHIR QA لیڈ | انجینئرنگ، UX | S&ITD |
| آزاد پین ٹیسٹ | بیرونی سیکیورٹی فرم | S&ITD سیکریٹری | MAAHIR، Server4Sale | CII/CERT-PK رابطہ |
| مینول a11y / اسکرین ریڈر آڈٹ | MAAHIR QA + a11y کنسلٹنٹ | MAAHIR QA لیڈ | UX | S&ITD |
| لسانی ریویو (UR/SD) | منظور شدہ ریویورز | S&ITD پروڈکٹ | MAAHIR | — |
| UAT ایگزیکیوشن | پائلٹ محکمہ عملہ + IT کمپنیاں | پائلٹ محکمہ سیکریٹری | MAAHIR QA | S&ITD سیکریٹری |
| خرابی ٹرایج | MAAHIR QA لیڈ | MAAHIR ڈیلیوری لیڈ | انجینئرنگ | S&ITD پروڈکٹ |
| ریلیز دستخط | MAAHIR ڈیلیوری لیڈ | S&ITD سیکریٹری | اوپر تمام | عوام (اسٹیٹس پیج) |
19. فیز ہم آہنگی
یہ سٹریٹیجی /specs/ur/14-roadmap-release/ میں روڈ میپ کے مطابق بڑھتے ہوئے لاگو کی جاتی ہے:
| فیز | ٹیسٹ فوکس |
|---|---|
| فیز 0 — دریافت | بنیادات کو وائر کریں: یونٹ/انٹیگریشن ہارنیس، کوریج گیٹ، CI گیٹس، locale-diff، axe/Pa11y، SCA/secrets |
| فیز 1 — MVP بنیاد | E1–E4 + E7 کے لیے مکمل یونٹ + انٹیگریشن + e2e؛ رسائی؛ i18n (EN+UR+SD)؛ سیکیورٹی آٹومیشن؛ پائلٹ 1–2 |
| فیز 2 — AI + سندھی + SLA | AI/OCR سوٹ، پرفارمنس (PERF-004/005/006)، قابلِ اعتماد/فالٹ انجیکشن، میوٹیشن ٹیسٹنگ، پائلٹ 3 |
| فیز 3 — اپیل، انٹیگریشنز، سیکیورٹی | ایڈاپٹر انٹیگریشن ٹیسٹس، مکمل پین ٹیسٹ، کنٹریکٹ ٹیسٹس، پائلٹ 4 / پبلک ریمپ |
| فیز 4 — موبائل، اعلی | PWA آف لائن ٹیسٹس، موبائل ڈیوائس میٹرکس، Compose→K8s ٹیبل ٹاپ |
20. کھلے اشیاء [TBD/confirm]
| شے | مالک | فیصلہ ضروری بذریعہ |
|---|---|---|
| ٹیسٹ مینجمنٹ ٹول انتخاب (TestRail بمقابلہ Zephyr Scale) | MAAHIR QA لیڈ | فیز-0 گیٹ |
| میوٹیشن ٹیسٹنگ (Stryker) شمولیت دائرہ کار | MAAHIR انجینئرنگ | فیز-2 گیٹ |
| پرفارمنس ٹیسٹس کے لیے انونیمائزڈ پروڈکشن نمونہ پائپ لائن | MAAHIR آپس + S&ITD | فیز-2 گیٹ |
| آزاد پین ٹیسٹ وینڈر انتخاب | S&ITD سیکریٹری | فیز-1 گیٹ |
| UAT پائلٹ محکمہ شناختیں (پائلٹ 2–4) | S&ITD پروڈکٹ | فیز-1 گیٹ |
ان اشیاء کو /specs/ur/14-roadmap-release/ میں بندش تک ٹریک کیا جاتا ہے اور جیسے جیسے فیصلے ہوتے ہیں اس دستاویز میں واپس ظاہر کیا جاتا ہے۔
دستاویز کا اختتام۔