Android ভার্চুয়াল ডিভাইস দিয়ে পরীক্ষা শুরু করা

এই ডকুমেন্টে Test Lab-এর জন্য AVD-এর বিবরণ দেওয়া আছে, যার মধ্যে সুবিধা ও পরিচিত সীমাবদ্ধতা অন্তর্ভুক্ত। এছাড়াও, ডেভেলপমেন্ট লাইফসাইকেল জুড়ে আপনার অ্যাপ কীভাবে পরীক্ষা করবেন সেই সম্পর্কে আমরা সাজেশন দিই। Test Lab AVD হল Android Studio-এর জন্য AVD-এর মতোই, তবে ক্লাউড টেস্টিংয়ের মাধ্যমে পারফর্ম্যান্সের জন্য অপ্টিমাইজ করা হয়, তাই দুটির মধ্যে কিছু পার্থক্য আছে।

Test Lab .arm বা (Arm) প্রত্যয় সহ AVD হল উন্নত এমুলেটর যা নিম্নলিখিত সুবিধা প্রদান করে:

  • টেস্ট এক্সিকিউশনের সময় কম লাগে

  • Android Studio-র AVD-র সাথে সামঞ্জস্যপূর্ণ স্ক্রিন সাইজ ও ডেনসিটি

  • GPU-তে কাজ করে এমন অ্যাক্সিলারেটেড গ্রাফিক্স

ভার্চুয়াল ডিভাইস ব্যবহার করার সুবিধাগুলি নিম্নলিখিত সারণীতে বর্ণনা করা হয়েছে:

সুবিধা বিবরণ ব্যবহারিক ক্ষেত্র
হাই অ্যাভেইলেবিলিটি ভার্চুয়াল ডিভাইস ব্যবহার করে টেস্ট করলে, আপনি আরও দ্রুত টেস্ট রান করতে এবং টেস্ট ফলাফল পেতে পারবেন। ভার্চুয়াল ডিভাইস অন-ডিমান্ড তৈরি করা হয় বলে, আপনার টেস্ট প্রায় সঙ্গে সঙ্গেই শুরু হয়ে যায়, ফলে আপনার অ্যাপ দ্রুত যাচাই করা যায়। আপনার অ্যাপে ছোটখাটো আপডেট পরীক্ষা করা বা রিগ্রেশন টেস্টিং করা।
টেস্টের সময়সীমা বেশি হলে ভার্চুয়াল ডিভাইস সর্বাধিক ৬০ মিনিট পরীক্ষা করার সুবিধা দেয়। ফিজিক্যাল ডিভাইসে পরীক্ষা করার সময়সীমা প্রতিটি ডিভাইসে ৪৫ মিনিট পর্যন্ত সীমিত। আরও দীর্ঘ টেস্ট চালানো
খরচ কম আপনার অ্যাপ পরীক্ষা করার জন্য ব্যবহৃত প্রতিটি ভার্চুয়াল ডিভাইসের জন্য প্রতি ঘণ্টায় $১ করে চার্জ করা হয়। কন্টিনিউয়াস ইন্টিগ্রেশন সিস্টেম ব্যবহার করে প্রতিদিন পরীক্ষা করা হয় অথবা কোড চেক-ইন করার আগে পরীক্ষা করা হয়। আরও জানতে, Test Lab-এর জন্য ব্যবহারের লেভেল, কোটা ও দাম দেখুন।

ভার্চুয়াল ডিভাইসের মাধ্যমে আপনার অ্যাপ পরীক্ষা করা

আপনি যেভাবে ফিজিক্যাল ডিভাইসের সাথে অ্যাপ টেস্ট করেন, ঠিক সেইভাবেই ভার্চুয়াল ডিভাইসের সাথেও টেস্ট করতে পারবেন। আপনি যখন টেস্ট ম্যাট্রিক্স কনফিগার করেন, তখন আপনার পরীক্ষার জন্য ভার্চুয়াল ডিভাইস বেছে নিতে পারবেন। Test Lab-এর মাধ্যমে পরীক্ষা চালানোর বিষয়ে আরও জানতে, Firebase Test Lab-এর মাধ্যমে Android-এর জন্য পরীক্ষা চালানো শুরু করুন দেখুন।

কাজ করে এমন মডেল ও API দেখুন

Test Lab-এর সাথে কাজ করে এমন AVD মডেল ও API দেখতে, নিম্নলিখিত কমান্ড রান করান:

