ڊي بي ايم ايس ۾ يونٽ ٽيسٽ - اسان ان کي ڪيئن ڪريون ٿا اسپورٽ ماسٽر ۾، حصو ٻيو

پهريون حصو - هتي.

ڊي بي ايم ايس ۾ يونٽ ٽيسٽ - اسان ان کي ڪيئن ڪريون ٿا اسپورٽ ماسٽر ۾، حصو ٻيو

صورتحال جو تصور ڪريو. توهان نئين ڪارڪردگي کي ترقي ڪرڻ جي ڪم سان منهن ڪيو آهي. توهان وٽ توهان جي اڳوڻن کان ترقي آهي. جيڪڏهن اسان فرض ڪريون ته توهان وٽ اخلاقي ذميواريون نه آهن، توهان ڇا ڪندا؟

گهڻو ڪري، سڀ پراڻيون ترقيون وساري وينديون آهن ۽ هر شيء ٻيهر شروع ٿئي ٿي. ڪو به پسند نٿو ڪري ته ڪنهن ٻئي جي ڪوڊ ۾ کائي، پر جيڪڏهن توهان وٽ وقت آهي، ڇو نه توهان پنهنجو سسٽم ٺاهڻ شروع ڪيو؟ اهو هڪ عام طريقو آهي، ۽ اهو گهڻو ڪري صحيح آهي. پر اسان جي منصوبي ۾ اسان اهو غلط ڪيو. اسان مستقبل جي خودڪار ٽيسٽنگ سسٽم جو بنياد utPLSQL تي يونٽ ٽيسٽن ۾ پيش رفت تي اسان جي اڳوڻن کان، ۽ پوءِ ڪيترن ئي متوازي هدايتن ۾ ڪم ڪرڻ لاءِ ويا.

  1. پراڻي يونٽ ٽيسٽ جي بحالي. بحاليءَ جو مطلب آھي ٽيسٽن کي موجوده حالت کي وفاداري نظام جي مطابق ڪرڻ ۽ ٽيسٽ کي utPLSQL معيارن جي مطابق ڪرڻ.
  2. سمجھڻ سان مسئلو حل ڪرڻ ڇا، ڪھڙا طريقا ۽ عمل آٽو ٽيسٽ سان ڍڪيل آھن. توهان کي يا ته هن معلومات کي پنهنجي سر ۾ رکڻ گهرجي، يا سڌو سنئون آٽو ٽيسٽ ڪوڊ جي بنياد تي نتيجو ڪڍو. تنهن ڪري، اسان هڪ فهرست ٺاهڻ جو فيصلو ڪيو. اسان هر آٽو ٽيسٽ لاءِ هڪ منفرد يادگيري ڪوڊ لڳايو، هڪ وضاحت ٺاهي ۽ سيٽنگون رڪارڊ ڪيون (مثال طور، ڪهڙين حالتن ۾ ان کي لانچ ڪيو وڃي، يا ڇا ٿيڻ گهرجي جيڪڏهن ٽيسٽ لانچ ناڪام ٿئي). لازمي طور تي، اسان ميٽا ڊيٽا کي آٽو ٽيسٽ جي باري ۾ آباد ڪيو ۽ ان ميٽا ڊيٽا کي معياري utPLSQL اسڪيما جدولن ۾ رکيو.
  3. توسيع واري حڪمت عملي جي وضاحت ڪندي، يعني ڪارڪردگي جو انتخاب جيڪو خودڪار ٽيسٽ ذريعي تصديق جي تابع آهي. اسان ٽن شين تي ڌيان ڏيڻ جو فيصلو ڪيو: نئين سسٽم جي بهتري، پيداوار جا واقعا، ۽ اهم سسٽم پروسيس. اهڙيء طرح، اسان جاري ڪرڻ سان متوازي ترقي ڪري رهيا آهيون، ان جي اعلي معيار کي يقيني بڻائي، ساڳئي وقت رجعت جي دائري کي وڌايو ۽ نازڪ هنڌن تي سسٽم جي اعتبار کي يقيني بڻائي. پهرين اهڙي رڪاوٽ هڪ چيڪ تي رعايت ۽ بونس ورهائڻ جو عمل هو.
  4. قدرتي طور تي، اسان نئين آٽو ٽيسٽ کي ترقي ڪرڻ شروع ڪيو. پهرين رليز ٿيل ڪمن مان هڪ هو وفاداري سسٽم جي اڳواٽ بيان ڪيل نموني جي ڪارڪردگي جو جائزو وٺڻ. اسان جي پروجيڪٽ ۾ سخت مقرر ڪيل SQL سوالن جو هڪ بلاڪ آهي جيڪي ڪلائنٽ کي شرطن جي بنياد تي چونڊيندا آهن. مثال طور، سڀني گراهڪن جي هڪ فهرست حاصل ڪريو جن جي آخري خريداري هڪ مخصوص شهر ۾ هئي، يا انهن گراهڪن جي هڪ فهرست جن جي خريداري جي اوسط رقم هڪ خاص قيمت کان مٿي آهي. آٽو ٽيسٽ لکڻ سان، اسان اڳواٽ بيان ڪيل نمونن جي جانچ ڪئي، رڪارڊ ٿيل بينچ مارڪ ڪارڪردگي پيٽرولر، ۽ اضافي طور تي اسان وٽ لوڊ ٽيسٽنگ هئي.
  5. autotests سان ڪم ڪرڻ آسان هجڻ گهرجي. ٻه سڀ کان وڌيڪ عام ڪارناما هلائي رهيا آهن آٽو ٽيسٽ ۽ ٽيسٽ ڊيٽا ٺاهڻ. هي ڪيئن اسان جي سسٽم ۾ ٻه معاون ماڊل ظاهر ٿيا: هڪ لانچ ماڊل ۽ هڪ ڊيٽا نسل ماڊل.

    لانچر کي ھڪڙي عالمگير طريقي جي طور تي ھڪڙي متن ان پٽ پيٽرولر سان پيش ڪيو ويو آھي. هڪ پيٽرولر جي طور تي، توهان پاس ڪري سگهو ٿا autotest mnemonic ڪوڊ، پيڪيج جو نالو، ٽيسٽ جو نالو، autotest سيٽنگ، يا هڪ محفوظ ڪيل لفظ. اهو طريقو سڀني آٽو ٽيسٽ کي چونڊي ٿو ۽ هلائي ٿو جيڪي شرطن کي پورو ڪن ٿا.

    ڊيٽا جي پيداوار جو ماڊل هڪ پيڪيج جي صورت ۾ پيش ڪيو ويو آهي جنهن ۾ سسٽم جي هر شئي لاء ٽيسٽ هيٺ (ڊيٽابيس ۾ هڪ ٽيبل)، هڪ خاص طريقيڪار ٺاهي وئي آهي جيڪا ڊيٽا داخل ڪري ٿي. هن طريقيڪار ۾، ڊفالٽ قدرن کي ممڪن طور تي ڀريو ويو آهي، جيڪو هڪ آڱر جي ڪلڪ تي لفظي طور تي شين جي تخليق کي يقيني بڻائي ٿو. ۽ استعمال جي آسانيءَ لاءِ، ٺاهيل ڊيٽا لاءِ ٽيمپليٽ ٺاهيا ويا. مثال طور، هڪ مخصوص عمر جو ڪلائنٽ ٺاهيو ٽيسٽ فون ۽ مڪمل خريداري سان.

  6. آٽو ٽيسٽ شروع ٿيڻ گهرجي ۽ هڪ وقت ۾ هلائڻ گهرجي جيڪو توهان جي سسٽم لاءِ قابل قبول آهي. تنهن ڪري، هڪ روزاني رات جي شروعات منظم ڪئي وئي، جنهن جي نتيجن جي بنياد تي نتيجن تي هڪ رپورٽ ٺاهي وئي ۽ سڄي ترقياتي ٽيم کي ڪارپوريٽ ميل ذريعي موڪليو ويو. پراڻي آٽو ٽيسٽ کي بحال ڪرڻ ۽ نوان ٺاهڻ کان پوء، ڪل آپريٽنگ وقت 30 منٽ هو. اها ڪارڪردگي هر ڪنهن کي مناسب هئي، ڇاڪاڻ ته لانچ ڪم جي ڪلاڪن کان ٻاهر ٿي وئي.

    پر اسان کي ڪم جي رفتار کي بهتر ڪرڻ تي ڪم ڪرڻو پيو. پيداوار ۾ وفاداري سسٽم رات جو اپڊيٽ ڪيو ويو آهي. ھڪڙي رليز جي حصي جي طور تي، اسان کي رات جو تڪڙو تبديليون ڪرڻيون ھيون. صبح جو ٽي وڳي آٽو ٽيسٽ جي نتيجن لاءِ اڌ ڪلاڪ انتظار ڪرڻ سان، آزاديءَ جو ذميوار شخص خوش نه ٿيو (الڪسي واسيوڪوف کي پرجوش سلام!) ۽ ٻئي صبح اسان جي سسٽم لاءِ ڪيترائي مهربان لفظ چيا ويا. پر نتيجي طور، ڪم لاء 5 منٽ معيار قائم ڪيو ويو.

    ڪارڪردگي کي تيز ڪرڻ لاء، اسان ٻن طريقن کي استعمال ڪيو: آٽو ٽيسٽ ٽن متوازي موضوعن ۾ هلڻ شروع ڪيو، خوش قسمتي سان اسان جي وفاداري سسٽم جي فن تعمير جي ڪري تمام آسان آهي. ۽ اسان ان طريقي کي ڇڏي ڏنو جتي آٽو ٽيسٽ پاڻ لاءِ ٽيسٽ ڊيٽا ٺاهي نه ٿو، پر سسٽم ۾ ڪجهه مناسب ڳولڻ جي ڪوشش ڪري ٿو. تبديليون ڪرڻ کان پوء، ڪل آپريٽنگ وقت 3-4 منٽن تائين گھٽجي ويو.

  7. هڪ پروجيڪٽ خودڪار ٽيسٽ سان گڏ مختلف اسٽينڊن تي ترتيب ڏيڻ جي قابل هوندو. اسان جي سفر جي شروعات ۾، اسان جي پنهنجي بيچ فائلن کي لکڻ جي ڪوشش ڪئي وئي، پر اهو واضح ٿيو ته هڪ خود لکيل خودڪار تنصيب مڪمل خوفناڪ هو، ۽ اسان صنعتي حل ڏانهن رخ ڪيو. انهي حقيقت جي ڪري ته پروجيڪٽ ۾ تمام گهڻو سڌو ڪوڊ شامل آهي (سڀ کان پهريان، اسان آٽو ٽيسٽ ڪوڊ کي ذخيرو ڪندا آهيون) ۽ تمام گهٽ ڊيٽا (مکيه ڊيٽا آٽو ٽيسٽ بابت ميٽا ڊيٽا آهي)، Liquibase منصوبي تي عمل درآمد بلڪل سادو ٿي ويو.

    اهو هڪ کليل ذريعو، ڊيٽابيس-آزاد لائبريري آهي ٽريڪنگ، انتظام ڪرڻ، ۽ ڊيٽابيس اسڪيما تبديلين کي لاڳو ڪرڻ لاءِ. ڪمانڊ لائن يا فريم ورڪ ذريعي منظم ڪيو ويو آهي جهڙوڪ Apache Maven. Liquibase جي آپريشن جو اصول بلڪل سادو آهي. اسان وٽ ھڪڙو پروجيڪٽ ھڪڙي خاص طريقي سان منظم ڪيو ويو آھي، جنھن ۾ تبديلين يا اسڪرپٽ شامل آھن جن کي ھدف سرور ڏانھن رول ڪرڻ جي ضرورت آھي، ۽ ڪنٽرول فائلون جيڪي طئي ڪن ٿيون ته ڪھڙي ترتيب ۾ ۽ ڪھڙي نموني سان انھن تبديلين کي نصب ڪيو وڃي.

    DBMS سطح تي، هڪ خاص ٽيبل ٺاهي وئي آهي جنهن ۾ Liquibase رول اوور لاگ کي ذخيرو ڪري ٿو. هر تبديلي ۾ هڪ ڳڻپيوڪر هيش آهي، جيڪو هر وقت ڊيٽابيس ۾ منصوبي ۽ رياست جي وچ ۾ مقابلو ڪيو ويندو آهي. Liquibase جي مهرباني، اسان آساني سان اسان جي سسٽم ۾ تبديلين کي ڪنهن به سرڪٽ ۾ رول ڪري سگهون ٿا. آٽو ٽيسٽ هاڻي شروع ڪيا ويا آهن ٽيسٽ ۽ رليز سرڪٽس، ۽ گڏوگڏ ڪنٽينرز تي (ڊولپرز جي ذاتي سرڪٽس).

