Android ওপেন সোর্স প্রজেক্ট (AOSP) আপনার ইমপ্লিমেন্টেশনের বিভিন্ন অংশ পরীক্ষা করার জন্য বিভিন্ন টুল ও টেস্ট স্যুট প্রদান করে। এই বিভাগে পৃষ্ঠা ব্যবহার করার আগে, আপনাকে নিম্নলিখিত শব্দগুলির সাথে পরিচিত হতে হবে:
- Android-এর সাথে মানানসই ডিভাইস
- এমন একটি ডিভাইস যা Android SDK এবং NDK ব্যবহার করে থার্ড-পার্টি ডেভেলপারদের লেখা যেকোনও থার্ড-পার্টি অ্যাপ চালাতে পারে। Android-এর সাথে মানানসই ডিভাইসকে অবশ্যই Compatibility Definition Document (CDD)-এর প্রয়োজনীয়তা মেনে চলতে হবে এবং Compatibility Test Suite (CTS) পাস করতে হবে। Android-এর সাথে মানানসই ডিভাইস Android ইকোসিস্টেমে অংশগ্রহণ করার উপযুক্ত, যার মধ্যে Google Play-এর সম্ভাব্য লাইসেন্স, সম্ভাব্য লাইসেন্স Google Mobile Services (GMS)-এর অ্যাপ ও API এবং Android ট্রেডমার্কের ব্যবহার অন্তর্ভুক্ত। যেকোনও ব্যক্তি Android সোর্স কোড ব্যবহার করতে পারেন, তবে Android ইকোসিস্টেমের অংশ হিসেবে বিবেচিত হতে হলে, ডিভাইসকে Android-এর সাথে মানানসই হতে হবে।
- আর্টিফ্যাক্ট
- বিল্ড সংক্রান্ত লগ যা স্থানীয়ভাবে সমস্যার সমাধান করতে সাহায্য করে।
- Compatibility Definition Document (CDD)
- Android-এর সাথে মানানসই ডিভাইসের জন্য সফ্টওয়্যার ও হার্ডওয়্যার সংক্রান্ত প্রয়োজনীয়তা তালিকাভুক্ত করে এমন একটি ডকুমেন্ট।
- কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS)
AOSP-তে বাইনারি বা সোর্স হিসেবে ডাউনলোড করার জন্য উপলভ্য একটি ফ্রি, কমার্শিয়াল-গ্রেড টেস্ট স্যুট। CTS হল ইউনিট টেস্টের একটি সেট যা আপনার দৈনন্দিন ওয়ার্কফ্লোতে ইন্টিগ্রেট করার জন্য ডিজাইন করা হয়েছে। CTS-এর উদ্দেশ্য হল, মানানসই নয় এমন বিষয়গুলি খুঁজে বের করা এবং সফ্টওয়্যারটি যাতে ডেভেলপমেন্ট প্রসেস জুড়ে মানানসই থাকে তা নিশ্চিত করা।
CTS ও প্ল্যাটফর্ম টেস্ট পরস্পরবিরোধী নয়। এখানে কিছু সাধারণ নির্দেশিকা দেওয়া হল:
- কোনও টেস্ট যদি ফ্রেমওয়ার্ক API ফাংশন বা আচরণের সঠিকতা নিশ্চিত করে, এবং OEM পার্টনারদের মধ্যে টেস্ট প্রয়োগ করতে হয়, তাহলে সেটি CTS-এ থাকতে হবে।
- কোনও টেস্ট যদি প্ল্যাটফর্ম ডেভেলপমেন্টের সময় রিগ্রেশন শনাক্ত করার উদ্দেশ্যে করা হয়, এবং সেটি চালানোর জন্য বিশেষ অনুমতি প্রয়োজন হয় এবং সেটি যদি ইমপ্লিমেন্টেশনের বিবরণের (AOSP-তে রিলিজ করা হয়েছে) উপর নির্ভরশীল হয়, তাহলে সেটি প্ল্যাটফর্ম টেস্ট হওয়া উচিত।
- Google Mobile পরিষেবা (GMS)
ডিভাইসে আগে থেকে ইনস্টল করা যায় এমন Google অ্যাপ ও API-এর সংগ্রহ।
- GoogleTest (GTest)
C++ টেস্টিং ও মকিং ফ্রেমওয়ার্ক। GTest বাইনারি সাধারণত নিম্ন-স্তরের অ্যাবস্ট্রাকশন লেয়ার অ্যাক্সেস করে বা বিভিন্ন সিস্টেম পরিষেবার বিরুদ্ধে কাঁচা IPC পারফর্ম করে। GTest-এর জন্য টেস্টিং অ্যাপ্রোচ সাধারণত যে পরিষেবা টেস্ট করা হচ্ছে তার সাথে নিবিড়ভাবে যুক্ত থাকে। CTS-এ GTest ফ্রেমওয়ার্ক রয়েছে।
- ইনস্ট্রুমেন্টেশন টেস্ট
am instrumentকমান্ডের মাধ্যমে লঞ্চ করা একটি বিশেষ টেস্ট এক্সিকিউশন এনভায়রনমেন্ট, যেখানে টার্গেট করা অ্যাপ প্রসেস রিস্টার্ট করা হয় এবং প্রাথমিক অ্যাপ কনটেক্সটের সাথে ইনিশিয়ালাইজ করা হয় এবং অ্যাপ প্রসেস ভার্চুয়াল মেশিনের মধ্যে একটি ইনস্ট্রুমেন্টেশন থ্রেড শুরু করা হয়। CTS-এ ইন্সট্রুমেন্টেশন টেস্ট থাকে।- Logcat
একটি কমান্ড-লাইন টুল যা সিস্টেম মেসেজের লগ তৈরি করে, যার মধ্যে ডিভাইস কোনও সমস্যা দেখালে স্ট্যাক ট্রেস এবং
Logক্লাস সহ আপনার অ্যাপ থেকে লেখা মেসেজ অন্তর্ভুক্ত থাকে।- লগ করা
কম্পিউটার সিস্টেম ইভেন্ট ট্র্যাক করার জন্য লগ ব্যবহার করা, যেমন সমস্যা। Logcat টুলে ব্যবহৃত স্ট্যান্ডার্ডের মিশ্রণের কারণে Android-এ লগ-ইন করা কঠিন।
- postsubmit test
একটি Android পরীক্ষা যা একটি সাধারণ কার্নেল ব্রাঞ্চে একটি নতুন প্যাচ কমিট করা হলে করা হয়।
aosp_kernelআংশিক ব্রাঞ্চের নাম হিসেবে লিখলে, আপনি উপলভ্য ফলাফল সহ কার্নেল ব্রাঞ্চের একটি তালিকা দেখতে পাবেন। যেমন,android-mainline-এর ফলাফল https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid লিঙ্কে পাওয়া যাবে।- জমা দেওয়ার আগে পরীক্ষা
সাধারণ কার্নেলে সমস্যা যাতে না হয়, তা প্রতিরোধ করার জন্য ব্যবহৃত একটি পরীক্ষা।
- ট্রেড ফেডারেশন
Tradefed নামেও পরিচিত, Android ডিভাইসে পরীক্ষা চালানোর জন্য ডিজাইন করা একটি ধারাবাহিক পরীক্ষা ফ্রেমওয়ার্ক। যেমন, কম্প্যাটিবিলিটি টেস্ট স্যুট ও ভেন্ডর টেস্ট স্যুট পরীক্ষা চালানোর জন্য Tradefed ব্যবহার করা হয়।
- Vendor Test Suite (VTS)
Android টেস্টিংয়ের জন্য বিস্তৃত ক্ষমতা, টেস্ট-ড্রাইভেন ডেভেলপমেন্ট প্রসেসকে উন্নত করা এবং হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) ও OS কার্নেল টেস্টিং অটোমেট করা।
প্ল্যাটফর্ম টেস্টের ধরন
একটি প্ল্যাটফর্ম টেস্ট সাধারণত Android সিস্টেমের এক বা একাধিক পরিষেবা বা HAL লেয়ারের সাথে ইন্টার্যাক্ট করে, টেস্টের অধীনে থাকা সাবজেক্টের কার্যকারিতা প্রয়োগ করে এবং টেস্টিং ফলাফলের সঠিকতা নিশ্চিত করে। প্ল্যাটফর্ম টেস্টের মাধ্যমে:
- (টাইপ ১) Android ফ্রেমওয়ার্ক ব্যবহার করে ফ্রেমওয়ার্ক API এক্সারসাইজ করা। ব্যবহার করা নির্দিষ্ট API-এর
মধ্যে এগুলি থাকতে পারে:
- থার্ড-পার্টি অ্যাপের জন্য তৈরি পাবলিক API
- বিশেষ সুবিধা প্রাপ্ত অ্যাপের জন্য তৈরি করা লুকানো API, যেমন সিস্টেম API বা
প্রাইভেট API (
@hide, বাprotected,package private)
- (টাইপ ২) সরাসরি কাঁচা বাইন্ডার বা IPC প্রক্সি ব্যবহার করে Android সিস্টেম পরিষেবা ইনভোক করুন।
- (টাইপ ৩) লো-লেভেল API বা IPC ইন্টারফেস ব্যবহার করে HAL-এর সাথে সরাসরি ইন্টার্যাক্ট করা।
টাইপ ১ ও ২ টেস্ট সাধারণত ইন্সট্রুমেন্টেশন টেস্ট হয়, তবে টাইপ ৩ টেস্ট সাধারণত GTest হয়।
এর পরে কী হবে?
আরও বিস্তারিত তথ্য পেতে আপনি যেসব ডকুমেন্ট পড়তে পারেন তার একটি তালিকা এখানে দেওয়া হল:
আপনি Android আর্কিটেকচার সম্পর্কে না জেনে থাকলে, আর্কিটেকচার ওভারভিউ দেখুন।
আপনি Android-এর সাথে মানানসই ডিভাইস তৈরি করলে, Android মানানসই প্রোগ্রাম ওভারভিউ দেখুন।
প্ল্যাটফর্মের কন্টিনিউয়াস টেস্টিং সার্ভিসে ইনস্ট্রুমেন্টেশন, ফাংশনাল, মেট্রিক ও JAR হোস্ট টেস্ট ইন্টিগ্রেট করতে, টেস্ট ডেভেলপমেন্ট ওয়ার্কফ্লো দেখুন।
দুর্বলতা থেকে আপনার ডিভাইস শনাক্ত ও সুরক্ষিত করতে, নিরাপত্তা পরীক্ষা দেখুন।
আপনার HAL ও কার্নেল ইমপ্লিমেন্টেশন পরীক্ষা করা সম্পর্কে জানতে, ভেন্ডর টেস্ট স্যুট (VTS) ও ইনফ্রাস্ট্রাকচার দেখুন।
অ্যাপ টেস্টিংয়ের জন্য, Android অ্যাপ টেস্টিংয়ের মৌলিক বিষয় পড়ুন এবং প্রদত্ত স্যাম্পেল ব্যবহার করে Kotlin 05.1-এ উন্নত Android:টেস্টিংয়ের মৌলিক বিষয় পরিচালনা করুন।
রিপো হুক ব্যবহার করে আপনার জন্য উপলভ্য প্রাথমিক প্রি-সাবমিট টেস্টিং সম্পর্কে জানুন। এইসব হুক ব্যবহার করে, এগিয়ে যাওয়ার আগে, যেমন, কোনও কমিট আপলোড করার আগে, লিন্টার চালানো, ফর্ম্যাটিং চেক করা এবং ইউনিট টেস্ট ট্রিগার করা যায়। এইসব হুক সাধারণত বন্ধ থাকে। আরও তথ্যের জন্য, AOSP প্রি-আপলোড হুক দেখুন।
লগিং সম্পর্কে আরও জানতে, লগিং সম্পর্কে বুঝুন দেখুন।
Android কোড কীভাবে ডিবাগ করতে হয় তা বুঝতে, নেটিভ Android প্ল্যাটফর্ম কোড ডিবাগ করুন দেখুন।