اپیئم بمقابلہ آبائی فریم ورک: ایک موازنہ

بذریعہ کوروس علی آبادی اور روہن جنجوعہ

یہ پوسٹ ہمارے تجربات کا خلاصہ ہے نہ کہ پوری تصویر۔ ہم آپ کو اپنی تحقیق میں مدد کے ل future آئندہ پوسٹوں میں کچھ روابط فراہم کریں گے اور اس پر مزید روشنی ڈالیں گے۔ ہم امید کرتے ہیں کہ موبائل کے آٹومیشن کے کچھ معروف طریقوں کے درمیان انتخاب کرنا چاہنے والے ہر شخص کے لئے یہ ایک اچھا نقطہ آغاز ہوگا۔

وہاں آٹو میشن کے متبادل کے آلے موجود ہیں لیکن اس بلاگ پوسٹ کے تناظر میں ہم خود کو اس اپیم اور IOS اور Android کیلئے ڈیفالٹ دیسی ٹولز تک محدود رکھیں گے: بالترتیب XCUITests اور ایسپریسو۔

اپیم:

ایپیم گذشتہ کچھ سالوں میں موبائل آٹومیشن کے لئے ڈیفیکٹو ٹول رہا ہے ، جس سے سیلینئم جیسے تجربے کی فراہمی ہوتی ہے۔ ابھی تک متعدد وجوہات کی بناء پر یہ پیشہ ورانہ طور پر قابل عمل انتخابات میں سے ایک رہا ہے۔

  1. سب سے پہلے یہ زبان زراعت کی زبان ہے ، جس میں وسیع پیمانے پر مقبول زبانوں کی حمایت حاصل ہے۔ اگر آپ کی پسند کی زبان میں ایک ویب ڈرایور کلائنٹ ہے تو ، آپ ایپیم استعمال کرنے کے اہل ہوں گے۔ یہ مشترکہ jsonWirePotocol پر ہے۔ یہ بڑی سہولت کی ہے کیونکہ اس سے ٹیسٹ ڈویلپرز کو ٹول کو جلدی سے لینے کی اجازت ملتی ہے۔ تائید شدہ زبانوں میں شامل ہیں ، لیکن یہ صرف جاوا ، C # ، جاوا اسکرپٹ ، ازگر اور روبی تک محدود نہیں ہیں۔
  2. آسانی سے شروع کرنا آسان ہے۔ اسی طرح پچھلے نقطہ کی طرح ، اپیم بھی سیلینیم ویب ڈرایور سے بہت مماثلت رکھتا ہے۔ اس کا فائدہ یہ ہے کہ اگر ٹیسٹ ڈویلپرس سیلینیم ویب ڈرایور ویب ٹیسٹ لکھنے کے عادی ہوجاتے ہیں تو اپیئم لینے کے ل relatively نسبتا simple آسان اور بالکل بدیہی ہونا چاہئے۔
  3. ایک ہی ٹیسٹ کوڈ بیس سے اپیم ایک سے زیادہ پلیٹ فارمز کی جانچ کے قابل بناتا ہے۔ سنٹرلائزڈ ٹیسٹ ٹیم یا ایسی ٹیم میں کام کرنے والے افراد کے لئے جو آئی او ایس اور اینڈروئیڈ دونوں میں کام کرتی ہے ، اس سے ٹیسٹ انفراسٹرکچر اور ایمولیٹروں کے ساتھ کام کرنے کیلئے بوائلر پلیٹ کوڈ کی مقدار کو کم کیا جاسکتا ہے۔
  4. اضافی طور پر ہمارے کچھ ٹیسٹ انجینئروں کے تجربے میں ، ایپیم پر دوسرے مدمقابلوں کے مقابلہ میں ویب ویوز کا استعمال کرنے والے مقامی ایپس کے لئے تعاون بہتر ہے۔ جب ہائبرڈ ایپس کو خود کار کرنے کی بات آتی ہے تو اپیم کے ذریعہ فراہم کردہ مدد انمول ثابت ہوسکتی ہے۔

