فائدہ:
- میٹرکس جیسے لائن، برانچ، اور کنڈیشن کوریج کو نقشہ کے طور پر پڑھنے کی اہلیت، اعتماد نہیں، اور یہ سمجھنا کہ اعلی کوریج چھدم اعتماد دے سکتی ہے۔
- ضرورت کی گنجائش کو کوڈ کے دائرہ کار کے آگے ڈالنے اور مصنوعی ذہانت کے ساتھ ٹریس ایبلٹی گیپس کو مرئی بنانے کی صلاحیت
- فارمولے کے خطرے کے ساتھ خصوصیات کو سکور کرنے کی اہلیت = امکان × اثر، سب سے زیادہ خطرے کے لیے براہ راست محدود جانچ کی کوشش، اور دستاویز جان بوجھ کر دائرہ سے باہر
آپ ہمیشہ کے لیے ہر سافٹ ویئر کی جانچ نہیں کر سکتے۔ وقت اور وسائل محدود ہیں۔ تو اصل سوال یہ ہے کہ: محدود جانچ کی کوشش کہاں کی جائے؟ دو تصورات اس سوال کا جواب دیتے ہیں۔ ٹیسٹ کوریج—ایک میٹرک جو اس بات کی پیمائش کرتا ہے کہ کوڈ یا تقاضوں کا کتنا حصہ ٹیسٹوں کے ذریعے چھو لیا گیا ہے—اس چیز کی نمائندگی کرتا ہے جس کی جانچ کی جا رہی ہے۔ خطرے پر مبنی جانچ - کسی علاقے کے بگڑنے کے امکان اور اس کے خراب ہونے پر اس سے ہونے والے نقصان کے مطابق ٹیسٹ کی ترجیح کا تعین کرنے کا طریقہ - کوشش کو سب سے زیادہ خطرے کی طرف لے جاتا ہے۔ مصنوعی ذہانت (AI) دونوں میں ایک طاقتور تجزیہ پارٹنر ہے: یہ کوریج کے فرق کو ظاہر کرتا ہے، خطرے کے علاقوں کی تجویز کرتا ہے۔ لیکن مرکزی انتباہ باقی ہے: اے آئی کو دیکھنے والے دائرہ کار کی تعداد گمراہ کن ہو سکتی ہے۔ یہاں تک کہ 100% قطار کی کوریج ان ٹیسٹوں کے ساتھ حاصل کی جا سکتی ہے جو کسی چیز کی تصدیق نہیں کرتے ہیں۔ آپ کا کام دائرہ کار کو نقشہ کے طور پر پڑھنا ہے، ٹرسٹ نہیں۔
کوریج میٹرکس کو صحیح طریقے سے پڑھنا
دائرہ کار کی کئی اقسام ہیں، اور سبھی یکساں معنی خیز نہیں ہیں:
- لائن کوریج: کوڈ کی کتنی لائنوں کو کم از کم ایک بار عمل میں لایا گیا تھا۔ سب سے عام لیکن کمزور ترین معیار؛ صرف اس وجہ سے کہ ایک لائن کام کرتی ہے اس بات کا ثبوت نہیں ہے کہ یہ صحیح طریقے سے برتاؤ کرتی ہے۔
- برانچ کوریج: آیا ہر اگر برانچ (سچ اور غلط دونوں) کا تجربہ کیا گیا ہے۔ لائن سے زیادہ معنی خیز۔
- کنڈیشن کوریج: ہر ذیلی شرط کو پیچیدہ حالات میں الگ الگ جانچنا۔
- پاتھ کوریج: کوڈ کے اندر منطقی راستوں کے امتزاج۔ یہ سب سے زیادہ جامع لیکن عملی طور پر مکمل طور پر پہنچنا مشکل ہے۔
احتیاط: کوریج فیصد ایک "معیار سکور" نہیں ہے. 100% قطار کی کوریج آپ کو بتاتی ہے کہ قطاریں کام کر رہی ہیں۔ ایسا نہیں ہے کہ یہ صحیح نتیجہ پیدا کرتا ہے (یونٹ 1 میں سیوڈو پاس)۔ دائرہ کار کو سوال کے جواب کے طور پر استعمال کریں "میں نے کبھی کہاں نہیں دیکھا"، اس یقین دہانی کے طور پر نہیں کہ "سب کچھ جانچ لیا گیا ہے"۔
دائرہ اندھے مقامات
کوریج میٹرکس صرف اس بات کی پیمائش کرتی ہے کہ کوڈ کا کتنا حصہ عمل میں آیا ہے۔ نہیں دیکھ سکتے: (1) غیر جانچ شدہ تقاضے (کوڈ موجود ہے لیکن کاروباری اصول غلط ہے)، (2) گمشدہ کوڈ (ایسی کنٹرول کی کوئی گنجائش نہیں جو کبھی نہیں لکھا گیا تھا)، (3) ڈیٹا/ریاست کے امتزاج، (4) استعمال، کارکردگی، سیکیورٹی۔ لہذا، ضرورت کی کوریج (ہر قبولیت کا معیار کم از کم ایک ٹیسٹ سے پورا ہونا چاہیے) کوڈ کوریج کے ساتھ رکھا جانا چاہیے۔ AI ضرورت سے متعلق ٹیسٹ میپنگ (ٹریس ایبلٹی میٹرکس) تیار کرنے میں بہت مددگار ہے۔
خطرے پر مبنی جانچ: ہم کوشش کہاں کرتے ہیں؟
خطرہ = امکان (ٹوٹنے کا امکان) × اثر (ٹوٹنے کی صورت میں نقصان)۔ AI کے ساتھ، آپ ان دو محوروں پر فیچر لسٹ سکور کر سکتے ہیں اور ہیٹ میپ بنا سکتے ہیں۔ زیادہ امکان × زیادہ ڈومینز (ادائیگی، تصدیق، ڈیٹا کی سالمیت) انتہائی سخت جانچ کے مستحق ہیں۔ کم × کم علاقے (شاذ و نادر ہی استعمال ہونے والی ترجیحی اسکرین) روشنی کی جانچ کافی ہے۔
علاقہ
امکان
اثر
خطرہ
ٹیسٹ کثافت
ادائیگی کا بہاؤ
درمیانہ
بہت اعلی
اعلی
گہری + آٹومیشن
تصدیق
درمیانہ
بہت اعلی
اعلی
گہری + سیکیورٹی
مصنوعات کی تلاش
اعلی
درمیانہ
متوسط اعلیٰ
آٹومیشن + دریافت
پروفائل فوٹو
کم
کم
کم
روشنی کنٹرول
مدد کا صفحہ
کم
بہت کم
بہت کم
جائزہ لیں
دائرہ کار کا پیچھا کرنے کا جال
کوریج فی صد کو ایک مقصد بنانا (مثال کے طور پر "ٹیم کو 90% کوریج پاس کرنا چاہیے" اصول) ایک خطرناک ضمنی اثر ہے: ڈویلپرز اور ٹیسٹرز اصل خطرے کو حل کرنے کے بجائے فیصد بڑھانے پر توجہ دیتے ہیں۔ نتیجہ اکثر پھولا ہوا دائرہ ہوتا ہے جس میں کوئی دعویٰ یا معمولی ٹیسٹ نہیں ہوتا ہے — نمبر اچھا لگتا ہے لیکن کوئی تحفظ نہیں ہے۔ یہ معیار کے خراب ہونے کا رجحان ہے جب یہ خود ہی مقصد بن جاتا ہے: "جب ایک پیمانہ ایک مقصد بن جاتا ہے، تو یہ ایک اچھا پیمانہ بن جاتا ہے." دائرہ کار کو تشخیصی ٹول کے طور پر استعمال کریں، کارکردگی رپورٹ کارڈ کے نہیں۔
ایک صحت مند نقطہ نظر یہ ہے کہ دائرہ کار کو سمت سے پڑھا جائے: "اہم ادائیگی کے ماڈیول میں برانچ کی کوریج 40% پر کیوں پھنسی ہوئی ہے؟" سوال یہ ہے کہ "کیا مجموعی کوریج 90٪ ہے؟" یہ سوال سے کہیں زیادہ قیمتی ہے۔ AI کو ماڈیول اور رسک لیول کے لحاظ سے اسکوپ رپورٹ کو توڑنا ہے۔ کم کوریج کے ساتھ زیادہ خطرے والے علاقوں کو نمایاں کریں۔ اس طرح، دائرہ کار ایک کمپاس بن جاتا ہے جو محنت کو اندھے فیصد کے بجائے ہدایت کرتا ہے۔
احتیاط: نعرہ "100% کوریج" ایک جال ہے۔ کچھ کوڈ کی جانچ کرنا (سادہ ایکسیسرز، خود کار طریقے سے تیار کردہ حصے) کم قیمت کا ہے۔ وہاں خرچ کی جانے والی کوششوں کو زیادہ خطرے والے کاروباری قواعد سے چوری کیا جاتا ہے۔ مقصد ہر اہم رویے اور خطرے کی جانچ کرنا ہے، ہر لائن نہیں.
کمزور فوری / مضبوط اشارہ
کمزور: "میری جانچ کی کوریج میں اضافہ کریں۔"
مضبوط: "قبولیت کے معیار اور ان موجودہ ٹیسٹ کیسز کی اس فہرست کو دیکھتے ہوئے۔ (1) ٹیبلر جو قبولیت کے معیار کو کسی ٹیسٹ سے پورا نہیں کیا گیا ہے (ضروری کوریج گیپ)۔ (2) ہر خصوصیت کو امکان اور اثر کے محور پر 1-5 اسکور کریں؛ خطرہ = امکان × اثر کے لحاظ سے درجہ بندی۔ (3) اپنے محدود وقت کے لیے، سب سے زیادہ وقفے کے ساتھ شروع کرنے کا مشورہ دیتے ہوئے، مجھے سب سے زیادہ کوڈ شروع کرنے کا مشورہ دینا چاہیے۔ واحد معیار کے طور پر لائن کوریج کو ترجیح دیں: [...] ٹیسٹ: [...]
طاقتور فوری؛ دائرہ کار کو کاروباری خطرے کے ساتھ جوڑتا ہے اور محدود محنت کو ترجیح دیتا ہے۔
چار کاپی کرنے کے قابل ٹیمپلیٹس
1) ضرورت کے دائرہ کار کا فرق:
مندرجہ ذیل قبولیت کے معیار اور ان ٹیسٹ کیسز کو دیکھتے ہوئے ٹریس ایبلٹی ٹیبل تیار کریں: ہر ایک معیار -> ٹیسٹ جو اس پر پورا اترتے ہیں۔ جن معیارات میں کوئی ٹیسٹ نہیں ہوتا ہے انہیں "کوریج گیپ" کہا جاتا ہے اور وہ ٹیسٹ جو کسی بھی معیار سے متصل نہیں ہوتے انہیں "ضروری؟" کہا جاتا ہے۔ نشان: معیار: [...] / ٹیسٹ: [...]
2) رسک اسکورنگ:
فیچرز/ماڈیولز کی اس فہرست کو 1-5 کے امکانات (توڑنے کے امکان) اور اثر (ٹوٹے ہونے پر نقصان) محور پر اسکور کریں۔ خطرہ = امکان × اثر۔ ایک ٹیبل میں ترتیب دیں اور ہر ایک اعلی خطرے والے علاقے کے لیے تجویز کردہ ٹیسٹنگ کی قسم (یونٹ/API/UI/ریکنیسنس/سیکیورٹی) کی وضاحت کریں۔ فہرست: [...]
3) دائرہ کار کی تشریح:
درج ذیل کوریج رپورٹ دی گئی تھی (لائن %، برانچ %)۔ مجھے یہ بتائیں:- یہ نمبر کیا ثابت نہیں کرتے؟- وہ کون سے علاقے ہیں جو زیادہ قطار کی کوریج کے باوجود خطرے میں ہو سکتے ہیں؟- آپ ان خلاوں کے لیے کون سی اضافی جانچ تجویز کریں گے جو کوریج میں نظر نہیں آتے (ضرورت، ڈیٹا کا مجموعہ، سیکیورٹی)؟ رپورٹ: [پیسٹ]
4) محدود وقت کا منصوبہ:
نشر ہونے میں [X گھنٹے] باقی ہیں۔ درج ذیل خطرے کی درجہ بندی اور کوریج کے فرق کو دیا گیا ہے۔ اس مدت کے دوران، ٹیسٹ پلان جو زیادہ سے زیادہ خطرے کو کم کرے گا ترجیحی ترتیب سے تیار کیا جاتا ہے۔ واضح طور پر بتائیں کہ جان بوجھ کر کس چیز کی جانچ نہیں کرنی چاہیے اور ایسا کرنے کا قبول شدہ خطرہ۔ ڈیٹا: [...]
تین چھوٹے مقدمات
کیس 1 - 100% کوریج، صفر اعتماد۔ ایک ٹیم نے 94% لائن کوریج پر فخر کیا۔ "دائرہ کار کی تشریح" کے تجزیہ سے پتہ چلتا ہے کہ زیادہ تر ٹیسٹ اسسٹ کم تھے، یعنی وہ لائنیں چلاتے تھے لیکن کسی چیز کی تصدیق نہیں کرتے تھے۔ اصل حفاظتی کوریج بہت کم تھی۔ ٹیم نے تعداد پر نہیں بلکہ میوٹیشن ٹیسٹنگ (یونٹ 10) پر توجہ مرکوز کی؛ اصل غلطی پکڑنے کی شرح دوگنی ہوگئی۔
کیس 2 - خطرے کا نقشہ درست کیا گیا ترجیح۔ ایک ٹیم اپنی جانچ کی کوشش کا 40% شاذ و نادر ہی استعمال ہونے والی رپورٹنگ اسکرین پر خرچ کر رہی تھی، ادائیگی کے بہاؤ کو چھوڑ رہی تھی کیونکہ یہ "بس کام کرتا ہے"۔ AI رسک اسکورنگ نے اس عدم توازن کو ظاہر کیا۔ مزدوروں کو دوبارہ تقسیم کیا گیا۔ دو ہفتے بعد ادائیگی کے بہاؤ میں ایک اعلی اثر والا بگ پایا گیا اور اسے پری لائیو بند کر دیا گیا۔
کیس 3 - دائرہ کار سے باہر ہوش۔ ریلیز کے 4 گھنٹے بعد، ٹیم نے فیصلہ کیا کہ "محدود شیڈول" ٹیمپلیٹ کے ساتھ کیا جانچنا ہے اور کیا جان بوجھ کر چھوڑنا ہے۔ دو ہائی رسک اسٹریمز کا گہرا تجربہ کیا گیا۔ کم خطرے والی ترجیحی اسکرین کو "قبول شدہ خطرہ" کے طور پر دستاویز کیا گیا اور چھوڑ دیا گیا۔ فیصلہ شفاف اور مدلل تھا۔ ورژن محفوظ طریقے سے باہر آیا.
عام غلطیاں
- کوالٹی کے لیے کوریج کا فیصد غلط کرنا۔ اعلی قطار کی کوریج کو "آزمائشی" یقین دہانی کے طور پر پڑھنا۔
- صرف کوڈ کی کوریج دیکھ رہے ہیں۔ ضروریات کی کوریج کو چھوڑنا (ہر قبولیت کے معیار کی جانچ)۔
- خطرے کو مدنظر رکھے بغیر یکساں طور پر جانچ کرنا۔ کم خطرے والے علاقوں میں مزدوروں کو مختص کرنا اور اہم بہاؤ کو نظر انداز کرنا۔
- دائرہ سے باہر چھپنا۔ جب کافی وقت نہیں تھا تو ان چیزوں کی دستاویز نہ کرنا جس کا تجربہ نہیں کیا گیا تھا۔ رہائی کے بعد حیرت۔
- بغیر سوال کے AI کے رسک سکور کو قبول کرنا۔ AI مکمل طور پر مصنوعات کے سیاق و سباق کو نہیں جانتا؛ ایک ماہر نظر کے ساتھ اسکور کو ایڈجسٹ کریں۔
خلاصہ میں
ٹیسٹ کوریج اور خطرے پر مبنی ٹیسٹنگ محدود کوششوں کو صحیح جگہ تک پہنچانے کے لیے دو ٹولز ہیں۔ کوریج میٹرکس (لائن، برانچ، حالت، راستہ) دکھاتے ہیں کہ کیا چھوا ہے لیکن یہ ثابت نہیں کرتے کہ اس نے صحیح برتاؤ کیا؛ دائرہ کار ایک نقشہ ہے، اعتماد نہیں ہے۔ کوڈ کوریج کے آگے ضروریات کی کوریج رکھیں۔ فارمولہ رسک = امکان × اثر اور سب سے زیادہ خطرے کی براہ راست کوشش کے ساتھ خصوصیات کو اسکور کریں۔ AI خلا کو مرئی بناتا ہے، اسکور کا خطرہ، محدود وقت کی منصوبہ بندی کرتا ہے۔ لیکن حتمی ترجیح اور "باشعور آپٹ آؤٹ" کا فیصلہ اس ماہر کے پاس ہے جو کاروباری سیاق و سباق کو جانتا ہے۔
درخواست کا کام
اپنے پروجیکٹ سے ایک ماڈیول منتخب کریں۔ AI کے ساتھ "Requirements scope gap" ٹیمپلیٹ چلائیں اور معلوم کریں کہ کون سے قبولیت کے معیار کو جانچا نہیں گیا ہے۔ پھر ماڈیول کی ذیلی خصوصیات کو امکان × اثر کے محور پر "رسک اسکورنگ" کے ساتھ درجہ بندی کریں۔ آپ کے پاس "محدود شیڈول" کے ساتھ ٹیسٹنگ کے 3 گھنٹے کا (فرضی) وقت تقسیم کریں۔ لکھیں کہ آپ جان بوجھ کر کیا ٹیسٹ نہیں کریں گے اور قبول شدہ خطرہ۔ ایک ٹھوس ٹیسٹ شامل کریں جو آپ کو ملنے والے سب سے زیادہ رسک کوریج گیپ کو بند کر دے گا۔
چیک لسٹ
- [] میں کوریج فیصد کو نقشہ کے طور پر پڑھتا ہوں، معیار کے نہیں۔
- کوڈ کوریج کے علاوہ، میں نے ضرورت کی کوریج کو بھی ہٹا دیا۔
- [ ] میں نے خصوصیات کو امکان × اثر کے لحاظ سے اسکور کیا اور خطرے کے لحاظ سے ان کی درجہ بندی کی۔
- [ ] میں نے جانچ کی کوشش کو سب سے زیادہ خطرے کی طرف بھیج دیا۔
- میں نے ایسے علاقوں کو دستاویزی کیا ہے جن کا شعوری طور پر تجربہ نہیں کیا گیا اور خطرے کو تسلیم نہیں کیا گیا۔
- [ ] میں نے اپنے پروڈکٹ کے سیاق و سباق کی بنیاد پر AI کے رسک اسکورز کا جائزہ لیا۔