gcloud firebase test android models list --filter=virtual

আপনার অ্যাপ পরীক্ষা করার পেশাদার পদ্ধতি

ভার্চুয়াল ডিভাইস, আপনার অ্যাপকে Test Lab দিয়ে পরীক্ষা করার সময় আপনার বিকল্পের রেঞ্জ বাড়িয়ে দেয়। অ্যাপ ডেভেলপমেন্ট লাইফসাইকেল জুড়ে আপনার অ্যাপ পরীক্ষা করার জন্য আমরা নিম্নলিখিত পেশাদার পদ্ধতি ব্যবহার করতে সাজেস্ট করি:

Android Studio এমুলেটর বা অ্যাটাচ করা ফিজিক্যাল ডিভাইস ব্যবহার করা

আপনার অ্যাপ ডেভেলপ করার সময়, প্রাথমিক যাচাইকরণের জন্য প্রতিটি বিল্ড পরীক্ষা করতে, Android Studio এমুলেটর বা অ্যাটাচ করা ফিজিক্যাল ডিভাইস ব্যবহার করুন। আপনার কাছে ইনস্ট্রুমেন্টেশন টেস্ট থাকলে, আপনি Test Lab-এর দেওয়া ফিজিক্যাল বা ভার্চুয়াল ডিভাইসে Android Studio থেকে এইসব টেস্টও রান করাতে পারবেন।

শেয়ার করা প্রোজেক্টে কাজ করার সময় প্রতিটি কোড পরিবর্তনের জন্য CI সিস্টেম ব্যবহার করা

আপনি যদি কোনও বড় প্রোজেক্টে কাজ করেন অথবা GitHub বা এই ধরনের কোনও সাইট ব্যবহার করে শেয়ার করা প্রোজেক্টে কন্ট্রিবিউট করেন, তাহলে আমরা সাজেস্ট করি যে আপনি কন্টিনিউয়াস ইন্টিগ্রেশন (CI) সিস্টেম ব্যবহার করুন। CI সিস্টেম রান করার সময় বা প্রতিটি পুল অনুরোধের আগে ভার্চুয়াল ডিভাইসে আপনার অ্যাপ পরীক্ষা করুন। CI সিস্টেমের সাথে Test Lab ব্যবহার করা সম্পর্কে আরও জানতে, কন্টিনিউয়াস ইন্টিগ্রেশন সিস্টেমের সাথে Android-এর জন্য Test Lab ব্যবহার করা দেখুন।

গুরুত্বপূর্ণ অ্যাপ আপডেট রিলিজ করার আগে Test Lab-এর মাধ্যমে ফিজিক্যাল ডিভাইসে আপনার অ্যাপ পরীক্ষা করুন

UI ও কার্যকারিতায় উল্লেখযোগ্য পরিবর্তন সহ অ্যাপ আপডেট রিলিজ করার আগে, আমরা সাজেস্ট করি যে আপনি ফিজিক্যাল ডিভাইসে আপনার অ্যাপ পরীক্ষা করার জন্য Test Lab ব্যবহার করুন। এটি নিশ্চিত করতে সাহায্য করবে যে আপনার অ্যাপটি স্থিতিশীল এবং জনপ্রিয় ফিজিক্যাল ডিভাইসের বিস্তৃত রেঞ্জে পারফর্ম করতে পারে। এছাড়াও, ফিজিক্যাল ডিভাইসে পরীক্ষা করলে, ভার্চুয়াল ডিভাইস দ্বারা সিমুলেট করা হয় না এমন ফিজিক্যাল ডিভাইস ফিচারের উপর নির্ভর করে এমন যেকোনও অ্যাপ ফাংশনালিটির জন্য টেস্ট কভারেজ নিশ্চিত করা যায়। এইসব ফিচার সম্পর্কে আরও জানতে, পরিচিত সীমাবদ্ধতা দেখুন।

ভার্চুয়াল ডিভাইস আপডেট

Android টিম মাঝে মাঝে নতুন ভার্চুয়াল ডিভাইস ইমেজ যোগ করে, পুরনো ইমেজ সরিয়ে দেয় এবং আগে থেকে থাকা ইমেজ আপডেট করে। আমাদের ভার্চুয়াল ডিভাইস ইমেজে এইসব আপডেট প্রয়োগ করি যাতে আপনি আপ-টু-ডেট Android ভার্সনের বিরুদ্ধে পরীক্ষা করতে পারেন যা আপনার ব্যবহারকারীদের অভিজ্ঞতাকে প্রতিফলিত করে।