اپیم استعمال کرنے کے کچھ نقصانات بھی ہیں۔

  1. ہمارے تجربے میں ، آپیپیم کے ٹیسٹ XCUITests یا ایسپریسو میں لکھے گئے ٹیسٹوں سے کہیں زیادہ آہستہ چلتے ہیں
  2. ٹیسٹ کوڈ ڈی کوڈ کے ساتھ نہیں رہتا ہے۔ اب یہ بحث کے لئے تیار ہوسکتا ہے ، لیکن ہم مضبوطی سے محسوس کرتے ہیں کہ ٹیسٹ کوڈ اور دیو کوڈ کو ایک دوسرے کے قریب رہنا چاہئے۔
  3. کراس پلیٹ فارم ایپس کی جانچ کے ل App آپپیئم کے ساتھ ہمیشہ کچھ حد تک تکنیکی پیچیدگی شامل ہوگی۔ آپ کو یا تو کرنا ہوگا:
  4. پیج آوبجیکٹس / اسکرین آؤبیکٹس کے 2 سیٹ برقرار رکھیں جو کسی ایک معاہدے پر چلتے ہیں تاکہ ان کو صرف ایک سیٹ کے ٹیسٹ سے بلایا جاسکے۔
  5. ٹیسٹ کے 2 سیٹ لکھیں
  6. یقینی بنائیں کہ ڈویلپرز دونوں ایپس میں ایک ہی شناختی ID استعمال کریں

آبائی اوزار:

ایپ کی نشوونما کے لئے دو اہم پلیٹ فارمز میں اب خود کے بہت مسابقتی UI آٹومیشن ٹولز موجود ہیں: XCUITest اور ایسپریسو۔ ان دونوں ٹولز کی پختگی میں ڈرامائی طور پر بہتری آئی ہے اور ڈبلیوڈبلیو ڈی سی 2017 ایپل میں حالیہ گفتگو میں یہ واضح ہوگیا ہے کہ وہ اپنے UI آٹومیشن ٹولز کو بہتر بنانے پر کام کرنے میں بہت متحرک ہیں۔

  1. XCUITest اور ایسپریسو کا استعمال کرنے کا ایک بنیادی فائدہ ہے: وہ پلیٹ فارم فراہم کرنے والے تیار کرتے ہیں: ایپل اور گوگل۔ یہ ٹولز آئی او ایس اور اینڈروئیڈ ٹیسٹنگ کے لve وکر سے پہلے ہمیشہ آگے رہیں گے۔ اپیم کی طرف سے کوئی بھی نئی خصوصیت زیادہ تر معاملات میں موجودہ آبائی آلے کی فعالیت کے اوپری حصے میں بنی ہوگی۔
  2. ہماری نظر میں ایک اور بڑا فائدہ یہ ہے کہ آپ اپنے پروجیکٹ کے ماخذ کوڈ کے ساتھ ٹیسٹ کوڈ کو بھی شامل کریں گے۔ یہ شاید تھوڑی بحث کے لئے ہے لیکن ہم اس بارے میں آئندہ پوسٹ میں گفتگو کریں گے۔ ابھی ہم صرف یہ بتائیں گے کہ ہمارا یقین ہے کہ اسی پروجیکٹ کے اندر اور اسی زبان میں آپ کے ٹیسٹ کوڈ کو بھی شامل کریں گے جس کے استعمال کرنے والے آپ کے ڈویلپرز کو بہت زیادہ فوائد حاصل ہیں۔ یہ ٹیم کے مابین باہمی تعاون کے لئے مزید حوصلہ افزائی کرتا ہے اور ہر ایک کو سافٹ ویئر ڈویلپمنٹ کے اس پہلو میں آسانی سے حصہ ڈالنے کی اجازت دیتا ہے۔
  3. بعض اوقات android ڈاؤن لوڈ کے تجربے کو iOS کے تجربے سے مختلف سمجھا جاتا ہے ، ہر پلیٹ فارم کے لئے اپنے ٹیسٹ لکھ کر آپ کو ان حالات کو سنبھالنے کے لئے اپنے ٹیسٹ فریم ورک کو پیچیدہ نہیں کرنا پڑتا ہے۔
  4. بہت کم flaky. آبائی ٹولز کم فلیکی ہیں۔ اس میں آزمائشی کوڈ اور اوزار کے مابین بہت کم حرکت پذیر حصوں اور مواصلات کی کم تہوں کے ساتھ کچھ کام ہوسکتا ہے ، لیکن مقامی ٹولز کے ساتھ لکھے گئے ٹیسٹ بہت کم فلاکی معلوم ہوتے ہیں۔
  5. آپ اس سے کہیں زیادہ ٹول سیٹ استعمال کرسکتے ہیں اگر آپ اپیم جیسے آلے کو استعمال کریں۔ Android کے ساتھ مثال کے طور پر آپ کو UIAutomator لائبریری اور ایسپریسو لائبریری دونوں تک رسائی حاصل ہے۔

