Firebase Test Lab আপনাকে বিভিন্ন ডিভাইস এবং কনফিগারেশনে আপনার অ্যাপের গুণমান পরীক্ষা করার সুযোগ দেয়। এই নির্দেশিকাটিতে Test Lab মূল ধারণা, iOS-এর জন্য এর সুবিধাসমূহ এবং কীভাবে পরীক্ষা শুরু করতে হয়, তার নির্দেশাবলীর একটি সংক্ষিপ্ত বিবরণ দেওয়া হয়েছে।
Test Lab কোটা এবং মূল্য পরিকল্পনা সম্পর্কে তথ্যের জন্য, ব্যবহার, কোটা এবং মূল্য নির্ধারণ দেখুন।
মূল ধারণা এবং পরিভাষা
আপনি যখন আপনার নির্বাচিত ডিভাইস এবং কনফিগারেশনগুলোর ওপর কোনো টেস্ট বা টেস্ট কেসের সেট চালান, তখন Test Lab আপনার অ্যাপের ওপর টেস্টটি ব্যাচ আকারে চালায় এবং তারপর ফলাফলগুলো একটি টেস্ট ম্যাট্রিক্স হিসেবে প্রদর্শন করে।
ডিভাইস × পরীক্ষা সম্পাদন = টেস্ট ম্যাট্রিক্স
- ডিভাইস
- একটি ভৌত বা ভার্চুয়াল ডিভাইস (শুধুমাত্র অ্যান্ড্রয়েড) যেখানে আপনি একটি পরীক্ষা চালান, যেমন একটি ফোন, ট্যাবলেট বা পরিধানযোগ্য ডিভাইস। একটি টেস্ট ম্যাট্রিক্সের ডিভাইসগুলিকে ডিভাইসের মডেল, ওএস সংস্করণ, স্ক্রিন ওরিয়েন্টেশন এবং লোকেল (যা ভূগোল এবং ভাষার সেটিংস নামেও পরিচিত) দ্বারা চিহ্নিত করা হয়।
- পরীক্ষা, পরীক্ষা সম্পাদন
- একটি ডিভাইসে চালানোর জন্য একটি টেস্ট (বা একাধিক টেস্ট কেসের একটি সেট)। আপনি প্রতি ডিভাইসে একটি করে টেস্ট চালাতে পারেন, অথবা চাইলে টেস্টটিকে শার্ড করে এর টেস্ট কেসগুলো বিভিন্ন ডিভাইসে চালাতে পারেন।
- টেস্ট ম্যাট্রিক্স
- আপনার টেস্ট এক্সিকিউশনগুলোর স্ট্যাটাস এবং পরীক্ষার ফলাফল এতে থাকে। একটি ম্যাট্রিক্সের কোনো টেস্ট এক্সিকিউশন ব্যর্থ হলে, পুরো ম্যাট্রিক্সটিই ব্যর্থ হয়।
ধাপ ১ : Test Lab আপলোড করার জন্য আপনার পরীক্ষাটি প্রস্তুত করুন।
আপনি Test Lab ব্যবহার করে নিম্নলিখিত পরীক্ষাগুলো চালাতে পারেন। মনে রাখবেন যে, সব ধরনের পরীক্ষা ফিজিক্যাল ডিভাইসে সর্বোচ্চ ৪৫ মিনিট পর্যন্ত চলতে পারে এবং যেকোনো আনক্যাচড এক্সেপশনের কারণে পরীক্ষাটি ব্যর্থ হবে।
XCTest (XCUITests সহ) : XCTest ফ্রেমওয়ার্ক ব্যবহার করে আপনার লেখা একটি ইউনিট টেস্ট। Test Lab সাথে চালানোর জন্য একটি XCTest পরিবর্তন করার নির্দেশাবলীর জন্য "Create an XCTest" দেখুন।
গেম লুপ টেস্ট : এটি এমন একটি পরীক্ষা যা গেমিং অ্যাপে প্লেয়ারের কার্যকলাপ অনুকরণ করতে একটি 'ডেমো মোড' ব্যবহার করে। আপনার গেমটি ব্যবহারকারীদের জন্য ভালোভাবে কাজ করছে কিনা, তা যাচাই করার এটি একটি দ্রুত এবং পরিমাপযোগ্য উপায়। যখন আপনি একটি গেম লুপ টেস্ট চালানোর সিদ্ধান্ত নেন, তখন আপনি যা করতে পারেন:
আপনার গেম ইঞ্জিনের নিজস্ব টেস্টগুলো লিখুন।
বিভিন্ন UI বা টেস্টিং ফ্রেমওয়ার্কের জন্য একই কোড লেখা পরিহার করুন।
ঐচ্ছিকভাবে একটিমাত্র টেস্ট এক্সিকিউশনে চালানোর জন্য একাধিক লুপ তৈরি করতে পারেন। এছাড়াও, আপনি লেবেল ব্যবহার করে লুপগুলোকে সাজিয়ে রাখতে পারেন, যাতে সেগুলোর হিসাব রাখা যায় এবং নির্দিষ্ট লুপ পুনরায় চালানো যায়।
Test Lab আপনার টেস্টটি কীভাবে চালাবেন তার নির্দেশাবলীর জন্য 'রান এ গেম লুপ টেস্ট' দেখুন।
ধাপ ২ : আপনার পরীক্ষাটি চালানোর জন্য একটি টুল বেছে নিন।
আপনার পরীক্ষাটি চালানোর জন্য আপনি নিম্নলিখিত সরঞ্জামগুলি বেছে নিতে পারেন:
Firebase কনসোল আপনাকে যেকোনো জায়গা থেকে একটি অ্যাপ আপলোড করতে এবং টেস্টিং শুরু করতে দেয়। এই টুলটি ব্যবহারের নির্দেশাবলীর জন্য Firebase কনসোল দিয়ে টেস্ট করুন’ দেখুন।
gcloud কমান্ড লাইন ইন্টারফেস (CLI) আপনাকে কমান্ড লাইন থেকে ইন্টারেক্টিভভাবে টেস্ট চালানোর সুযোগ দেয় এবং এটি আপনার স্বয়ংক্রিয় বিল্ড ও টেস্টিং প্রক্রিয়ার অংশ হিসেবে স্ক্রিপ্টিংয়ের জন্যও বেশ উপযোগী। এই টুলটি ব্যবহারের নির্দেশাবলীর জন্য ‘gcloud CLI দিয়ে টেস্ট করুন’ দেখুন।
আসল ডিভাইসে পরীক্ষা করার আগে, আপনার পরীক্ষাটি স্থানীয়ভাবে একটি সিমুলেটরে চালিয়ে নিশ্চিত হয়ে নিন যে এটি উদ্দেশ্য অনুযায়ী কাজ করছে। নির্দেশাবলীর জন্য ‘স্থানীয়ভাবে পরীক্ষা করুন’ দেখুন।
ধাপ ৩ : পরীক্ষার ডিভাইস নির্দিষ্ট করুন
Test Lab এর মাধ্যমে, আপনি গুগল ডেটা সেন্টারে হোস্ট করা বিভিন্ন ধরনের iOS ডিভাইস ও মডেলে আপনার অ্যাপটি পরীক্ষা করে দেখতে পারেন। আরও জানতে, উপলব্ধ ডিভাইসসমূহ দেখুন।
ধাপ ৪ : পরীক্ষার ফলাফল পর্যালোচনা করুন
আপনি যেভাবেই আপনার পরীক্ষা শুরু করুন না কেন, আপনার সমস্ত পরীক্ষার ফলাফল Test Lab দ্বারা পরিচালিত হয় এবং অনলাইনে দেখা যায়।
পরীক্ষার ফলাফলের সারাংশ স্বয়ংক্রিয়ভাবে সংরক্ষিত হয় এবং Firebase কনসোলে দেখা যায়। এতে আপনার পরীক্ষার জন্য সবচেয়ে প্রাসঙ্গিক ডেটা থাকে, যার মধ্যে রয়েছে টেস্ট কেস-নির্দিষ্ট ভিডিও, স্ক্রিনশট, পাস করা, ফেল করা বা ত্রুটিপূর্ণ ফলাফল পাওয়া পরীক্ষার সংখ্যা এবং আরও অনেক কিছু।
পরীক্ষার মূল ফলাফলে টেস্ট লগ এবং অ্যাপ ব্যর্থতার বিবরণ থাকে এবং এটি স্বয়ংক্রিয়ভাবে একটি গুগল ক্লাউড বাকেটে সংরক্ষিত হয়। আপনি যদি একটি বাকেট নির্দিষ্ট করেন, তবে স্টোরেজের খরচ আপনাকে বহন করতে হবে। আপনি যদি কোনো বাকেট নির্দিষ্ট না করেন, তবে Test Lab আপনার জন্য বিনামূল্যে একটি বাকেট তৈরি করে দেবে।
আরও বিস্তারিত জানতে, 'Analyze Firebase Test Lab Results' দেখুন।
ডিভাইস পরিষ্কার করা
গুগল আপনার অ্যাপ ডেটার সুরক্ষাকে অত্যন্ত গুরুত্ব সহকারে দেখে। প্রতিটি টেস্ট রানের পর, আমরা ফিজিক্যাল ডিভাইসগুলো থেকে অ্যাপ ডেটা মুছে ফেলতে এবং সিস্টেম সেটিংস রিসেট করতে ইন্ডাস্ট্রি-স্ট্যান্ডার্ড সেরা পদ্ধতিগুলো অনুসরণ করি, যাতে সেগুলো নতুন টেস্ট চালানোর জন্য প্রস্তুত থাকে। যেসব ডিভাইসে আমরা কাস্টম রিকভারি ইমেজ ফ্ল্যাশ করতে পারি, সেগুলোর ক্ষেত্রে আমরা আরও এক ধাপ এগিয়ে যাই এবং টেস্ট রানের মধ্যবর্তী সময়ে ডিভাইসগুলো ফ্ল্যাশ করে থাকি।
Test Lab দ্বারা ব্যবহৃত ভার্চুয়াল ডিভাইসগুলোর ক্ষেত্রে, ব্যবহারের পর ডিভাইস ইনস্ট্যান্সগুলো মুছে ফেলা হয়, যাতে প্রতিটি টেস্ট রান একটি নতুন ভার্চুয়াল ডিভাইস ইনস্ট্যান্স ব্যবহার করে।
Test Lab ডিভাইসগুলিকে ব্যক্তিগত ব্যাকএন্ড সার্ভার অ্যাক্সেস করার অনুমতি দেওয়া
টেস্টিংয়ের সময় সঠিকভাবে কাজ করার জন্য কিছু মোবাইল অ্যাপকে প্রাইভেট ব্যাকএন্ড সার্ভিসের সাথে যোগাযোগ করতে হয়। যদি আপনার ব্যাকএন্ড সার্ভারগুলো ফায়ারওয়াল নিয়ম দ্বারা সুরক্ষিত থাকে, তবে আপনি নিচের আইপি অ্যাড্রেস ব্লকগুলো ব্যবহার করে আপনার ফায়ারওয়ালের মাধ্যমে রুট খুলে Test Lab ফিজিক্যাল এবং ভার্চুয়াল ডিভাইসগুলোর জন্য অ্যাক্সেস অনুমোদন করতে পারেন।
মোবাইল বিজ্ঞাপন
Test Lab একটি পরিবর্ধনযোগ্য পরিকাঠামো প্রদান করে যা অ্যাপ টেস্টিং স্বয়ংক্রিয় করে তোলে, এবং দুর্ভাগ্যবশত, প্রতারণামূলক বিজ্ঞাপন থেকে আয় করার উদ্দেশ্যে তৈরি ক্ষতিকারক অ্যাপগুলো এই সক্ষমতার অপব্যবহার করতে পারে।
এই সমস্যাটি প্রশমিত করতে:
আপনি যদি তৃতীয় পক্ষের ডিজিটাল বিজ্ঞাপন সরবরাহকারীদের (যেমন, অ্যাড নেটওয়ার্ক বা ডিমান্ড-সাইড প্ল্যাটফর্ম) ব্যবহার করেন বা তাদের সাথে কাজ করেন, তাহলে অ্যাপ তৈরি ও পরীক্ষার সময় আসল বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করার পরামর্শ দেওয়া হয়।
আপনার পরীক্ষায় যদি আসল বিজ্ঞাপন ব্যবহার করতেই হয়, তাহলে আপনার সহযোগী ডিজিটাল বিজ্ঞাপন সরবরাহকারীদেরকে নিচের আইপি অ্যাড্রেস ব্লকগুলো ব্যবহার করে Test Lab থেকে আসা আয় এবং সংশ্লিষ্ট সমস্ত ট্র্যাফিক ফিল্টার করে বাদ দেওয়ার জন্য অবহিত করুন। গুগল-এর নিজস্ব বিজ্ঞাপন সরবরাহকারীদের জানানোর প্রয়োজন নেই; Test Lab আপনার হয়ে সেই কাজটি করে দেয়।
Test Lab ডিভাইস দ্বারা ব্যবহৃত আইপি ঠিকানা
Test Lab ডিভাইসগুলো দ্বারা উৎপন্ন সমস্ত নেটওয়ার্ক ট্র্যাফিক নিম্নলিখিত আইপি অ্যাড্রেস ব্লকগুলো থেকে আসে। আপনি gcloud CLI-তে gcloud beta firebase test ip-blocks list কমান্ডটি ব্যবহার করেও এই তালিকাটি দেখতে পারেন। তালিকাটি বছরে গড়ে একবার আপডেট করা হয়।
| প্ল্যাটফর্ম এবং ডিভাইসের ধরন | সিআইডিআর আইপি ঠিকানা ব্লক |
|---|---|
| অ্যান্ড্রয়েড এবং আইওএস ফিজিক্যাল ডিভাইস, আর্ম ভার্চুয়াল ডিভাইস | ৭০.৩২.১২৮.০/১৯ (০২-২০২২ এ যোগ করা হয়েছে) ১০৮.১৭৭.৬.০/২৩ ১০৮.১৭৭.১৮.১৯২/২৬ (০২-২০২২ এ যুক্ত) ১০৮.১৭৭.২৯.৬৪/২৭ (সম্প্রসারিত ০২-২০২২) ১০৮.১৭৭.৩১.১৬০/২৭ (০২-২০২২ এ যুক্ত করা হয়েছে) ১৯৯.৩৬.১৫৬.৮/২৯ (০২-২০২২ এ যুক্ত করা হয়েছে) ১৯৯.৩৬.১৫৬.১৬/২৮ (০২-২০২২ এ যুক্ত) ২০৯.৮৫.১৩১.০/২৭ (০২-২০২২ এ যুক্ত করা হয়েছে) ২০০১:৪৮৬০:১০০৮::/৪৮ (০২-২০২২ এ যোগ করা হয়েছে) ২০০১:৪৮৬০:১০১৮::/৪৮ (০২-২০২২ এ যোগ করা হয়েছে) ২০০১:৪৮৬০:১০১৯::/৪৮ (০২-২০২২ এ যোগ করা হয়েছে) ২০০১:৪৮৬০:১০২০::/৪৮ (০২-২০২২ এ যোগ করা হয়েছে) ২০০১:৪৮৬০:১০২২::/৪৮ (০২-২০২২ এ যোগ করা হয়েছে) 2001:4860:101d::/48 (10-2025 তারিখে যোগ করা হয়েছে) 2001:4860:101e::/48 (10-2025 তারিখে যোগ করা হয়েছে) ২০০১:৪৮৬০:১০৩১::/৪৮ (১০-২০২৫ এ যোগ করা হয়েছে) ৭০.৩২.১২৮.৪৮/২৮ (০৪-২০২৪ এ যোগ করা হয়েছে) ৭০.৩২.১৫০.১৯২/২৭ (সংযোজিত ০৯-২০২৫) ১০৮.১৭৭.৬.০/২৭ (সংযোজিত: ০৯-২০২৫) ১০৮.১৭৭.২৪.১৬০/২৭ (সংযোজিত: ০৯-২০২৫) ১০৮.১৭৭.২৯.০/২৭ (যোগ করা হয়েছে ০৯-২০২৫) |
| অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস (নন-আর্ম) | ৩৪.৬৮.১৯৪.৬৪/২৯ (১১-২০১৯ এ যোগ করা হয়েছে) ৩৪.৬৯.২৩৪.৬৪/২৯ (১১-২০১৯ এ যোগ করা হয়েছে) ৩৪.৭৩.৩৪.৭২/২৯ (১১-২০১৯ এ যোগ করা হয়েছে) ৩৪.৭৩.১৭৮.৭২/২৯ (১১-২০১৯ এ যোগ করা হয়েছে) ৩৪.৭৪.১০.৭২/২৯ (০২-২০২২ এ যোগ করা হয়েছে) ৩৪.১৩৬.২.১৩৬/২৯ (সংযোজিত ০২-২০২২) ৩৪.১৩৬.৫০.১৩৬/২৯ (০২-২০২২ এ যোগ করা হয়েছে) ৩৪.১৪৫.২৩৪.১৪৪/২৯ (০২-২০২২ এ যুক্ত) ৩৫.১৯২.১৬০.৫৬/২৯ ৩৫.১৯৬.১৬৬.৮০/২৯ ৩৫.১৯৬.১৬৯.২৪০/২৯ ৩৫.২০৩.১২৮.০/২৮ ৩৫.২৩৪.১৭৬.১৬০/২৮ ৩৫.২৪৩.২.০/২৭ (৭-২০১৯ এ যোগ করা হয়েছে) ৩৫.২৪৫.২৪৩.২৪০/২৯ (০২-২০২২ এ যুক্ত) ১৯৯.১৯২.১১৫.০/৩০ ১৯৯.১৯২.১১৫.৮/৩০ ১৯৯.১৯২.১১৫.১৬/২৯ |
| ডিভাইস আইপি-ব্লক আর ব্যবহার করা হচ্ছে না | ৭৪.১২৫.১২২.৩২/২৯ (০২-২০২২ এ অপসারণ করা হয়েছে) ২১৬.২৩৯.৪৪.২৪/২৯ (০২-২০২২ এ অপসারণ করা হয়েছে) |