ڊي بي ايم ايس ۾ يونٽ ٽيسٽ - اسان ان کي ڪيئن ڪريون ٿا اسپورٽ ماسٽر ۾، حصو ٻيو

تنهن ڪري، اچو ته اسان جي يونٽ ٽيسٽنگ سسٽم کي استعمال ڪرڻ جي نتيجن بابت ڳالهايو.

  1. يقينن، سڀ کان پهريان، اسان کي يقين آهي ته اسان بهتر سافٽ ويئر تيار ڪرڻ شروع ڪيو آهي. آٽو ٽيسٽ روزانو شروع ڪيا ويا آهن ۽ هر رليز ۾ درجنوں غلطيون مليون آهن. ان کان علاوه، انهن مان ڪجهه غلطيون صرف اڻ سڌي طرح سان لاڳاپيل آهن ڪارڪردگي سان جيڪي اسان واقعي تبديل ڪرڻ چاهيندا هئاسين. اتي سنگين شڪ آهن ته اهي غلطيون دستي جاچ ذريعي مليون آهن.
  2. ٽيم کي هاڻي يقين آهي ته مخصوص ڪارڪردگي صحيح طريقي سان ڪم ڪري رهي آهي... سڀ کان پهريان، اهو اسان جي نازڪ عملن جو تعلق آهي. مثال طور، گذريل ڇهن مهينن دوران اسان کي رسيدن تي رعايتن ۽ بونس جي ورڇ ۾ ڪا به پريشاني نه هئي، رليز ٿيل تبديلين جي باوجود، جيتوڻيڪ گذريل دورن ۾ ڪجهه تعدد سان غلطيون ٿيون.
  3. اسان جانچ جي ورهاڱي جي تعداد کي گهٽائڻ ۾ ڪامياب ٿي ويا. انهي حقيقت جي ڪري ته آٽو ٽيسٽ نئين ڪارڪردگي لاءِ لکيل آهن، تجزيه نگار ۽ پارٽ ٽائيم ٽيسٽرز کي اعليٰ معيار جو ڪوڊ ملي ٿو، ڇاڪاڻ ته اهو اڳ ۾ ئي چڪاس ڪيو ويو آهي.
  4. پاڻمرادو جاچ ۾ ڪجهه ترقيون ڊولپرز پاران استعمال ڪيون ويون آهن. مثال طور، ڪنٽينرز تي ٽيسٽ ڊيٽا ٺاهي وئي آهي اعتراض نسل ماڊل استعمال ڪندي.
  5. اهو ضروري آهي ته اسان ڊولپرز جي حصي تي خودڪار ٽيسٽنگ سسٽم جي "قبوليت" ٺاهيا آهن. اتي هڪ سمجھ آهي ته هي اهم ۽ مفيد آهي. پر مان پنهنجي تجربي مان چئي سگهان ٿو ته اهو معاملو پري آهي. آٽو ٽيسٽ لکڻ جي ضرورت آهي، انهن کي سپورٽ ڪرڻ ۽ ترقي ڪرڻ جي ضرورت آهي، نتيجن جو تجزيو ڪيو وڃي، ۽ اڪثر وقت جي قيمت صرف ان جي قابل ناهي. پيداوار ڏانهن وڃڻ ۽ اتي مسئلن کي حل ڪرڻ تمام آسان آهي. هتي، ڊولپرز لائين ۽ اسان کان پڇن ٿا ته انهن جي ڪارڪردگي کي آٽو ٽيسٽ سان ڍڪڻ لاء.

