Sindh IT Portal — Facilitation DeskSpecification documents
Englishاردوسنڌي
← All documents

ٹیسٹ سٹریٹیجی

سندھ آئی ٹی پورٹل — سہولت ڈیسک (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-...) → قبولیت کا معیار (Gherkin Scenario) → ٹیسٹ کیس (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. ٹیسٹنگ کے اصول

  1. بائیں کی طرف شفٹ کریں۔ یونٹ لیئر پر خرابیوں کو ٹھیک کرنا سب سے سستا ہے۔ ہر PR اپنے ٹیسٹس لاتا ہے؛ کچھ بھی بغیر تصدیق کے main تک نہیں پہنچتا (NFR-MAINT-003)۔
  2. رویے کا ٹیسٹ کریں، نہ کہ عمل درآمد کا۔ ٹیسٹ Gherkin منظرناموں سے قابلِ مشاہدہ نتائج کا دعویٰ کرتے ہیں؛ وہ پرائیویٹ طریقہ کے دستخط یا DB کالم کے ناموں کا دعویٰ نہیں کرتے۔ یہ ماڈیولر مونولیتھ کو ریفیکٹر کے قابل رکھتا ہے (NFR-MAINT-001)۔
  3. Gherkin معاہدہ ہے۔ PRD میں ایک Scenario: واحد حقیقت کا منبع ہے: یہ اسٹیک ہولڈرز کے لیے ارادے کو دستاویز کرتا ہے اور Cucumber/Playwright کے اسٹیپ بائنڈنگز کے ذریعے آٹومیشن چلاتا ہے (§8 دیکھیں)۔ کوئی متوازی، مختلف "ٹیسٹ اسپیک" نہیں ہے۔
  4. گہرائی میں دفاع۔ سیکیورٹی، پرائیویسی، رسائی، اور i18n سنگل گیٹ چیکس نہیں ہیں؛ ہر ایک کی تصدیقی ایک خودکار تہہ (CI) پلس ایک مینول/ماہرانہ تہہ (فی ریلیز آڈٹ) سے ہوتی ہے۔ §10–§12 دیکھیں۔
  5. پہلے تعین۔ فلیکی ٹیسٹس کو P1 خرابیوں کے طور پر Treat کیا جاتا ہے؛ ایک ٹیسٹ جسے تعین بنایا نہیں جا سکتا اسے قرنطینہ کیا جاتا ہے اور ایک اسپرنٹ کے اندر دوبارہ لکھا جاتا ہے (QA پر لاگو NFR-RELY-004 طرزِ خیال)۔
  6. پروڈکشن حقیقت پسندی۔ پرفارمنس، لوکلائزیشن، اور گریس فل ڈیگریڈیشن ٹیسٹس ایک اسٹیجنگ ماحول کے خلاف چلتے ہیں جو پروڈکشن ٹاپالوجی کی عکاسی کرتا ہے (NFR-PORT-001، NFR-SCAL-001) حقیقت پسندانہ کارڈینلٹی پر (§7)۔

3. ٹیسٹنگ پیرامڈ

SITP کلاسک ٹیسٹنگ پیرامڈ پر عمل کرتا ہے: ایک وسیع، تیز یونٹ بیس؛ ایک تنگ انٹیگریشن بینڈ؛ ایک چھوٹا، سست اینڈ ٹو اینڈ (e2e) چوٹی؛ اور ایک پتلی مینول / UAT تہہ جو ایکسپلوریٹری ٹیسٹنگ، رسائی آڈٹ، سیکیورٹی پین ٹیسٹ، اور اسٹیک ہولڈر قبولیت کے لیے مخصوص ہے۔ یہ شکل جان بوجھ کر رکھی گئی ہے — وسیع اکثریت دعووں کی سب سے سستی، تیز ترین تہہ پر رہتی ہے۔

flowchart TB classDef base fill:#3b3b6d,color:#fff,stroke:#1f1f3d classDef integ fill:#5b2a4a,color:#fff,stroke:#3d1a33 classDef e2e fill:#7a1f2b,color:#fff,stroke:#5a1420 classDef man fill:#1f4d3a,color:#fff,stroke:#143326 U["Unit (~70% of assertions)<br/>Vitest / Jest · pure functions, services, mappers, validators<br/>ms · run every PR"] I["Integration (~20%)<br/>NestJS DI + Testcontainers (MariaDB, Redis, MinIO)<br/>sub-second · run every PR"] E["End-to-end (~7%)<br/>Playwright · critical journeys across portal + API<br/>seconds · nightly + per-release smoke"] M["Manual / UAT (~3%)<br/>Exploratory, a11y screen-reader audit, pen-test, pilot acceptance<br/>per-release + per-phase"] U --> I --> E --> M class U base class I integ class E e2e class M man

تحریری وضاحت۔ پیرامڈ کو نیچے سے اوپر پڑھا جاتا ہے: سب سے وسیع تہہ (یونٹ) سب سے زیادہ دعوے رکھتی ہے اور ہر پل ریکوئسٹ پر ملی سیکنڈ میں چلتی ہے۔ ہر اگلی تہہ کم دعوے رکھتی ہے، چلانے کے لیے زیادہ لاگت آتی ہے، اور کم بار بار چلتی ہے۔ بیس اس بات کی تصدیق کرتی ہے کہ ہر ماڈیول کا خالص منطق — 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) کے ذریعے نافذ کیا جاتا ہے۔ ایک ڈپلائے جو گیٹ کو چھوڑ دے وہ ایک واقعہ ہے۔

