Model-based testing
ماڈل پر مبنی جانچ سافٹ ویئر ٹیسٹنگ یا سسٹم ٹیسٹنگ انجام دینے کے لیے نمونوں کو ڈیزائن کرنے اور اختیاری طور پر ان پر عمل درآمد کرنے کے لیے ماڈل پر مبنی ڈیزائن کی ایک درخواست ہے۔ ماڈلز کو ٹیسٹ (ایس یو ٹی) کے تحت کسی نظام کے مطلوبہ رویے کی نمائندگی کرنے، یا ٹیسٹنگ کی حکمت عملی اور ٹیسٹ کے ماحول کی نمائندگی کرنے کے لیے استعمال کیا جا سکتا ہے۔ دائیں طرف کی تصویر سابقہ نقطہ نظر کو ظاہر کرتی ہے۔ ایس یو ٹی کو بیان کرنے والا ماڈل عام طور پر ایس یو ٹی کے مطلوبہ رویے کی ایک تجریدی، جزوی پیشکش ہوتی ہے۔ اس طرح کے ماڈل سے اخذ کیے گئے ٹیسٹ کیس ماڈل کی طرح تجریدی سطح پر فعال ٹیسٹ ہوتے ہیں۔ ان ٹیسٹ کیسوں کو اجتماعی طور پر ایک تجریدی ٹیسٹ سوٹ کے طور پر جانا جاتا ہے۔ ایک تجریدی ٹیسٹ سوٹ کو ایس یو ٹی کے خلاف براہ راست انجام نہیں دیا جا سکتا کیونکہ سوٹ تجریدی کی غلط سطح پر ہے۔ ایک قابل عمل ٹیسٹ سوٹ کو متعلقہ تجریدی ٹیسٹ سوٹ سے اخذ کرنے کی ضرورت ہے۔ قابل عمل ٹیسٹ سوٹ ٹیسٹ کے تحت سسٹم کے ساتھ براہ راست بات چیت کر سکتا ہے۔ یہ تجریدی ٹیسٹ کیسوں کو عمل درآمد کے لیے موزوں ٹھوس ٹیسٹ کیسوں کی نقشہ سازی کے ذریعے حاصل کیا جاتا ہے۔ کچھ ماڈل پر مبنی جانچ کے ماحول میں، ماڈلز میں براہ راست قابل عمل ٹیسٹ سوئٹ تیار کرنے کے لیے کافی معلومات ہوتی ہیں۔ دوسروں میں، تجریدی ٹیسٹ سوٹ کے عناصر کو ٹھوس ٹیسٹ سوٹ بنانے کے لیے سافٹ ویئر میں مخصوص بیانات یا طریقہ کار کالز کے ساتھ نقشہ بند کیا جانا چاہیے۔ اسے "نقشہ سازی کا مسئلہ حل کرنا" کہا جاتا ہے۔ آن لائن ٹیسٹنگ کے معاملے میں (نیچے دیکھیں)، تجریدی ٹیسٹ سوئٹ صرف تصوراتی طور پر موجود ہیں لیکن واضح نمونوں کے طور پر نہیں۔ نمونوں سے ٹیسٹ مختلف طریقوں سے حاصل کیے جا سکتے ہیں۔ چونکہ جانچ عام طور پر تجرباتی ہوتی ہے اور تحقیقات پر مبنی ہوتی ہے، اس لیے جانچ سے ماخوذ ہونے کے لیے کوئی معروف واحد بہترین نقطہ نظر نہیں ہے۔ ٹیسٹ سے ماخوذ تمام پیرامیٹرز کو ایک پیکیج میں یکجا کرنا عام بات ہے جسے اکثر "ٹیسٹ کی ضروریات"، "ٹیسٹ کا مقصد" یا یہاں تک کہ "کیس استعمال کریں" کے نام سے جانا جاتا ہے۔ اس پیکیج میں ماڈل کے ان حصوں کے بارے میں معلومات شامل ہو سکتی ہیں جن پر توجہ مرکوز کی جانی چاہیے، یا جانچ ختم کرنے کے لیے شرائط (ٹیسٹ روکنے کے معیار)۔ چونکہ ٹیسٹ سوئٹ ماڈلز سے حاصل کیے جاتے ہیں نہ کہ سورس کوڈ سے، ماڈل پر مبنی ٹیسٹنگ کو عام طور پر بلیک باکس ٹیسٹنگ کی ایک شکل کے طور پر دیکھا جاتا ہے۔ پیچیدہ سافٹ ویئر سسٹمز کے لیے ماڈل پر مبنی جانچ اب بھی ایک ترقی پذیر میدان ہے۔ ماڈلز خاص طور پر ماڈل ڈرون انجینئرنگ یا آبجیکٹ مینجمنٹ گروپ (او ایم جی) کے ماڈل پر مبنی فن تعمیر میں، ماڈل متعلقہ سسٹمز سے پہلے یا متوازی بنائے جاتے ہیں۔ مکمل شدہ نظاموں سے بھی نمونے بنائے جا سکتے ہیں۔ ٹیسٹ نسل کے لیے عام ماڈلنگ زبانوں میں یو ایم ایل، ایس آئی ایس ایم ایل، مرکزی دھارے کی پروگرامنگ زبانیں، محدود مشین کے اشارے، اور ریاضیاتی رسالے جیسے زیڈ، بی (ایونٹ-بی)، مرکب دھات یا سی او کیو شامل ہیں۔ ماڈل پر مبنی جانچ کو تعینات کرنا ماڈل پر مبنی جانچ کو تعینات کرنے کے مختلف معروف طریقے ہیں، جن میں آن لائن جانچ، قابل عمل ٹیسٹوں کی آف لائن نسل، اور دستی طور پر قابل استعمال ٹیسٹوں کی آف لائن نسل شامل ہیں۔ آن لائن ٹیسٹنگ کا مطلب ہے کہ ایک ماڈل پر مبنی ٹیسٹنگ ٹول براہ راست ایس یو ٹی سے جڑتا ہے اور اس کی متحرک طور پر جانچ کرتا ہے۔ قابل عمل ٹیسٹوں کی آف لائن نسل کا مطلب یہ ہے کہ ایک ماڈل پر مبنی ٹیسٹنگ ٹول ٹیسٹ کے معاملات کو کمپیوٹر سے پڑھنے کے قابل اثاثوں کے طور پر تیار کرتا ہے جسے بعد میں خود بخود چلایا جا سکتا ہے۔ مثال کے طور پر، ازگر کلاسوں کا مجموعہ جو پیدا شدہ ٹیسٹنگ منطق کی علامت ہے۔ دستی طور پر تعیناتی کے قابل ٹیسٹوں کی آف لائن نسل کا مطلب ہے کہ ایک ماڈل پر مبنی ٹیسٹنگ ٹول ٹیسٹ کے معاملات کو انسانی پڑھنے کے قابل اثاثوں کے طور پر تیار کرتا ہے جو بعد میں دستی ٹیسٹنگ میں مدد کر سکتا ہے۔ مثال کے طور پر، انسانی زبان میں پی ڈی ایف دستاویز جو تیار کردہ ٹیسٹ کے مراحل کو بیان کرتی ہے۔ ماڈل پر مبنی جانچ کی تاثیر بنیادی طور پر اس کی پیش کردہ آٹومیشن کی صلاحیت کی وجہ سے ہے۔ اگر کوئی ماڈل مشین سے پڑھنے کے قابل اور اس حد تک رسمی ہے کہ اس کی اچھی طرح سے طے شدہ طرز عمل کی تشریح ہے، تو ٹیسٹ کے معاملات کو اصولی طور پر میکانکی طور پر اخذ کیا جا سکتا ہے۔ محدود ریاستی مشینوں سے اکثر ماڈل کا ترجمہ یا تشریح ایک محدود ریاستی آٹومیٹن یا ریاستی منتقلی کے نظام کے طور پر کی جاتی ہے۔ یہ آٹومیٹن ٹیسٹ کے تحت سسٹم کی ممکنہ ترتیبات کی نمائندگی کرتا ہے۔ ٹیسٹ کیسوں کو تلاش کرنے کے لیے، آٹومیٹن کو قابل عمل راستوں کے لیے تلاش کیا جاتا ہے۔ ایک ممکنہ عمل درآمد کا راستہ ٹیسٹ کیس کے طور پر کام کر سکتا ہے۔ یہ طریقہ کام کرتا ہے اگر ماڈل تعیناتی ہے یا اسے تعیناتی میں تبدیل کیا جا سکتا ہے۔ ان ماڈلز میں غیر متعینہ ٹرانزیشن کا فائدہ اٹھاتے ہوئے قیمتی نام سے ہٹ کر ٹیسٹ کے معاملات حاصل کیے جا سکتے ہیں۔ ٹیسٹ کے تحت سسٹم کی پیچیدگی اور متعلقہ ماڈل پر منحصر ہے کہ سسٹم کی ممکنہ ترتیبات کی بڑی مقدار کی وجہ سے راستوں کی تعداد بہت زیادہ ہو سکتی ہے۔ ٹیسٹ کیسوں کو تلاش کرنے کے لیے جو مناسب، لیکن محدود، راستوں کی تعداد کا احاطہ کر سکتے ہیں، انتخاب کی رہنمائی کے لیے ٹیسٹ کے معیار کی ضرورت ہوتی ہے۔ اس تکنیک کو سب سے پہلے آفٹ اور عبد الرزاق نے اس مقالے میں تجویز کیا تھا جس نے ماڈل پر مبنی جانچ شروع کی تھی۔ ٹیسٹ کیس بنانے کے لیے متعدد تکنیکیں تیار کی گئی ہیں اور رشبی کے ذریعے ان کا سروے کیا گیا ہے۔ جانچ کے معیار کو جانچ کی نصابی کتاب میں عمومی گراف کے لحاظ سے بیان کیا گیا ہے۔ نظریہ ثابت کرنے والا نظریہ اصل میں منطقی فارمولوں کے خودکار ثابت کرنے کے لیے استعمال ہوتا تھا۔ ماڈل پر مبنی جانچ کے طریقوں کے لیے، نظام کو پیش گوئیوں کے ایک سیٹ کے ذریعے ماڈل کیا جاتا ہے، جو نظام کے رویے کی وضاحت کرتا ہے۔ ٹیسٹ کے معاملات حاصل کرنے کے لیے، ماڈل کو ٹیسٹ کے تحت سسٹم کو بیان کرنے والی پیش گوئیوں کے سیٹ کی درست تشریح پر مساوات کی کلاسوں میں تقسیم کیا جاتا ہے۔ ہر کلاس ایک مخصوص نظام کے رویے کو بیان کرتی ہے، اور اس لیے، ایک ٹیسٹ کیس کے طور پر کام کر سکتی ہے۔ سب سے آسان پارٹیشننگ ڈسجنکٹو نارمل فارم اپروچ کے ساتھ ہے جس میں سسٹم کے رویے کو بیان کرنے والے منطقی تاثرات کو ڈسجنکٹو نارمل فارم میں تبدیل کر دیا جاتا ہے۔ رکاوٹ منطق پروگرامنگ اور علامتی عمل درآمد رکاوٹ پروگرامنگ کو متغیرات کے ایک سیٹ پر رکاوٹوں کے ایک سیٹ کو حل کرکے مخصوص رکاوٹوں کو پورا کرنے والے ٹیسٹ کیسوں کو منتخب کرنے کے لیے استعمال کیا جا سکتا ہے۔ نظام کو رکاوٹوں کے ذریعے بیان کیا جاتا ہے۔ رکاوٹوں کے سیٹ کو حل کرنا بولین حل کرنے والوں کے ذریعے کیا جا سکتا ہے (مثال کے طور پر۔ ایس اے ٹی-حل کرنے والے جو بولین اطمینان بخش مسئلے پر مبنی ہیں) یا عددی تجزیہ کے ذریعے، جیسے گوسیائی خاتمہ۔ رکاوٹوں کے فارمولوں کے سیٹ کو حل کرکے پایا جانے والا حل متعلقہ نظام کے لیے ٹیسٹ کیس کے طور پر کام کر سکتا ہے۔ رکاوٹ پروگرامنگ کو علامتی عمل کے ساتھ جوڑا جا سکتا ہے۔ اس نقطہ نظر میں ایک سسٹم ماڈل کو علامتی طور پر انجام دیا جاتا ہے، یعنی۔ مختلف کنٹرول راستوں پر ڈیٹا کی رکاوٹیں جمع کرنا، اور پھر رکاوٹوں کو حل کرنے اور ٹیسٹ کیس تیار کرنے کے لیے رکاوٹ پروگرامنگ کا طریقہ استعمال کرنا۔ ماڈل چیکنگ ماڈل چیکرس کو ٹیسٹ کیس بنانے کے لیے بھی استعمال کیا جا سکتا ہے۔ اصل میں ماڈل چیکنگ کو یہ جانچنے کے لیے ایک تکنیک کے طور پر تیار کیا گیا تھا کہ آیا کسی ماڈل میں کسی تفصیلات کی خاصیت درست ہے یا نہیں۔ جب جانچ کے لیے استعمال کیا جاتا ہے، تو ٹیسٹ کے تحت سسٹم کا ایک ماڈل، اور جانچ کے لیے ایک پراپرٹی ماڈل چیکر کو فراہم کی جاتی ہے۔ پروفنگ کے طریقہ کار کے اندر، اگر یہ خاصیت ماڈل میں درست ہے، تو ماڈل چیکر گواہوں اور جوابی مثالوں کا پتہ لگاتا ہے۔ گواہ ایک ایسا راستہ ہے جہاں جائیداد کو مطمئن کیا جاتا ہے، جبکہ جوابی مثال ماڈل پر عمل درآمد کا ایک راستہ ہے جہاں جائیداد کی خلاف ورزی ہوتی ہے۔ ان راستوں کو دوبارہ ٹیسٹ کیس کے طور پر استعمال کیا جا سکتا ہے۔ مارکوف چین ٹیسٹ ماڈل مارکوف چینز کا استعمال کرتے ہوئے ٹیسٹ کیس جنریشن ماڈل پر مبنی ٹیسٹنگ کو سنبھالنے کا ایک موثر طریقہ ہے۔ مارکوف زنجیروں کے ساتھ حاصل کردہ ٹیسٹ ماڈلز کو استعمال کے ماڈل کے طور پر سمجھا جا سکتا ہے: اسے استعمال/شماریاتی ماڈل پر مبنی جانچ کہا جاتا ہے۔ استعمال کے ماڈل، لہذا مارکوف چینز، بنیادی طور پر 2 نمونوں سے بنائے جاتے ہیں: فائنائٹ اسٹیٹ مشین (ایف ایس ایم) جو تجربہ شدہ نظام کے تمام ممکنہ استعمال کے منظر نامے کی نمائندگی کرتی ہے اور آپریشنل پروفائلز (او پی) جو ایف ایس ایم کو اس بات کی نمائندگی کرنے کے لیے اہل بناتی ہیں کہ نظام کس طرح ہے یا اعدادوشمار کے لحاظ سے استعمال کیا جائے گا۔ پہلا (ایف ایس ایم) یہ جاننے میں مدد کرتا ہے کہ کیا ہو سکتا ہے یا کیا تجربہ کیا گیا ہے اور دوسرا (او پی) آپریشنل ٹیسٹ کے معاملات حاصل کرنے میں مدد کرتا ہے۔ استعمال/شماریاتی ماڈل پر مبنی جانچ ان حقائق سے شروع ہوتی ہے جو کسی نظام کی مکمل جانچ کرنا ممکن نہیں ہے اور یہ ناکامی بہت کم شرح کے ساتھ ظاہر ہو سکتی ہے۔ یہ نقطہ نظر ٹیسٹ کے معاملات کو مستحکم طور پر حاصل کرنے کا ایک عملی طریقہ پیش کرتا ہے جو ٹیسٹ کے تحت نظام کی وشوسنییتا کو بہتر بنانے پر مرکوز ہیں۔ استعمال/شماریاتی ماڈل پر مبنی جانچ کو حال ہی میں سرایت شدہ سافٹ ویئر سسٹمز پر لاگو کرنے کے لیے بڑھایا گیا تھا۔ ڈومین مخصوص زبان (ڈی ایس ایل) ڈومین مخصوص ماڈلنگ (ڈی ایس ایم) ماڈل پر مبنی فن تعمیر (ایم ڈی اے) ماڈل پر مبنی انجینئرنگ (ایم ڈی ای) آبجیکٹ پر مبنی تجزیہ اور ڈیزائن (او او اے ڈی) ٹائم پارٹیشن ٹیسٹنگ (ٹی پی ٹی) حوالہ جات مزید پڑھنا او ایم جی یو ایم ایل 2 ٹیسٹنگ پروفائل ؛ عملی ماڈل پر مبنی ٹیسٹنگ: ایک ٹولز اپروچ، مارک یوٹنگ اور برونو لیگارڈ، مورگن-کافمین 2007۔ سی #، جوناتھن جیکی، مارگس وینس، کولن کیمبل، اور وولفرم شولٹے کے ساتھ ماڈل پر مبنی سافٹ ویئر ٹیسٹنگ اور تجزیہ، کیمبرج یونیورسٹی پریس 2008۔ ماڈل بیسڈ ٹیسٹنگ آف ری ایکٹیو سسٹمز ایڈوانسڈ لیکچر سیریز، ایل این سی ایس 3472، سپرنگر-ورلاگ، 2005۔ ماڈل بیسڈ ٹیسٹنگ ٹول سپورٹ کا ایک منظم جائزہ، محمد صدیق، یوان لیبیچے، کارلٹن یونیورسٹی، ٹیکنیکل رپورٹ، مئی 2010۔ 2011/2012 ماڈل پر مبنی ٹیسٹنگ یوزر سروے: نتائج اور تجزیہ۔ رابرٹ وی بائنڈر۔ سسٹم ویریفکیشن ایسوسی ایٹس، فروری 2012 سافٹ ویئر ٹیسٹنگ