ايندڙ ڇا آهي

ڊي بي ايم ايس ۾ يونٽ ٽيسٽ - اسان ان کي ڪيئن ڪريون ٿا اسپورٽ ماسٽر ۾، حصو ٻيو

اچو ته پاڻمرادو جاچ واري منصوبي جي ترقياتي منصوبن بابت ڳالهايون.

يقينن، جيستائين اسپورٽ ماسٽر جي وفاداري جو نظام زنده آهي ۽ ترقي جاري رکي ٿو، اهو پڻ ممڪن آهي ته خودڪار ٽيسٽ کي ترقي ڪرڻ لڳ ڀڳ لامحدود. تنهن ڪري، ترقي جو بنيادي رخ ڪوريج جي علائقي کي وڌائڻ آهي.

جيئن آٽو ٽيسٽ جو تعداد وڌي ٿو، انهن جي ڪل آپريٽنگ وقت مسلسل وڌندي ويندي، ۽ اسان کي ٻيهر ڪارڪردگي جي مسئلي ڏانهن موٽڻو پوندو. گهڻو ڪري، حل متوازي سلسلا جو تعداد وڌائڻ لاء ٿيندو.

پر اهي ترقي جا واضح طريقا آهن. جيڪڏهن اسان ڪجهه وڌيڪ غير معمولي بابت ڳالهايون ٿا، اسان هيٺ ڏنل نمايان ڪريون ٿا:

  1. في الحال، ڊي بي ايم ايس جي سطح تي خودڪار ٽيسٽ انتظام ڪيو ويندو آهي، يعني. ڪامياب ڪم لاءِ PL/SQL جي ڄاڻ گهربل آهي. جيڪڏهن ضروري هجي ته، سسٽم مينيجمينٽ (مثال طور، لانچ ڪرڻ يا ميٽاداٽا ٺاهڻ)، توهان ٺاهي سگهو ٿا ڪنهن قسم جو منتظم پينل استعمال ڪندي جينڪنز يا ٻيو ڪجهه.
  2. هرڪو مقداري ۽ معيار جي اشارن سان پيار ڪندو آهي. خودڪار جاچ لاءِ، اهڙو عالمگير اشارو آهي ڪوڊ ڪوريج يا ڪوڊ ڪوريج ميٽرڪ. هن اشاري کي استعمال ڪندي، اسان اهو طئي ڪري سگھون ٿا ته اسان جي سسٽم جي ڪوڊ جو سيڪڙو ٽيسٽ هيٺ ڏنل آهي آٽو ٽيسٽ ذريعي. ورجن 12.2 کان شروع ڪندي، Oracle هن ميٽرڪ کي ڳڻڻ جي صلاحيت ڏئي ٿو ۽ معياري DBMS_PLSQL_CODE_COVERAGE پيڪيج جي استعمال کي پيش ڪري ٿو.

    اسان جو آٽو ٽيسٽ سسٽم صرف هڪ سال کان مٿي آهي ۽ شايد هاڻي اسان جي ڪوريج جو جائزو وٺڻ جو وقت آهي. منهنجي آخري منصوبي ۾ (نه اسپورٽ ماسٽر پروجيڪٽ) اهو ئي ٿيو آهي. آٽو ٽيسٽ تي ڪم ڪرڻ کان هڪ سال پوءِ، انتظاميا اهو طئي ڪرڻ جو ڪم مقرر ڪيو ته اسان ڪوڊ جو ڪيترو سيڪڙو ڍڪيندا آهيون. 1٪ کان وڌيڪ ڪوريج سان، انتظام خوش ٿيندو. اسان، ڊولپرز، اٽڪل 10٪ جي نتيجي جي توقع ڪئي. اسان ڪوڊ ڪوريج نصب ڪيو، ان کي ماپ ڪيو، ۽ 20٪ حاصل ڪيو. جشن ملهائڻ لاءِ، اسان انعام وٺڻ ويا هئاسين، پر اسان اهو ڪيئن حاصل ڪيو ۽ اسان بعد ۾ ڪيڏانهن ويا، اها هڪ بلڪل مختلف ڪهاڻي آهي.

  3. آٽو ٽيسٽز بي نقاب ويب سروسز چيڪ ڪري سگھن ٿا. Oracle اسان کي اهو ڪرڻ جي اجازت ڏئي ٿو ڪافي چڱي طرح، ۽ اسان کي هاڻي ڪيترن ئي مسئلن کي منهن نه ڏيندو.
  4. ۽، يقينا، اسان جو خودڪار ٽيسٽ سسٽم ٻئي منصوبي تي لاڳو ٿي سگهي ٿو. اسان کي حاصل ڪيل حل آفاقي آهي ۽ صرف Oracle جي استعمال جي ضرورت آهي. مون ٻڌو آهي ته ٻيا اسپورٽ ماسٽر پروجيڪٽ پاڻمرادو جاچ ۾ دلچسپي رکن ٿا ۽ شايد اسان انهن ڏانهن وينداسين.