flowchart LR classDef ok fill:#1f4d3a,color:#fff,stroke:#143326 classDef gate fill:#3b3b6d,color:#fff,stroke:#1f1f3d classDef sec fill:#7a1f2b,color:#fff,stroke:#5a1420 classDef rel fill:#5b2a4a,color:#fff,stroke:#3d1a33 PR["PR opened"] --> L["Lint<br/>(ESLint, Prettier, Ruff)"] L --> T["Typecheck<br/>(tsc --noEmit, mypy)"] T --> U["Unit tests<br/>+ coverage gate"] U --> I["Integration tests<br/>(Testcontainers)"] I --> CT["Contract<br/>(OpenAPI diff, Pact)"] CT --> B["Build<br/>(containers, bundles)"] B --> SCA["SCA + secrets<br/>(Snyk/Trivy, gitleaks)"] SCA --> A11Y["Accessibility<br/>(axe, Pa11y, Lighthouse)"] A11Y --> I18N["i18n / RTL<br/>(locale parity, visual)"] I18N --> E2E["e2e smoke<br/>(Playwright, top journeys)"] E2E --> SBOM["License + SBOM<br/>(Syft, license-check)"] SBOM --> MR{"Review<br/>approved?"} MR -->|"yes"| MERGE["Merge to main"] MERGE --> FULL["Nightly full suite:<br/>ZAP DAST, k6 load, full e2e, mutation"] FULL --> REL["Release gate:<br/>pen-test, manual a11y audit, UAT sign-off"] REL --> DEPLOY["Deploy (zero-downtime)"] class L,T,U,I,CT,B gate class SCA,SCA sec class A11Y,I18N ok class E2E,SBOM gate class FULL,REL rel

تحریری وضاحت۔ ایک پل ریکوئسٹ بائیں جانب پائپ لائن میں داخل ہوتی ہے اور مرج ہونے سے پہلے بائیں سے دائیں ہر گیٹ پاس کرنا چاہیے۔ لنٹ اور ٹائپ چیک سب سے سستے کیچز ہیں اور پہلے چلتے ہیں۔ کوریج گیٹ کے ساتھ یونٹ ٹیسٹس اس کے بعد آتے ہیں، پھر انٹیگریشن ٹیسٹس جو 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-ٹیمپلیٹ اوورائیڈز) کو چلایا جا سکے:

7.3 ملٹی لنگول کارپس (3 لوکیلز)

ہر ٹیکسٹ بیئرنگ فکسچر EN، UR، اور SD میں موجود ہے تاکہ OCR، سرچ، AI ترجمہ، اطلاع رینڈرنگ، اور RTL لے آؤٹ تمام حقیقی اسکرپٹ مواد کے خلاف چلائے جائیں:

7.4 ڈیٹا حفاظت کے اصول


8. Gherkin منظرنامے بطور خودکار اسپیکس دوبارہ استعمال

/specs/ur/01-prd/ میں ایک Scenario: بلاک کوئی دستاویز نہیں ہے جسے پھر الگ ٹیسٹ اسکرپٹ میں ترجمہ کیا جائے۔ یہ قابلِ عمل اسپیسفیکیشن ہے۔ Gherkin متن دو طریقوں سے آٹومیشن سے باندھا جاتا ہے:

  1. Cucumber (PyTest کے لیے Behave / TS کے لیے @cucumber/cucumber) — لفظی Gherkin Given/When/Then اسٹیپس اسٹیپ ڈیفینیشن فنکشنز سے باندھے جاتے ہیں۔ منظرنامے کا متن اور ٹیسٹ ایک ہی آرٹیفیکٹ ہیں؛ منظرنامہ تبدیل کرنے سے ٹیسٹ تبدیل ہوتا ہے۔
  2. 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 بصری (فی ریلیز)

10.3 مینول (فی ریلیز)


11. رسائی ٹیسٹنگ

رسائی ایک حکومتی سروس کے لیے قانونی سے متعلق ہے اور تینوں زبانوں میں WCAG 2.1 لیول AA پر مقفل ہے (_context.md §2)۔ یہ سیکشن NFR-A11Y-001…004 کو عملی شکل دیتا ہے۔

11.1 خودکار (ہر PR)

11.2 مینول (فی ریلیز)

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) ضروری ہے۔ دائرہ کار:

کریٹیکل فائنڈنگز 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 منظرنامے

13.3 AI/OCR ٹائم آؤٹ اور گریس فل ڈیگریڈیشن


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 اینٹری معیارات

15.3 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 (Gherkin Scenario) → 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 کراس دستاویز حوالہ جات


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/ میں بندش تک ٹریک کیا جاتا ہے اور جیسے جیسے فیصلے ہوتے ہیں اس دستاویز میں واپس ظاہر کیا جاتا ہے۔


دستاویز کا اختتام۔