একটি ক্রমাগত ইন্টিগ্রেশন ড্যাশবোর্ডকে সমর্থন করার জন্য যা পরিমাপযোগ্য, পারফরম্যান্স এবং নমনীয়, VTS ড্যাশবোর্ড ব্যাকএন্ডকে অবশ্যই ডাটাবেস কার্যকারিতা সম্পর্কে একটি শক্তিশালী বোঝার সাথে সাবধানতার সাথে ডিজাইন করতে হবে। Google ক্লাউড ডেটাস্টোর হল একটি NoSQL ডাটাবেস যা লেনদেন সংক্রান্ত ACID গ্যারান্টি এবং চূড়ান্ত ধারাবাহিকতার পাশাপাশি সত্তা গোষ্ঠীর মধ্যে দৃঢ় সামঞ্জস্য প্রদান করে। যাইহোক, গঠনটি SQL ডেটাবেস (এবং এমনকি ক্লাউড বিগটেবল) থেকে অনেক আলাদা; টেবিল, সারি এবং ঘরের পরিবর্তে প্রকার, সত্তা এবং বৈশিষ্ট্য রয়েছে।
নিম্নলিখিত বিভাগগুলি VTS ড্যাশবোর্ড ওয়েব পরিষেবার জন্য একটি কার্যকর ব্যাকএন্ড তৈরি করার জন্য ডেটা কাঠামো এবং অনুসন্ধানের ধরণগুলিকে রূপরেখা দেয়৷
সত্তা
নিম্নলিখিত সংস্থাগুলি ভিটিএস পরীক্ষা চালানোর সারাংশ এবং সংস্থানগুলি সঞ্চয় করে:
- পরীক্ষা সত্তা । একটি নির্দিষ্ট পরীক্ষার টেস্ট রান সম্পর্কে মেটাডেটা সঞ্চয় করে। এটির মূল হল পরীক্ষার নাম এবং এর বৈশিষ্ট্যগুলির মধ্যে ব্যর্থতার সংখ্যা, পাসের সংখ্যা এবং পরীক্ষার ক্ষেত্রে বিচ্ছেদের তালিকা অন্তর্ভুক্ত রয়েছে যখন সতর্কীকরণ কাজগুলি এটি আপডেট করে।
- টেস্ট রান সত্তা । একটি নির্দিষ্ট পরীক্ষার রান থেকে মেটাডেটা রয়েছে। এটি অবশ্যই পরীক্ষার শুরু এবং শেষের টাইমস্ট্যাম্প, পরীক্ষার বিল্ড আইডি, পরীক্ষায় উত্তীর্ণ এবং ব্যর্থতার সংখ্যা, রানের ধরন (যেমন প্রি-সাবমিট, পোস্ট-সাবমিট, বা স্থানীয়), লগ লিঙ্কগুলির একটি তালিকা, হোস্ট সংরক্ষণ করতে হবে। মেশিনের নাম, এবং কভারেজ সারাংশ গণনা।
- ডিভাইস তথ্য সত্তা । পরীক্ষা চালানোর সময় ব্যবহৃত ডিভাইসের বিবরণ রয়েছে। এতে ডিভাইস বিল্ড আইডি, পণ্যের নাম, বিল্ড টার্গেট, শাখা এবং ABI তথ্য অন্তর্ভুক্ত রয়েছে। এক-থেকে-অনেক ফ্যাশনে মাল্টি-ডিভাইস টেস্ট রান সমর্থন করার জন্য এটি পরীক্ষা চালানো সত্তা থেকে আলাদাভাবে সংরক্ষণ করা হয়।
- প্রোফাইলিং পয়েন্ট রান সত্তা । একটি পরীক্ষা চালানোর মধ্যে একটি নির্দিষ্ট প্রোফাইলিং পয়েন্টের জন্য সংগৃহীত ডেটা সংক্ষিপ্ত করে। এটি প্রোফাইলিং ডেটার অক্ষ লেবেল, প্রোফাইলিং পয়েন্টের নাম, মান, প্রকার এবং রিগ্রেশন মোড বর্ণনা করে।
- কভারেজ সত্তা । একটি ফাইলের জন্য সংগৃহীত কভারেজ ডেটা বর্ণনা করে। এটিতে গিট প্রকল্পের তথ্য, ফাইলের পথ এবং উৎস ফাইলে প্রতি লাইনে কভারেজ গণনার তালিকা রয়েছে।
- টেস্ট কেস রান সত্তা । টেস্ট কেস নাম এবং এর ফলাফল সহ একটি টেস্ট রান থেকে একটি নির্দিষ্ট পরীক্ষার কেসের ফলাফল বর্ণনা করে।
- ব্যবহারকারীর প্রিয় সত্তা । প্রতিটি ব্যবহারকারীর সাবস্ক্রিপশন একটি সত্তায় উপস্থাপন করা যেতে পারে যাতে পরীক্ষার একটি রেফারেন্স এবং অ্যাপ ইঞ্জিন ব্যবহারকারী পরিষেবা থেকে তৈরি করা ব্যবহারকারী আইডি রয়েছে। এটি দক্ষ দ্বি-দিকনির্দেশক ক্যোয়ারী করার অনুমতি দেয় (অর্থাৎ একটি পরীক্ষায় সদস্যতা নেওয়া সমস্ত ব্যবহারকারীর জন্য এবং ব্যবহারকারীর পছন্দসই সমস্ত পরীক্ষার জন্য)।
সত্তা গ্রুপিং
প্রতিটি পরীক্ষা মডিউল একটি সত্তা গোষ্ঠীর মূল প্রতিনিধিত্ব করে। পরীক্ষা চালানো সত্তা এই গ্রুপের সন্তান এবং ডিভাইস সত্তা, প্রোফাইলিং পয়েন্ট সত্তা এবং সংশ্লিষ্ট পরীক্ষা এবং পরীক্ষা চালানোর পূর্বপুরুষের সাথে প্রাসঙ্গিক কভারেজ সত্তার পিতামাতা।
মূল পয়েন্ট: পূর্বপুরুষ সম্পর্ক ডিজাইন করার সময়, আপনাকে অবশ্যই ডাটাবেস দ্বারা প্রয়োগ করা সীমাবদ্ধতার বিরুদ্ধে কার্যকর এবং সামঞ্জস্যপূর্ণ অনুসন্ধান প্রক্রিয়া প্রদানের প্রয়োজনীয়তার ভারসাম্য বজায় রাখতে হবে।
সুবিধা
সামঞ্জস্যের প্রয়োজনীয়তা নিশ্চিত করে যে ভবিষ্যতের ক্রিয়াকলাপগুলি একটি লেনদেনের প্রভাব দেখতে পাবে না যতক্ষণ না এটি প্রতিশ্রুতিবদ্ধ হয় এবং অতীতের লেনদেনগুলি বর্তমান অপারেশনগুলিতে দৃশ্যমান হয়৷ ক্লাউড ডেটাস্টোরে, এন্টিটি গ্রুপিং গ্রুপের মধ্যে শক্তিশালী পঠন এবং লেখার সামঞ্জস্যের দ্বীপ তৈরি করে, যা এই ক্ষেত্রে পরীক্ষা চালানো এবং একটি পরীক্ষার মডিউলের সাথে সম্পর্কিত ডেটা। এটি নিম্নলিখিত সুবিধাগুলি অফার করে:
- সতর্কতামূলক কাজের দ্বারা পরীক্ষা মডিউল স্থিতিতে পড়া এবং আপডেটগুলিকে পারমাণবিক হিসাবে বিবেচনা করা যেতে পারে
- পরীক্ষার মডিউলের মধ্যে পরীক্ষার ক্ষেত্রে ফলাফলের সুসংগত দৃশ্যের নিশ্চয়তা
- পূর্বপুরুষ গাছের মধ্যে দ্রুত অনুসন্ধান
সীমাবদ্ধতা
একটি সত্তা গোষ্ঠীতে প্রতি সেকেন্ডে একটি সত্তার চেয়ে দ্রুত হারে লেখার পরামর্শ দেওয়া হয় না কারণ কিছু লেখা প্রত্যাখ্যান করা যেতে পারে। যতক্ষণ না সতর্কতামূলক কাজ এবং আপলোডিং প্রতি সেকেন্ডে একটি লেখার চেয়ে দ্রুত গতিতে না ঘটে, ততক্ষণ কাঠামোটি দৃঢ় এবং শক্তিশালী ধারাবাহিকতার নিশ্চয়তা দেয়।
পরিশেষে, প্রতি সেকেন্ডে প্রতি টেস্ট মডিউলে একটি লেখার ক্যাপ যুক্তিসঙ্গত কারণ টেস্ট রান সাধারণত VTS ফ্রেমওয়ার্কের ওভারহেড সহ কমপক্ষে এক মিনিট সময় নেয়; 60 টিরও বেশি বিভিন্ন হোস্টে একটি পরীক্ষা ধারাবাহিকভাবে একযোগে চালানো না হলে, লেখার বাধা থাকতে পারে না। এটি আরও অসম্ভাব্য হয়ে ওঠে যে প্রতিটি মডিউল একটি পরীক্ষার পরিকল্পনার অংশ যা প্রায়শই এক ঘন্টার বেশি সময় নেয়। যদি হোস্ট একই সময়ে পরীক্ষা চালায়, একই হোস্টে লেখার সংক্ষিপ্ত বিস্ফোরণ ঘটায় (যেমন লেখার ত্রুটি ধরা এবং আবার চেষ্টা করে) অসঙ্গতিগুলি সহজেই পরিচালনা করা যেতে পারে।
স্কেলিং বিবেচনা
একটি পরীক্ষা চালানোর জন্য অগত্যা তার অভিভাবক হিসাবে পরীক্ষা থাকতে হবে না (যেমন এটি অন্য কোন কী নিতে পারে এবং পরীক্ষার নাম থাকতে পারে, বৈশিষ্ট্য হিসাবে পরীক্ষা শুরুর সময়); যাইহোক, এটি চূড়ান্ত ধারাবাহিকতার জন্য শক্তিশালী ধারাবাহিকতা বিনিময় করবে। উদাহরণস্বরূপ, সতর্কতামূলক কাজটি একটি টেস্ট মডিউলের মধ্যে সাম্প্রতিকতম টেস্ট রানগুলির একটি পারস্পরিক সামঞ্জস্যপূর্ণ স্ন্যাপশট দেখতে নাও পারে, যার মানে হল যে বৈশ্বিক রাষ্ট্র টেস্ট রানের ক্রমগুলির সম্পূর্ণ সঠিক উপস্থাপনা চিত্রিত করতে পারে না। এটি একটি একক পরীক্ষা মডিউলের মধ্যে পরীক্ষা চালানোর প্রদর্শনকেও প্রভাবিত করতে পারে, যা অগত্যা রান ক্রমটির একটি সামঞ্জস্যপূর্ণ স্ন্যাপশট হতে পারে না। শেষ পর্যন্ত স্ন্যাপশট সামঞ্জস্যপূর্ণ হবে, কিন্তু নতুন ডেটা হবে এমন কোন নিশ্চয়তা নেই।
টেস্ট কেস
আরেকটি সম্ভাব্য বাধা হ'ল অনেকগুলি পরীক্ষার ক্ষেত্রে বড় পরীক্ষা। দুটি অপারেটিভ সীমাবদ্ধতা হল 500টি সত্তার সর্বোচ্চ লেনদেনের আকার সহ প্রতি সেকেন্ডে একটি সত্তা গোষ্ঠীর মধ্যে লিখিত থ্রুপুট সর্বাধিক।
একটি পদ্ধতি হল একটি পরীক্ষার কেস নির্দিষ্ট করা যার একটি পূর্বপুরুষ হিসাবে একটি পরীক্ষা চালানো হয় (কভারেজ ডেটা, প্রোফাইলিং ডেটা এবং ডিভাইসের তথ্য কীভাবে সংরক্ষণ করা হয় তার অনুরূপ):
যদিও এই পদ্ধতিটি পারমাণবিকতা এবং সামঞ্জস্যের প্রস্তাব দেয়, এটি পরীক্ষার উপর দৃঢ় সীমাবদ্ধতা আরোপ করে: যদি একটি লেনদেন 500টি সত্ত্বার মধ্যে সীমাবদ্ধ থাকে, তাহলে একটি পরীক্ষায় 498 টির বেশি পরীক্ষার ক্ষেত্রে থাকতে পারে না (অনুমান করে কোনো কভারেজ বা প্রোফাইলিং ডেটা নেই)। যদি একটি পরীক্ষা এটি অতিক্রম করে, তাহলে একটি একক লেনদেন একবারে সমস্ত পরীক্ষার ক্ষেত্রে ফলাফল লিখতে পারে না, এবং পরীক্ষার কেসগুলিকে পৃথক লেনদেনে ভাগ করলে প্রতি সেকেন্ডে একটি পুনরাবৃত্তির সর্বোচ্চ সত্তা গ্রুপ থ্রুপুট অতিক্রম করতে পারে। যেহেতু এই সমাধানটি কর্মক্ষমতা ত্যাগ না করে ভালভাবে মাপবে না, এটি সুপারিশ করা হয় না।
যাইহোক, টেস্ট কেস ফলাফলগুলি পরীক্ষার বাচ্চাদের হিসাবে সংরক্ষণ করার পরিবর্তে, টেস্ট কেসগুলি স্বাধীনভাবে সংরক্ষণ করা যেতে পারে এবং টেস্ট রানে তাদের কীগুলি সরবরাহ করা যেতে পারে (একটি টেস্ট রানে তার টেস্ট কেস সত্তাগুলির সনাক্তকারীর একটি তালিকা থাকে):
প্রথম নজরে, এটি শক্তিশালী ধারাবাহিকতার গ্যারান্টি ভঙ্গ বলে মনে হতে পারে। যাইহোক, যদি ক্লায়েন্টের একটি পরীক্ষা চালানো সত্তা এবং টেস্ট কেস শনাক্তকারীর একটি তালিকা থাকে, তাহলে এটিকে একটি প্রশ্ন তৈরি করার প্রয়োজন নেই; এটি পরিবর্তে তাদের শনাক্তকারীদের দ্বারা সরাসরি পরীক্ষার কেস পেতে পারে, যা সর্বদা সামঞ্জস্যপূর্ণ হওয়ার গ্যারান্টিযুক্ত। এই পদ্ধতিটি একটি সত্তা গোষ্ঠীর মধ্যে অত্যধিক লেখার হুমকি না দিয়ে দৃঢ় সামঞ্জস্য অর্জনের সময় একটি পরীক্ষা চালানোর পরীক্ষার ক্ষেত্রে সংখ্যার সীমাবদ্ধতাকে ব্যাপকভাবে উপশম করে।
ডেটা অ্যাক্সেস প্যাটার্ন
VTS ড্যাশবোর্ড নিম্নলিখিত ডেটা অ্যাক্সেস প্যাটার্ন ব্যবহার করে:
- ব্যবহারকারীর পছন্দ । একটি সম্পত্তি হিসাবে নির্দিষ্ট অ্যাপ ইঞ্জিন ব্যবহারকারী অবজেক্ট থাকা ব্যবহারকারীর পছন্দসই সত্তাগুলিতে একটি সমতা ফিল্টার ব্যবহার করে অনুসন্ধান করা যেতে পারে।
- পরীক্ষার তালিকা । পরীক্ষার সত্তার সহজ প্রশ্ন। হোম পেজ রেন্ডার করার জন্য ব্যান্ডউইথ কমাতে, পাস করা এবং ফেল করা গণনায় একটি প্রজেকশন ব্যবহার করা যেতে পারে যাতে ব্যর্থ পরীক্ষার কেস আইডি এবং সতর্ককারী কাজের দ্বারা ব্যবহৃত অন্যান্য মেটাডেটার সম্ভাব্য দীর্ঘ তালিকা বাদ দেওয়া যায়।
- টেস্ট রান । পরীক্ষা চালানো সত্তার জন্য অনুসন্ধানের জন্য কী (টাইমস্ট্যাম্প) এবং সম্ভাব্য ফিল্টারিং বৈশিষ্ট্যগুলির উপর একটি সাজানো প্রয়োজন যেমন বিল্ড আইডি, পাসিং কাউন্ট ইত্যাদি। একটি পরীক্ষা সত্তা কী সহ পূর্বপুরুষের প্রশ্ন সম্পাদন করার মাধ্যমে, পাঠটি দৃঢ়ভাবে সামঞ্জস্যপূর্ণ। এই মুহুর্তে, পরীক্ষা চালানো সম্পত্তিতে সংরক্ষিত আইডিগুলির তালিকা ব্যবহার করে সমস্ত পরীক্ষার ফলাফল পুনরুদ্ধার করা যেতে পারে; এটি ডাটাস্টোর গেট অপারেশনের প্রকৃতির দ্বারা একটি দৃঢ়ভাবে সামঞ্জস্যপূর্ণ ফলাফল হওয়ার নিশ্চয়তা।
- প্রোফাইলিং এবং কভারেজ ডেটা । পরীক্ষার সাথে সম্পর্কিত প্রোফাইলিং বা কভারেজ ডেটার জন্য অনুসন্ধান করা অন্য কোনও পরীক্ষা চালানোর ডেটা (যেমন অন্যান্য প্রোফাইলিং/কভারেজ ডেটা, টেস্ট কেস ডেটা ইত্যাদি) পুনরুদ্ধার না করেও করা যেতে পারে। টেস্ট টেস্ট এবং টেস্ট রান সত্তা কী ব্যবহার করে একটি পূর্বপুরুষের ক্যোয়ারী পরীক্ষা চালানোর সময় রেকর্ড করা সমস্ত প্রোফাইলিং পয়েন্ট পুনরুদ্ধার করবে; প্রোফাইলিং পয়েন্টের নাম বা ফাইলের নাম ফিল্টার করে, একটি একক প্রোফাইলিং বা কভারেজ সত্তা পুনরুদ্ধার করা যেতে পারে। পূর্বপুরুষের প্রশ্নের প্রকৃতির দ্বারা, এই অপারেশনটি দৃঢ়ভাবে সামঞ্জস্যপূর্ণ।
UI এর বিশদ বিবরণের জন্য এবং এই ডেটা প্যাটার্নগুলির স্ক্রিনশটগুলি কার্যকরীভাবে দেখুন, VTS ড্যাশবোর্ড UI দেখুন।