ایسپریسو:

گوگل کے اینڈروئیڈ ٹیسٹنگ ٹول ایسپریسو کی اپنی کچھ صاف خصوصیات ہیں جو قابل ذکر ہیں۔

  1. ایسپریسو بہت تیز ہے ، ہم نے UI آٹومیشن میں اتنی تیز چیز کبھی نہیں دیکھی۔ یہ فلیش آف UI آٹومیشن کی طرح ہے ، کوئی اور ٹول اس کی رفتار کے قریب نہیں آتا ہے۔
  2. آپ کو اپنے ٹیسٹ کوڈ میں چیزوں کے ہونے یا ختم ہونے کے بارے میں انتظار کرنے کی ضرورت نہیں ہے کیوں کہ کچھ غیر معمولی معاملات کو چھوڑ کر ایسپریسو آپ کے لئے یہ کام سنبھالتا ہے۔ یہ بنیادی طور پر مساوات سے باہر UI آٹومیشن کے بارے میں سب سے بریک چیز لیتا ہے۔
  3. ایسپریسو نے ایک 'گرے باکس' جانچنے کا طریقہ اختیار کیا۔ کافی بلیک باکس نہیں ، بالکل سفید نہیں ہے۔ یسپریسو کے ساتھ ایپیم جیسے بلیک باکس ٹول کے مقابلے میں ٹیسٹر کا اطلاق پر بہت زیادہ کنٹرول ہوتا ہے۔
  4. ایسپریسو ٹیسٹر کو روبو الیکٹرک جیسے ٹولز کا استعمال کرنے کی اجازت دیتا ہے ، بغیر کسی سمیلیٹر کو شروع کیے یا ڈیوائس میں پلگ ان بنائے بغیر ، Android SDK کو چلانے کے لئے ایک فریم ورک۔ اس کا مطلب یہ ہے کہ آپ کے ٹیسٹ تیزی سے شروع ہوجاتے ہیں ، اور تیزی سے چلتے ہیں۔

ایسپریسو جیسا ایک فریم ورک ہے ، جسے گوگل نے بھی iOS ٹیسٹنگ کے لئے تشکیل دیا ہے ، جو یہاں قابل ذکر ہے: ارلگری۔ ہم نے اسے استعمال نہیں کیا ہے ، لیکن اگر یہ ایسپریسو کے کچھ فوائد کو آئی او ایس پر لاتا ہے تو اس کی چھان بین کرنے کے قابل ہے۔

مقامی ٹیسٹ کے آلے کو استعمال کرنے میں بھی کچھ نقصانات ہیں۔

  1. اگر آپ کراس پلیٹ فارم ایپ تیار کررہے ہیں تو ، آپ نے ایپیم جیسے آلے کو استعمال کرنے کے مقابلے میں ممکنہ طور پر ٹیسٹوں کی دوگنی تعداد برقرار رکھنی ہوگی۔
  2. اگر آپ کراس پلیٹ فارم ایپ تیار کررہے ہیں تو ، آپ کو دو زبانیں جاننے کی ضرورت ہوگی۔
  3. اس نقطہ نظر میں مزید پیچیدگیاں شامل ہوسکتی ہیں۔ یہ اضافی طاقت اور رسائ کا ایک ضمنی اثر ہے جو ایسپریسو جیسا ٹول ٹیسٹر دے سکتا ہے۔ مثال کے طور پر ایسپریسو خود بخود آئیڈلنگ ریسورس کا استعمال کرتے ہوئے ٹیسٹ کے تحت ایپلیکیشن میں ہونے والے واقعات کا انتظار کرتا ہے۔ تاہم کچھ معاملات کے لئے ٹیسٹر کو دستی طور پر ایڈلنگ ریسورس نافذ کرنا ہوگا۔
  4. ایسپریسو جیسے ٹول کی مدد سے ، ٹیسٹر ایپلی کیشن کو ایسی کیفیت میں ڈال سکتا ہے کہ یہ کسی صارف کے نقطہ نظر سے نہیں پہنچ پائے گا۔ ایک بار پھر ، یہ آپ کو ملنے والی اضافی طاقت کا دوسرا رخ ہے۔