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