খুব কম ক্ষেত্রে, এইসব আপডেটের কারণে পরীক্ষা অপ্রত্যাশিতভাবে ব্যর্থ হতে পারে। কোনও সম্ভাব্য ব্রেকিং আপডেট সম্পর্কে জানা থাকলে, Test Lab রিলিজ নোটে সেই সংক্রান্ত তথ্য অন্তর্ভুক্ত করবে। পেশাদার পদ্ধতি হিসেবে, আমরা সাজেস্ট করি যে আপনি টেস্ট ফ্রেমওয়ার্ক ব্যবহার করুন – যেমন, Espresso – যা এইসব পরিবর্তনের ক্ষেত্রে যথাসম্ভব শক্তিশালী। সেটি সম্ভব না হলে, আমরা আপনাকে Arm ভার্চুয়াল ডিভাইস টার্গেট করার সাজেশন দিই, যেগুলি আপনি কম ঘন ঘন আপডেট করতে পারবেন বলে আশা করতে পারেন।

পরিচিত সীমাবদ্ধতা

কিছু ফিজিক্যাল ডিভাইস ফিচার বর্তমানে ভার্চুয়াল ডিভাইস দ্বারা সিমুলেট করা হয় না, অথবা কিছু সীমাবদ্ধতা সহ সিমুলেট করা হয়। নিচে দেওয়া সারণীতে ভার্চুয়াল ডিভাইসে বর্তমানে উপলভ্য নয় বা নির্দিষ্ট সীমাবদ্ধতা সহ উপলভ্য ফিচারগুলির সারসংক্ষেপ দেওয়া হল:

ফিচার বিবরণ
অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) সব ডিভাইসে সব ABI কাজ করে না। আপনি Android NDK-এর মাধ্যমে ডেভেলপ করলে, আপনি যে ডিভাইস টার্গেট করছেন সেটির সাথে মানানসই ABI-এর জন্য কোড জেনারেট করতে ভুলবেন না (উপলভ্য ডিভাইস দেখুন Test Lab)। ABI ম্যানেজমেন্ট সম্পর্কে আরও জানতে, Android ABI দেখুন।

মনে রাখবেন: আপনার টেস্ট ম্যাট্রিক্সে কোনও টেস্টকে 'ভুল' হিসেবে চিহ্নিত করা হলে, এটি হতে পারে কারণ আপনার অ্যাপে নেটিভ কোড নির্ভরতা আছে যা ডিভাইসের ABI-তে কাজ করে না।

গ্রাফিক্স পারফর্ম্যান্স Nexus ও Pixel ভার্চুয়াল ডিভাইস সফ্টওয়্যার গ্রাফিক্স রেন্ডারিং ব্যবহার করে। গ্রাফিক্স-ইনটেনসিভ অ্যাপ্লিকেশন কম পারফর্ম্যান্স পেতে পারে। আপনার অ্যাপ গ্রাফিক্স ইনটেনসিভ হলে, এর পরিবর্তে SmallPhone.arm, MediumPhone.arm বা ফিজিক্যাল ডিভাইস ব্যবহার করার কথা বিবেচনা করুন।
গ্রাফিক্স API API লেভেল 29-এর নিচে থাকা ডিভাইসে OpenGL ES 3.x কাজ করে না। নতুন ডিভাইসগুলি OpenGL/Vulkan API-এর সাথে ১০০% মানানসই নয়, আপনি গ্রাফিক্সের মধ্যে সামান্য পার্থক্য লক্ষ্য করতে পারেন।
Google Play Store অ্যাপ Google Play Store অ্যাপ Arm ভার্চুয়াল ডিভাইসে কাজ করে না।
অগমেন্টেড রিয়েলিটি (AR) কার্যকারিতা ভার্চুয়াল ডিভাইসে অগমেন্টেড রিয়ালিটি (AR) ফাংশনালিটি পরীক্ষা করা যায় না।
পুরনো API লেভেল Test Lab Arm ভার্চুয়াল ডিভাইসে API লেভেল 26-এর নিচের কোনও ভার্সন কাজ করে না।

পরবর্তী ধাপ