ট্রেড ফেডারেশন (সংক্ষেপে ট্রেডফেড বা TF) হল একটি ক্রমাগত পরীক্ষার কাঠামো যা অ্যান্ড্রয়েড ডিভাইসে পরীক্ষা চালানোর জন্য ডিজাইন করা হয়েছে। উদাহরণস্বরূপ, Tradefed ব্যবহার করা হয় সামঞ্জস্য পরীক্ষা স্যুট (CTS) এবং Vendor Test Suite (VTS) চালানোর জন্য।
ট্রেড ফেডারেশন হল একটি জাভা অ্যাপ্লিকেশন যা একটি হোস্ট কম্পিউটারে চলে এবং ddmlib (DDMS এর পিছনের লাইব্রেরি) adb ব্যবহার করে এক বা একাধিক Android ডিভাইসে যোগাযোগ করে।
আমরা কয়েকটি নমুনা ব্যবহারের কেস সহ নীচে TF-এর কিছু প্রধান বৈশিষ্ট্য তালিকাভুক্ত করেছি। তাতে বলা হয়েছে, আপনি যদি ডানদিকে ঝাঁপিয়ে পড়তে চান এবং শুরু করতে চান, আপনি সরাসরি এখানে স্টার্ট পৃষ্ঠার দিকে যেতে পারেন।
বৈশিষ্ট্য
- মডুলার, নমনীয়, মাপযোগ্য নকশা
- বিভিন্ন ধরণের অ্যান্ড্রয়েড পরীক্ষা চালানোর জন্য সমর্থন তৈরি করেছে: ইন্সট্রুমেন্টেশন , uiautomator , নেটিভ/gtest, হোস্ট-ভিত্তিক JUnit, ইত্যাদি
- adb-এর উপরে নির্ভরযোগ্যতা এবং পুনরুদ্ধার প্রক্রিয়া প্রদান করে
- সমান্তরাল একাধিক ডিভাইসে সময় নির্ধারণ এবং চলমান পরীক্ষা সমর্থন করে
আপনার বিদ্যমান পরীক্ষাগুলি যেমন ইন্সট্রুমেন্টেশন চালানোর বিষয়ে সবচেয়ে আপ-টু-ডেট তথ্যের জন্য TF এর মাধ্যমে টেস্টিং দেখুন।
ব্যবহারের ক্ষেত্রে
ট্রেড ফেডারেশনের মডুলারিটি বিদ্যমান বিল্ড, টেস্ট এবং রিপোর্টিং অবকাঠামো সহ পরিবেশে স্লট করা সহজ করে তোলে। আমরা নীচে কয়েকটি প্রদর্শনমূলক ব্যবহারের কেস তালিকাভুক্ত করি যেখানে ট্রেডফেড দক্ষ, মাপযোগ্য পরীক্ষা অনুশীলনগুলি সক্ষম করতে পারে।
প্রথমত, "কোন অংশগুলি পরিবর্তনযোগ্য এবং কোন অংশগুলি স্থির?" এই প্রশ্নের পরিপ্রেক্ষিতে সম্ভাব্য ব্যবহারের ক্ষেত্রের ল্যান্ডস্কেপ বিবেচনা করা দরকারী উদাহরণস্বরূপ, একটি ডিভাইস OEM ফ্রেমওয়ার্ক, সিস্টেম এবং হার্ডওয়্যার পরিবর্তন করতে পারে, কিন্তু বিদ্যমান অ্যাপ্লিকেশনগুলির উপর সামান্য বা কোন প্রভাব নেই। অন্যদিকে, একজন অ্যাপ্লিকেশন বিকাশকারী অ্যাপটিকে সংশোধন করতে পারে, তবে সিস্টেম বা কাঠামোর বেশিরভাগ দিকগুলির উপর তার খুব কম নিয়ন্ত্রণ থাকে।
ফলস্বরূপ, প্রতিটি ব্যবহারের ক্ষেত্রে একটি সত্তার আলাদা পরীক্ষার লক্ষ্য থাকবে, এবং পরীক্ষার ব্যর্থতার সেটের ক্ষেত্রে ভিন্ন বিকল্প থাকবে। এই পার্থক্য থাকা সত্ত্বেও, ট্রেড ফেডারেশন তাদের প্রতিটি পরীক্ষা প্রক্রিয়াকে দক্ষ, নমনীয় এবং মাপযোগ্য করতে সাহায্য করতে পারে।
ডিভাইস OEM
একটি ডিভাইস OEM হার্ডওয়্যার তৈরি করে এবং প্রায়শই সেই হার্ডওয়্যারে ভালভাবে চালানোর জন্য অ্যান্ড্রয়েড সিস্টেম এবং ফ্রেমওয়ার্কগুলিকে পরিবর্তন করে। হার্ডওয়্যার এবং সিস্টেম স্তরে স্থিতিশীলতা এবং কর্মক্ষমতা বজায় রেখে এবং ফ্রেমওয়ার্কের পরিবর্তনগুলি বিদ্যমান অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্যতা ভঙ্গ না করে তা নিশ্চিত করার সময় OEM সেই লক্ষ্যগুলি অর্জনের জন্য প্রচেষ্টা করতে পারে।
OEM একটি ডিভাইস ফ্ল্যাশিং মডিউল বাস্তবায়ন করতে পারে যা জীবনচক্রের টার্গেট সেটআপ পর্যায়ে কার্যকর হবে৷ সেই মডিউলটির কার্যকর করার সময়কালে ডিভাইসটির উপর সম্পূর্ণ নিয়ন্ত্রণ থাকবে, যা এটিকে সম্ভাব্যভাবে ডিভাইসটিকে বুটলোডার, ফ্ল্যাশ, এবং তারপরে ডিভাইসটিকে ইউজারস্পেস মোডে পুনরায় বুট করতে বাধ্য করার অনুমতি দেবে। একটি ক্রমাগত বিল্ড সিস্টেমে বাঁধার জন্য একটি মডিউলের সাথে মিলিত, এটি OEM-কে তাদের ডিভাইসে পরীক্ষা চালানোর অনুমতি দেবে কারণ তারা সিস্টেম-স্তরের ফার্মওয়্যার এবং জাভা-স্তরের কাঠামোতে পরিবর্তন করে।
একবার ডিভাইসটি সম্পূর্ণরূপে বুট হয়ে গেলে, OEM আগ্রহের কার্যকারিতা যাচাই করতে বিদ্যমান JUnit-ভিত্তিক পরীক্ষাগুলি বা নতুন লিখতে সক্ষম হবে। পরিশেষে, তারা বিদ্যমান পরীক্ষা-ফলাফল সংগ্রহস্থলের সাথে সংযুক্ত করার জন্য এক বা একাধিক ফলাফল রিপোর্টিং মডিউল লিখতে পারে, বা সরাসরি ফলাফল রিপোর্ট করতে পারে (উদাহরণস্বরূপ, ইমেলের মাধ্যমে )।
অ্যাপ ডেভেলপার
একটি অ্যাপ্লিকেশন বিকাশকারী একটি অ্যাপ্লিকেশন তৈরি করে যা বিভিন্ন প্ল্যাটফর্ম সংস্করণ এবং বিভিন্ন ডিভাইস জুড়ে ভালভাবে চলতে হবে। যদি একটি নির্দিষ্ট প্ল্যাটফর্ম সংস্করণ এবং/অথবা ডিভাইসে একটি সমস্যা আসে, তবে একমাত্র প্রতিকার হল একটি সমাধান যোগ করা এবং এগিয়ে যাওয়া। বৃহত্তর বিকাশকারীদের জন্য, পরীক্ষার প্রক্রিয়াটি একটি অবিচ্ছিন্ন বিল্ড সিকোয়েন্সে অন্তর্ভুক্ত করা যেতে পারে। ছোট ডেভেলপারদের জন্য, এটি পর্যায়ক্রমে বা হাত দ্বারা বন্ধ করা হতে পারে।
বেশিরভাগ অ্যাপ ডেভেলপাররা apk টেস্ট ইনস্টলেশন মডিউল ব্যবহার করবে যা আগে থেকেই TF-এ বিদ্যমান। একটি সংস্করণ রয়েছে যা স্থানীয় ফাইল সিস্টেম থেকে ইনস্টল করে , সেইসাথে একটি সংস্করণ যা একটি বিল্ড পরিষেবা থেকে ডাউনলোড করা apks ইনস্টল করতে পারে৷ এটি লক্ষ করা গুরুত্বপূর্ণ যে পরবর্তী সংস্করণটি একই হোস্ট মেশিনে চলমান অনেকগুলি TF দৃষ্টান্তের সাথে সঠিকভাবে কাজ করতে থাকবে।
একাধিক ডিভাইসের সাথে ডিল করার ক্ষেত্রে TF-এর দক্ষতার কারণে, সেই পরীক্ষার জন্য ব্যবহৃত ডিভাইসের ধরন অনুসারে প্রতিটি পরীক্ষার ফলাফলকে শ্রেণিবদ্ধ করা সহজ হবে। এইভাবে, TF সম্ভাব্যভাবে অ্যাপ্লিকেশনটির প্রতিটি বিল্ডের জন্য একটি 2-মাত্রিক (বা বহু-মাত্রিক) সামঞ্জস্যপূর্ণ ম্যাট্রিক্স তৈরি করতে পারে।
পরীক্ষামূলক পরিষেবা
একটি পরীক্ষা পরিষেবা, উদাহরণস্বরূপ, অ্যাপ বিকাশকারীদের অ্যাপ জমা দিতে এবং অ্যাপের জন্য পাওয়ার ব্যবহার নির্ধারণ করতে পাওয়ার-পরিমাপ সরঞ্জামগুলির সাহায্যে ডিভাইসগুলিতে পরীক্ষা চালানোর অনুমতি দিতে পারে। এটি পূর্ববর্তী দুটি ব্যবহারের ক্ষেত্রে থেকে আলাদা যে পরিষেবা নির্মাতা ডিভাইস বা অ্যাপ্লিকেশনগুলিকে নিয়ন্ত্রণ করে না যা চালানো হচ্ছে৷
যেহেতু ট্রেড ফেডারেশন যেকোন জাভা ক্লাস চালাতে পারে যা সাধারণ IRemoteTest
ইন্টারফেস প্রয়োগ করে, এটি এমন ড্রাইভার লেখা তুচ্ছ যা ডিভাইসে চালিত টেস্ট কেসের সাথে হার্ডওয়্যারের কিছু বাহ্যিক অংশ সমন্বয় করতে পারে। ড্রাইভার নিজেই থ্রেড তৈরি করতে পারে, অন্য সার্ভারে অনুরোধ পাঠাতে পারে বা অন্য কিছু করতে পারে যা এটির প্রয়োজন হতে পারে। অধিকন্তু, ফলাফল রিপোর্টিং ইন্টারফেসের সরলতা এবং বহুমুখিতা, ITestInvocationListener
, মানে মানক ফলাফল রিপোর্টিং পাইপলাইনে নির্বিচারে পরীক্ষার ফলাফল (উদাহরণস্বরূপ, সংখ্যাসূচক শক্তি মেট্রিক্স সহ) উপস্থাপন করাও একইভাবে সোজা।