Continuous testing
مسلسل جانچ سافٹ ویئر ڈیلیوری پائپ لائن کے حصے کے طور پر خودکار ٹیسٹوں کو انجام دینے کا عمل ہے تاکہ سافٹ ویئر ریلیز امیدوار سے وابستہ کاروباری خطرات پر فوری رائے حاصل کی جا سکے۔ مسلسل جانچ کو اصل میں ترقیاتی ماحول سے متحرک ٹیسٹ کے ساتھ ساتھ زیادہ روایتی ڈویلپر/ٹیسٹر سے متحرک ٹیسٹ متعارف کروا کر ڈویلپرز کو فیڈ بیک کے لیے انتظار کے وقت کو کم کرنے کے ایک طریقے کے طور پر تجویز کیا گیا تھا۔ مسلسل جانچ کے لیے، جانچ کا دائرہ نیچے سے اوپر کی ضروریات یا صارف کی کہانیوں کی توثیق کرنے سے لے کر وسیع کاروباری اہداف سے وابستہ نظام کی ضروریات کا اندازہ لگانے تک پھیلا ہوا ہے۔ گود لینے کے محرکات 2010 کی دہائی میں سافٹ ویئر ایک اہم کاروباری تفریق کار بن گیا ہے۔ نتیجے کے طور پر، تنظیمیں اب سافٹ ویئر ڈویلپمنٹ ٹیموں سے توقع کرتی ہیں کہ وہ مختصر ترسیل کے چکروں کے اندر زیادہ، اور زیادہ جدید، سافٹ ویئر فراہم کریں۔ ان مطالبات کو پورا کرنے کے لیے، ٹیموں نے سسٹم ڈویلپمنٹ لائف سائیکل (ایس ڈی ایل سی) کو تیز کرنے کی کوشش کے لیے دبلی پتلی طریقوں، جیسے ایجائل، ڈیو اوپس، اور کنٹینیوئس ڈیلیوری کا رخ کیا ہے۔ ڈیلیوری پائپ لائن کے دیگر پہلوؤں کو تیز کرنے کے بعد، ٹیموں کو عام طور پر معلوم ہوتا ہے کہ ان کا جانچ کا عمل انہیں اپنے ایس ڈی ایل سی ایکسلریشن پہل کے متوقع فوائد حاصل کرنے سے روک رہا ہے۔ جانچ اور مجموعی معیار کا عمل کئی اہم وجوہات کی بناء پر دشواری کا شکار رہتا ہے۔ روایتی جانچ کے عمل بہت سست ہوتے ہیں۔ ایجائل، ڈیو اوپس، اور مسلسل ڈیلیوری کی بڑھتی ہوئی مقبولیت کے ساتھ تکرار کی لمبائی مہینوں سے ہفتوں یا دنوں میں بدل گئی ہے۔ جانچ کے روایتی طریقے، جو دستی جانچ اور خودکار جی یو آئی ٹیسٹوں پر بہت زیادہ انحصار کرتے ہیں جن میں بار بار اپ ڈیٹ کرنے کی ضرورت ہوتی ہے، رفتار برقرار نہیں رکھ سکتے۔ اس موقع پر، تنظیمیں اپنی ٹیسٹ آٹومیشن کی کوششوں کو بڑھانے کی ضرورت کو تسلیم کرتی ہیں۔ موجودہ ٹیسٹ کے عمل میں مزید آٹومیشن کو شامل کرنے کے بعد بھی، مینیجرز کو اب بھی کسی بھی وقت کسی ایپلی کیشن سے وابستہ خطرے کی سطح کے بارے میں مناسب بصیرت کا فقدان ہے۔ ان خطرات کو سمجھنا مسلسل ترسیل کے عمل میں شامل تیزی سے جانے/نہ جانے کے فیصلے کرنے کے لیے اہم ہے۔ اگر ٹیسٹ اس بات کی سمجھ کے بغیر تیار کیے جاتے ہیں کہ کاروبار کس چیز کو خطرے کی قابل قبول سطح سمجھتا ہے، تو یہ ممکن ہے کہ ایک ریلیز امیدوار ہو جو تمام دستیاب ٹیسٹ پاس کرے، لیکن جسے کاروباری رہنما ریلیز کے لیے تیار نہیں سمجھیں گے۔ ٹیسٹ کے نتائج کو درست طریقے سے اس بات کی نشاندہی کرنے کے لیے کہ آیا ہر ریلیز امیدوار کاروباری توقعات پر پورا اترتا ہے، ٹیسٹ ڈیزائن کرنے کا نقطہ نظر سیکیورٹی، کارکردگی، وشوسنییتا اور تعمیل سے متعلق خطرات کے لیے کاروبار کی رواداری پر مبنی ہونا چاہیے۔ یونٹ ٹیسٹ ہونے کے علاوہ جو کوڈ کو بہت دانے دار نیچے سے اوپر کی سطح پر چیک کرتے ہیں، ریلیز امیدوار کے کاروباری خطرے کی اوپر سے نیچے کی تشخیص فراہم کرنے کے لیے ٹیسٹ کے وسیع تر مجموعے کی ضرورت ہے۔ یہاں تک کہ اگر جانچ خودکار ہے اور ٹیسٹ مؤثر طریقے سے کاروباری خطرے کی سطح کی پیمائش کرتے ہیں، تو مربوط اینڈ ٹو اینڈ کوالٹی کے عمل کے بغیر ٹیموں کو آج کے کمپریسڈ ڈیلیوری سائیکل میں کاروباری توقعات کو پورا کرنے میں دشواری کا سامنا کرنا پڑتا ہے۔ ہر تکرار کے اختتام پر خطرات کو دور کرنے کی کوشش کو نقائص کی روک تھام کی حکمت عملی جیسے ترقیاتی جانچ کے ذریعے مصنوعات میں معیار کی تعمیر کے مقابلے میں نمایاں طور پر سست اور زیادہ وسائل پر مبنی دکھایا گیا ہے۔ تنظیمیں مسلسل جانچ کو اپناتی ہیں کیونکہ وہ تسلیم کرتی ہیں کہ یہ مسائل انہیں مطلوبہ رفتار پر معیاری سافٹ ویئر کی فراہمی سے روک رہے ہیں۔ وہ سافٹ ویئر کی بڑھتی ہوئی اہمیت کے ساتھ ساتھ سافٹ ویئر کی ناکامی کی بڑھتی ہوئی لاگت کو بھی تسلیم کرتے ہیں، اور وہ اب وقت، دائرہ کار اور معیار کے درمیان سمجھوتہ کرنے کے لیے تیار نہیں ہیں۔ اہداف اور فوائد مسلسل جانچ کا مقصد تازہ ترین تعمیر یا ریلیز امیدوار میں کاروباری خطرے کی سطح کے بارے میں تیز اور مسلسل رائے فراہم کرنا ہے۔ اس کے بعد اس معلومات کو اس بات کا تعین کرنے کے لیے استعمال کیا جا سکتا ہے کہ آیا سافٹ ویئر کسی بھی وقت ڈیلیوری پائپ لائن کے ذریعے ترقی کے لیے تیار ہے یا نہیں۔ چونکہ جانچ جلد شروع ہوتی ہے اور مسلسل انجام دی جاتی ہے، اس لیے درخواست کے خطرات متعارف ہونے کے فورا بعد بے نقاب ہو جاتے ہیں۔ اس کے بعد ترقیاتی ٹیمیں ان مسائل کو ایس ڈی ایل سی کے اگلے مرحلے تک بڑھنے سے روک سکتی ہیں۔ اس سے نقائص کو تلاش کرنے اور ٹھیک کرنے میں خرچ ہونے والے وقت اور کوشش میں کمی آتی ہے۔ نتیجے کے طور پر، رفتار اور تعدد میں اضافہ کرنا ممکن ہے جس پر معیاری سافٹ ویئر (سافٹ ویئر جو خطرے کی قابل قبول سطح کی توقعات پر پورا اترتا ہے) فراہم کیا جاتا ہے، ساتھ ہی تکنیکی قرض میں کمی بھی ہوتی ہے۔ مزید برآں، جب سافٹ ویئر کے معیار کی کوششیں اور جانچ کاروباری توقعات کے مطابق ہوتی ہیں، تو ٹیسٹ پر عمل درآمد قابل عمل کاموں کی ترجیحی فہرست تیار کرتا ہے (ممکنہ طور پر نتائج کی زبردست تعداد کے بجائے جس میں دستی جائزے کی ضرورت ہوتی ہے)۔ اس سے ٹیموں کو اپنی کوششوں کو ان معیاری کاموں پر مرکوز کرنے میں مدد ملتی ہے جن کا سب سے زیادہ اثر ان کی تنظیم کے اہداف اور ترجیحات کی بنیاد پر پڑے گا۔ مزید برآں، جب ٹیمیں پورے ایس ڈی ایل سی میں مسلسل ٹیسٹوں کے ایک وسیع سیٹ کو مسلسل انجام دے رہی ہوتی ہیں، تو وہ عمل کے معیار کے ساتھ ساتھ سافٹ ویئر کی حالت کے حوالے سے میٹرکس جمع کرتی ہیں۔ نتیجے میں آنے والے میٹرکس کو ان ٹیسٹوں کی تاثیر سمیت عمل کو دوبارہ جانچنے اور بہتر بنانے کے لیے استعمال کیا جا سکتا ہے۔ اس معلومات کو ایک فیڈ بیک لوپ قائم کرنے کے لیے استعمال کیا جا سکتا ہے جو ٹیموں کو عمل کو بہتر بنانے میں مدد کرتا ہے۔ بار بار پیمائش، سخت فیڈ بیک لوپس، اور مسلسل بہتری ڈیو اوپس کے کلیدی اصول ہیں۔ مسلسل جانچ کے دائرہ کار میں فعال ضروریات اور غیر فعال ضروریات دونوں کی توثیق شامل ہے۔ فنکشنل ضروریات (فنکشنل ٹیسٹنگ) کی جانچ کے لیے، مسلسل جانچ میں اکثر یونٹ ٹیسٹ، اے پی آئی ٹیسٹنگ، انٹیگریشن ٹیسٹنگ، اور سسٹم ٹیسٹنگ شامل ہوتی ہے۔ غیر فعال ضروریات کی جانچ کے لیے (غیر فعال جانچ-اس بات کا تعین کرنے کے لیے کہ آیا ایپلیکیشن کارکردگی، سیکیورٹی، تعمیل وغیرہ کے ارد گرد توقعات پر پورا اترتی ہے۔ )، اس میں جامد کوڈ تجزیہ، حفاظتی جانچ، کارکردگی کی جانچ وغیرہ جیسے طریقے شامل ہیں۔ سافٹ ویئر جاری کرنے والے کاروبار یا تنظیم کے لیے سب سے زیادہ اہم خطرات کا جلد از جلد ممکنہ پتہ لگانے (یا روک تھام) کے لیے ٹیسٹ تیار کیے جانے چاہئیں۔ ٹیموں کو اکثر یہ معلوم ہوتا ہے کہ اس بات کو یقینی بنانے کے لیے کہ ٹیسٹ سوٹ مسلسل چل سکتا ہے اور خطرے کی سطح کا مؤثر طریقے سے اندازہ لگا سکتا ہے، توجہ کو جی یو آئی ٹیسٹنگ سے اے پی آئی ٹیسٹنگ کی طرف منتقل کرنا ضروری ہے کیونکہ 1) اے پی آئی ("ٹرانزیکشن لیئر") کو ٹیسٹ کے تحت سسٹم کا سب سے مستحکم انٹرفیس سمجھا جاتا ہے، اور 2) جی یو آئی ٹیسٹوں کو تیز رفتار ریلیز کے عمل کی عام تبدیلیوں کے ساتھ رفتار برقرار رکھنے کے لیے کافی دوبارہ کام کرنے کی ضرورت ہوتی ہے۔ اے پی آئی پرت پر ٹیسٹ کم ٹوٹنے والے اور برقرار رکھنے میں آسان ہوتے ہیں۔ ٹیسٹ مسلسل انضمام کے دوران یا اس کے ساتھ ساتھ انجام دیے جاتے ہیں-کم از کم روزانہ۔ مسلسل ترسیل کی مشق کرنے والی ٹیموں کے لیے، ٹیسٹ عام طور پر دن میں کئی بار انجام دیے جاتے ہیں، ہر بار جب ایپلیکیشن کو ورژن کنٹرول سسٹم میں اپ ڈیٹ کیا جاتا ہے۔ مثالی طور پر، تمام ٹیسٹ تمام غیر پروڈکشن ٹیسٹ ماحول میں انجام دیے جاتے ہیں۔ درستگی اور مستقل مزاجی کو یقینی بنانے کے لیے، جانچ انتہائی مکمل، پیداوار جیسے ماحول میں کی جانی چاہیے۔ ٹیسٹ کے ماحول کے استحکام کو بڑھانے کی حکمت عملیوں میں ورچوئلائزیشن سافٹ ویئر (انحصار کے لیے جو آپ کی تنظیم کنٹرول اور امیج کر سکتی ہے) سروس ورچوئلائزیشن (آپ کے کنٹرول کے دائرہ کار سے باہر یا امیجنگ کے لیے غیر موزوں انحصار کے لیے)، اور ٹیسٹ ڈیٹا مینجمنٹ شامل ہیں۔ عام طریقوں کی جانچ ایک مربوط، آخر سے آخر تک معیار کے عمل کے اندر-کاروبار کی لائن کی ترجیحات کے مطابق-ترقی، کیو اے، اور آپریشنز کا تعاون ہونا چاہیے۔ ٹیسٹ منطقی طور پر اجزاء، اضافی، اور دہرائے جانے کے قابل ہونے چاہئیں ؛ نتائج فیصلہ کن اور بامعنی ہونے چاہئیں۔ تمام ٹیسٹوں کو بلڈ پائپ لائن کے کسی نہ کسی مقام پر چلانے کی ضرورت ہوتی ہے، لیکن تمام ٹیسٹوں کو ہر وقت چلانے کی ضرورت نہیں ہے کیونکہ کچھ ٹیسٹ دوسرے (یونٹ ٹیسٹ) کے مقابلے میں زیادہ وسائل مہنگے (انضمام ٹیسٹ) ہوتے ہیں۔ ٹیسٹ کے اعداد و شمار اور ماحولیاتی رکاوٹوں کو ختم کریں تاکہ ٹیسٹ پیداوار جیسے ماحول میں مسلسل اور مستقل طور پر چل سکیں۔ غلط مثبت کو کم سے کم کرنے، ٹیسٹ کی دیکھ بھال کو کم سے کم کرنے، اور ملٹی ٹائر آرکیٹیکچرز کے ساتھ جدید سسٹمز میں استعمال کے معاملات کی زیادہ مؤثر طریقے سے توثیق کرنے کے لیے، ٹیموں کو جی یو آئی ٹیسٹنگ پر اے پی آئی ٹیسٹنگ پر زور دینا چاہیے۔ چیلنجز/رکاوٹیں چونکہ جدید ایپلی کیشنز بہت زیادہ تقسیم شدہ ہیں، ٹیسٹ سوئٹ جو ان کا استعمال کرتے ہیں ان کے لیے عام طور پر انحصار تک رسائی کی ضرورت ہوتی ہے جو جانچ کے لیے آسانی سے دستیاب نہیں ہیں (مثال کے طور پر، تھرڈ پارٹی سروسز، مین فریم جو صرف محدود صلاحیت میں یا تکلیف دہ اوقات وغیرہ میں جانچ کے لیے دستیاب ہیں)۔ مزید برآں، چستی اور متوازی ترقی کے عمل کو اپنانے کے ساتھ، اینڈ ٹو اینڈ فنکشنل ٹیسٹوں کے لیے یہ عام بات ہے کہ انحصار تک رسائی کی ضرورت ہوتی ہے جو اب بھی تیار ہو رہے ہیں یا ابھی تک نافذ نہیں کیے گئے ہیں۔ اس مسئلے کو لاپتہ یا غیر دستیاب انحصار کے ساتھ ٹیسٹ (اے یو ٹی) کے تعاملات کے تحت ایپلی کیشن کی تقلید کے لیے سروس ورچوئلائزیشن کا استعمال کرکے حل کیا جا سکتا ہے۔ اس کا استعمال اس بات کو یقینی بنانے کے لیے بھی کیا جا سکتا ہے کہ مختلف ٹیسٹ رنوں میں ڈیٹا، کارکردگی اور طرز عمل یکساں ہوں۔ ٹیمیں مسلسل جانچ سے گریز کرنے کی ایک وجہ یہ ہے کہ ان کا بنیادی ڈھانچہ ٹیسٹ سوٹ کو مسلسل انجام دینے کے لیے کافی نہیں ہے۔ اس مسئلے کو کاروبار کی ترجیحات پر ٹیسٹوں پر توجہ مرکوز کرکے، ٹیسٹ کی بنیاد کو تقسیم کرکے، اور ایپلیکیشن ریلیز آٹومیشن ٹولز کے ساتھ ٹیسٹنگ کو متوازی بنا کر حل کیا جا سکتا ہے۔ مسلسل جانچ بمقابلہ خودکار جانچ مسلسل جانچ کا مقصد مستحکم، پیداوار جیسے ٹیسٹ ماحول میں "انتہائی آٹومیشن" کا اطلاق کرنا ہے۔ مسلسل جانچ کے لیے آٹومیشن ضروری ہے۔ لیکن خودکار جانچ مسلسل جانچ کی طرح نہیں ہے۔ خودکار جانچ میں ٹیم نے جو بھی ٹیسٹ جمع کیے ہیں ان کا خودکار، سی آئی پر مبنی نفاذ شامل ہے۔ خودکار جانچ سے مسلسل جانچ کی طرف بڑھنے میں ٹیسٹوں کے ایک سیٹ کو انجام دینا شامل ہے جو خاص طور پر ریلیز امیدوار سے وابستہ کاروباری خطرات کا اندازہ لگانے اور مستحکم، پیداوار جیسے ٹیسٹ ماحول کے تناظر میں ان ٹیسٹوں کو باقاعدگی سے انجام دینے کے لیے ڈیزائن کیا گیا ہے۔ خودکار اور مسلسل جانچ کے درمیان کچھ فرق: خودکار جانچ کے ساتھ، ٹیسٹ کی ناکامی کسی اہم مسئلے سے لے کر معمولی نام کے معیار کی خلاف ورزی تک کی نشاندہی کر سکتی ہے۔ مسلسل جانچ کے ساتھ، ٹیسٹ کی ناکامی ہمیشہ ایک اہم کاروباری خطرے کی نشاندہی کرتی ہے۔ مسلسل جانچ کے ساتھ، نقائص بمقابلہ کاروباری خطرات کو ترجیح دینے اور سب سے اہم خطرات کو پہلے حل کرنے کے لیے ٹیسٹ کی ناکامی کو ایک واضح ورک فلو کے ذریعے حل کیا جاتا ہے۔ مسلسل جانچ کے ساتھ، ہر بار جب کسی خطرے کی نشاندہی کی جاتی ہے، تو اس طرح کے تمام نقائص کو بے نقاب کرنے کا ایک عمل ہوتا ہے جو پہلے ہی متعارف ہو چکے ہوتے ہیں، اور ساتھ ہی مستقبل میں اسی مسئلے کو دوبارہ ہونے سے روکنے کا عمل بھی ہوتا ہے۔ سابقہ 1990 کی دہائی سے، مسلسل ٹیسٹ پر مبنی ترقی کا استعمال پروگرامرز کو اس بارے میں تیزی سے رائے فراہم کرنے کے لیے کیا گیا ہے کہ آیا انہوں نے جو کوڈ شامل کیا ہے وہ a) مناسب طریقے سے کام کرتا ہے اور b) غیر ارادی طور پر موجودہ فعالیت کو تبدیل یا توڑ دیتا ہے۔ یہ جانچ، جو انتہائی پروگرامنگ کا ایک کلیدی جزو تھا، میں خودکار تعمیر کے حصے کے طور پر یونٹ ٹیسٹ (اور بعض اوقات قبولیت ٹیسٹ یا دھواں ٹیسٹ) کو خود بخود انجام دینا شامل ہوتا ہے، اکثر دن میں کئی بار۔ یہ ٹیسٹ نفاذ سے پہلے لکھے جاتے ہیں ؛ پاسنگ ٹیسٹ اس بات کی نشاندہی کرتے ہیں کہ نفاذ کامیاب ہے۔ مسلسل ٹیسٹنگ ٹولز ریسرچ فرمز فارسٹر ریسرچ اور گارٹنر نے ٹیسٹ آٹومیشن ٹولز کے اپنے سالانہ جائزوں میں مسلسل ٹیسٹنگ کو بنیادی غور بنایا۔ گارٹنر نے 2019 میں تحقیق کا ایک تازہ ترین ورژن شائع کیا۔ گارٹنر نے 10 ٹولز کا جائزہ لیا جو انٹرپرائز گریڈ ٹیسٹ آٹومیشن ٹولز کے لیے ان کے معیار پر پورا اترتے ہیں۔ تشخیص میں گارٹنر کلائنٹس سے پوچھ گچھ، ٹول صارفین کے سروے، گارٹنر کے سوالات پر وینڈر کے جوابات، وینڈر پروڈکٹ کے مظاہرے شامل تھے۔ گارٹنر کو مقامی ونڈوز ڈیسک ٹاپ ایپلی کیشن ٹیسٹنگ اور اینڈرائیڈ یا آئی او ایس ٹیسٹنگ سپورٹ کے ساتھ ساتھ مندرجہ ذیل میں سے 3 کی حمایت کرنے کے لیے ٹولز کی ضرورت تھی: ذمہ دار ویب ایپلی کیشنز، موبائل ایپلی کیشنز، پیکیج ایپلی کیشنز، اے پی آئی/ویب سروسز۔ 2019 میجک کواڈرینٹ ریسرچ کے نتائج یہ ہیں: لیڈرز: ایگپلانٹ، اسمارٹ بیئر سافٹ ویئر، ٹرائسینٹس چیلنجرز: آئی بی ایم، مائیکرو فوکس ویژنریز: براڈ کام، پیراسافٹ طاق پلیئرز: فریگلوجک، رینوریکس، ورک سافٹ 2020 میں، فارسٹر ریسرچ نے 15 ٹولز کا جائزہ لیا جو انٹرپرائز گریڈ ٹیسٹ فنکشنل آٹومیشن ٹولز کے لیے ان کے معیار پر پورا اترتے ہیں۔ فارسٹر نے ماضی کی تحقیق، صارف کی ضروریات، اور ماہر انٹرویوز کی بنیاد پر 26 معیارات کا تعین کیا، پھر فارسٹر کے سوالات، وینڈر پروڈکٹ کے مظاہرے، اور کسٹمر انٹرویوز پر وینڈر کے جوابات کی بنیاد پر اس معیار کے مقابلے میں مصنوعات کا جائزہ لیا۔ فارسٹر کو کراس براؤزر، موبائل، UI، اور API جانچ کی صلاحیتوں کے لیے ٹولز کی ضرورت ہوتی ہے۔ 2020 کی فارسٹر لہر کے نتائج یہ ہیں: قائدین: اے سی سی ای ایل کیو، ایگپلانٹ، پیراسافٹ، ٹرائسینٹس مضبوط کارکردگی کا مظاہرہ کرنے والے: براڈ کام، آئی بی ایم، میبل، مائیکرو فوکس، پر فورس، ساس لیبز، اسمارٹ بیئر سافٹ ویئر کنٹینڈرز: سیرا، ایکسپائریٹیسٹ، ورک سافٹ چیلنجرز: رینوریکس مسلسل ترسیل کے انضمام کو بھی دیکھیں ڈیو اوپس ریلیز مینجمنٹ سروس ورچوئلائزیشن سافٹ ویئر ٹیسٹنگ ٹیسٹ آٹومیشن مزید پڑھنے حوالہ جات سافٹ ویئر ٹیسٹنگ