আমি আমাদের বর্তমান পণ্যের উপর ইন্টিগ্রেশন পরীক্ষার আমাদের ক্রমবর্ধমান সংখ্যায় স্কেলিং জন্য কৌশল এবং কৌশল তদন্ত করছি, যাতে তারা করতে পারেন (মনুষ্যোচিত) আমাদের উন্নয়নের অংশ, এবং সি আই প্রক্রিয়া থাকা।
প্রায় 200+ ইন্টিগ্রেশন পরীক্ষায় আমরা একটি সম্পূর্ণ পরীক্ষার রান (এএ ডেস্কটপ ডেভ মেশিনে) সম্পূর্ণ করতে ইতিমধ্যে 1 ঘন্টার মার্কে আঘাত করছি এবং এটি রুটিন পুশ প্রক্রিয়াগুলির অংশ হিসাবে পুরো স্যুটটি চালানো সহ্য করার বিকাশকারীর ক্ষমতাকে নেতিবাচকভাবে প্রভাবিত করছে। যা তাদের ভাল তৈরি সম্পর্কে শৃঙ্খলাবদ্ধ হওয়ার অনুপ্রেরণাকে প্রভাবিত করছে। আমরা একীভূত করার জন্য কেবল সামনে দৃশ্যের সম্মুখভাগে পরীক্ষা করি এবং আমরা এমন একটি পরিবেশ ব্যবহার করি যা উত্পাদনকে মিরর করে দেয় যা প্রতিটি পরীক্ষার রান স্ক্র্যাচ থেকে তৈরি।
যেহেতু এটি চালাতে সময় লাগে, তাই এটি একটি ভয়াবহ প্রতিক্রিয়ার লুপ তৈরি করে চলেছে এবং পরীক্ষার রানগুলি কতটা কেন্দ্রীভূত হোক না কেন, পরীক্ষার রান শেষ করার জন্য মেশিনগুলির জন্য অপেক্ষা করা অনেক অপচয় করা চক্র। প্রবাহ এবং অগ্রগতি, বিচক্ষণতা এবং স্থায়িত্বের উপর আরও ব্যয়বহুল নেতিবাচক প্রভাবকে স্মরণ করিয়ে দেবেন না।
এই পণ্যটি ধীরগতিতে শুরু হওয়ার আগে আমরা 10x ভাঁজ আরও ইন্টিগ্রেশন টেস্টের আশা করব (সত্যিই কোনও ধারণা নেই, তবে এটি এখনও মনে হয় না যে আমরা এমনকি বৈশিষ্ট্যগুলির ক্ষেত্রেও শুরু করছি)। আমাদের কয়েক শতাধিক বা কয়েক হাজার সংখ্যক ইন্টিগ্রেশন টেস্টে থাকতে হবে বলে আমরা পুনঃনির্বাচিতভাবে আশা করতে হবে, আমি এক পর্যায়ে গণনা করি।
পরিষ্কার হওয়ার জন্য, ইউনিট টেস্টিং বনাম ইন্টিগ্রেশন পরীক্ষার উপর এটি আলোচনার বিষয়টিকে আটকাতে চেষ্টা করার জন্য (যা কখনই ব্যবসা করা উচিত নয়)। আমরা এই পণ্যটিতে টিডিডি এবং ইন্টিগ্রেশন পরীক্ষার সাথে উভয় ইউনিট টেস্টিং করছি। প্রকৃতপক্ষে, আমাদের যে সেবা আর্কিটেকচার রয়েছে তার বিভিন্ন স্তরে আমরা সংহতকরণ পরীক্ষা করি, যেখানে এটি আমাদের বোধগম্য হয়, যেমন আমাদের আর্কিটেকচারের নিদর্শনগুলি অন্যান্য অঞ্চলে পরিবর্তন করার সময় আমরা কোথায় ব্রেকিংয়ের পরিচয় করিয়েছি তা যাচাই করা দরকার need পদ্ধতি.
আমাদের প্রযুক্তি স্ট্যাক সম্পর্কে একটু। আমরা বর্তমানে একটি পরীক্ষা (সিপিইউ এবং মেমরি নিবিড়) এমুলেশন পরিবেশে পরীক্ষা করে যাচ্ছি শেষ থেকে শেষ পর্যন্ত আমাদের পরীক্ষা চালাতে। যা একটি নুএসকিউএল ব্যাকএন্ড (এটিএস) ফ্রন্টিং আজুর আরইএসটি ওয়েব পরিষেবাদির সমন্বয়ে গঠিত। আমরা আজুর ডেস্কটপ এমুলেটর + আইআইএসইএক্সপ্রেসে চালিয়ে আমাদের উত্পাদন পরিবেশের অনুকরণ করছি। আমরা প্রতি মেশিনে একজন এমুলেটর এবং একটি স্থানীয় ব্যাকএন্ড সংগ্রহস্থলের মধ্যে সীমাবদ্ধ।
আমাদের পাশাপাশি একটি ক্লাউড-ভিত্তিক সিআইও রয়েছে, যা একই অনুকরণযুক্ত পরিবেশে একই পরীক্ষা চালায় এবং টেস্ট রানগুলি আমাদের বর্তমান সিআই সরবরাহকারীর সাথে ক্লাউডে দ্বিগুণ দীর্ঘ (২ ঘন্টা) + নিচ্ছে। আমরা হার্ডওয়্যার পারফরম্যান্সের ক্ষেত্রে ক্লাউড সিআই সরবরাহকারী এসএলএর সীমাতে পৌঁছেছি এবং পরীক্ষার সময়টিতে তাদের ভাতা ছাড়িয়েছি। তাদের কাছে ন্যায়সঙ্গত হওয়ার জন্য, তাদের চশমাগুলি খারাপ নয়, তবে একটি স্পেসে পরিষ্কারভাবে ইনহাউস গ্রুটি ডেস্কটপ মেশিনের চেয়ে অর্ধেক ভাল।
আমরা পরীক্ষার প্রতিটি লজিক্যাল গ্রুপের জন্য আমাদের ডেটা স্টোরটি পুনর্নির্মাণ এবং পরীক্ষার ডেটা দিয়ে প্রিলোডিংয়ের একটি পরীক্ষামূলক কৌশল ব্যবহার করছি। ডেটা অখণ্ডতার বিস্তৃতভাবে বীমা করার সময় এটি প্রতিটি পরীক্ষায় 5-15% প্রভাব যুক্ত করে। সুতরাং আমরা মনে করি পণ্য বিকাশের এই মুহুর্তে সেই পরীক্ষার কৌশলটি অনুকূল করে তোলার খুব কমই আছে।
এর দীর্ঘ এবং সংক্ষিপ্তটি হ'ল: যদিও আমরা প্রতিটি পরীক্ষার আউটপুট অনুকূলিত করতে পারি (এমনকি যদি প্রতিটি 30% -50% পর্যন্ত হয়) তবে আমরা এখনও কয়েক শতাধিক পরীক্ষা দিয়ে কার্যকরভাবে স্কেল করব না। ১ ঘন্টা এখন পর্যন্ত এখনও মানুষের সহনীয়তার তুলনায় অনেক বেশি, এটি টেকসই করার জন্য আমাদের সামগ্রিক প্রক্রিয়াতে প্রসারিত-ইশ উন্নতির একটি আদেশ প্রয়োজন।
সুতরাং, আমি পরীক্ষার সময়কে হ্রাস করার জন্য কী কী কৌশল এবং কৌশল ব্যবহার করতে পারি তা খতিয়ে দেখছি।
- কম পরীক্ষা লেখার বিকল্প নয়। দয়া করে এই থ্রেডটিতে যে কোনওটি নিয়ে বিতর্ক করবেন না।
- খুব ব্যয়বহুল হলেও দ্রুত হার্ডওয়্যার ব্যবহার করা অবশ্যই একটি বিকল্প।
- সমান্তরালভাবে পৃথক হার্ডওয়্যারে পরীক্ষা / পরিস্থিতিগুলির গ্রুপ চালানো অবশ্যই একটি পছন্দসই বিকল্প।
- উন্নয়নের অধীনে বৈশিষ্ট্য এবং পরিস্থিতিগুলির চারপাশে পরীক্ষার গোষ্ঠী তৈরি করা প্রশংসনীয়, তবে শেষ পর্যন্ত পুরো কভারেজ বা আস্থা প্রমাণ করার ক্ষেত্রে এটি নির্ভরযোগ্য নয় যে সিস্টেমটি কোনও পরিবর্তনের দ্বারা প্রভাবিত নয়।
- ডেস্কটপ এমুলেটরে চালনার পরিবর্তে ক্লাউড-স্কেলড স্টেজিং পরিবেশে দৌড়ানো প্রযুক্তিগতভাবে সম্ভব, যদিও আমরা রান পরীক্ষা করার জন্য স্থাপনার সময় যোগ করতে শুরু করি (স্টাফ মোতায়েনের জন্য পরীক্ষার শুরুতে প্রতিটি 20 মিনিট)।
- সিস্টেমের উপাদানগুলিকে স্বতন্ত্র লজিকাল টুকরোগুলিতে বিভক্ত করা একটি ডিগ্রির কাছে প্রশংসনীয় তবে আমরা এতে সীমিত মাইলেজ আশা করি, কারণ সময়গুলির সাথে উপাদানগুলির মধ্যে ইন্টারঅ্যাকশনগুলি বাড়তে পারে বলে আশা করা যায়। (অর্থাত্ পরিবর্তনটি অন্যের উপর প্রভাব ফেলতে পারে, অপ্রত্যাশিত উপায়ে - যখন একটি সিস্টেম বর্ধিতভাবে বিকাশ করা হয় প্রায়শই ঘটে)
এই স্থানটিতে অন্যরা কী কৌশল (এবং সরঞ্জামগুলি) ব্যবহার করছে তা আমি দেখতে চেয়েছিলাম।
(আমি বিশ্বাস করতে পারি যে অন্যেরা নির্দিষ্ট প্রযুক্তি সেট ব্যবহার করার ক্ষেত্রে এই জাতীয় অসুবিধা দেখতে পাবে))
[আপডেট: 12/16/2016: ফলাফলের আলোচনার জন্য আমরা সিআই সমান্তরাল পরীক্ষায় বেশি বিনিয়োগ শেষ করেছি: http://www.mindkin.co.nz/blog/2015/12/16/16-jobs]