پهچڻ

اچو ته اختصار ڪريون. Sportmaster ۾ وفاداري سسٽم جي منصوبي تي، اسان هڪ خودڪار ٽيسٽنگ سسٽم کي لاڳو ڪرڻ ۾ منظم ڪيو. اهو اسٽيفن فيورسٽين کان utPLSQL حل تي ٻڌل آهي. utPLSQL جي چوڌاري آٽو ٽيسٽ ڪوڊ ۽ معاون خود لکيل ماڊلز آهن: لانچ ماڊل، ڊيٽا پيدا ڪرڻ ماڊل ۽ ٻيا. آٽو ٽيسٽ روزانو شروع ڪيا ويا آهن ۽، سڀ کان اهم، اهي ڪم ڪن ٿا ۽ مفيد آهن. اسان کي يقين آهي ته اسان اعلي معيار سافٽ ويئر ڇڏڻ شروع ڪيو آهي. ساڳئي وقت، نتيجو حل آفاقي آهي ۽ آزاديء سان ڪنهن به منصوبي تي لاڳو ٿي سگهي ٿو جتي Oracle DBMS تي خودڪار ٽيسٽ کي منظم ڪرڻ ضروري آهي.

پي ايس هي مضمون بلڪل مخصوص نه آهي: اتي تمام گهڻو متن آهي ۽ عملي طور تي ڪو به ٽيڪنيڪل مثال ناهي. جيڪڏهن موضوع عام طور تي دلچسپ آهي، ته پوءِ اسان ان کي جاري رکڻ لاءِ تيار آهيون ۽ هڪ تسلسل سان واپس اچون ٿا، جتي اسان توهان کي ٻڌائينداسين ته گذريل ڇهن مهينن ۾ ڪهڙيون تبديليون آيون آهن ۽ ڪوڊ جا مثال مهيا ڪنداسين.

تبصرو لکو جيڪڏهن اهڙا نقطا آهن جن تي مستقبل ۾ زور ڏيڻ گهرجي، يا سوال جيڪي ظاهر ڪرڻ جي ضرورت آهي.

صرف رجسٽرڊ استعمال ڪندڙ سروي ۾ حصو وٺي سگهن ٿا. سائن ان ڪريو، توهان جي مهرباني.

ڇا اسان ان بابت وڌيڪ لکنداسين؟

  • ها، ضرور

  • نه مهرباني

12 صارفين ووٽ ڪيو. 4 استعمال ڪندڙن کي روڪيو ويو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو