অ্যাপ টেস্টিং এজেন্ট হল একটি টেস্ট কেস জেনারেশন, ম্যানেজমেন্ট ও এক্সিকিউশন এজেন্ট যা Firebase-এ Gemini দ্বারা পরিচালিত হয়। আপনি ন্যাচারাল ল্যাঙ্গুয়েজে পরীক্ষার লক্ষ্য নির্ধারণ করেন, এবং এজেন্ট AI ব্যবহার করে আপনার অ্যাপ বুঝতে ও নেভিগেট করতে, ব্যবহারকারীর ইন্টার্যাকশন সিমুলেট করতে এবং পরীক্ষার বিস্তারিত ফলাফল প্রদান করতে পারে।
App Testing এজেন্ট আপনার ডেটা কীভাবে ব্যবহার করে
অ্যাপ টেস্টিং এজেন্ট Gemini in Firebase প্রদান করে এবং এটি একই শর্তাবলী দ্বারা পরিচালিত হয়। Gemini in Firebase কীভাবে আপনার ডেটা ব্যবহার করে সেই সম্পর্কে আরও তথ্য পেতে, Gemini in Firebase কীভাবে আপনার ডেটা ব্যবহার করে তা দেখুন।
শুরু করার আগে
আপনি আগে থেকে করে না থাকলে, Firebase-এর সাথে আপনার অ্যাপ রেজিস্টার করুন।
আপনি অন্য কোনও Firebase প্রোডাক্ট ব্যবহার না করলে, আপনাকে শুধু একটি প্রজেক্ট তৈরি করতে হবে এবং আপনার অ্যাপ রেজিস্টার করতে হবে। আপনার অ্যাপে কোনও SDK যোগ করার প্রয়োজন নেই। তবে, ভবিষ্যতে অতিরিক্ত প্রোডাক্ট ব্যবহার করার সিদ্ধান্ত নিলে, Firebaseকনসোল ব্যবহার করে Firebase যোগ করুন লিঙ্কে গিয়ে সব ধাপ সম্পূর্ণ করতে ভুলবেন না।
টেস্ট কেস তৈরি করা
AI-নির্দেশিত টেস্ট চালানোর জন্য, অ্যাপ টেস্টিং এজেন্ট আপনার অ্যাপের বিরুদ্ধে টেস্ট চালানোর জন্য আপনার ন্যাচারাল ল্যাঙ্গুয়েজ টেস্ট কেস ব্যবহার করে।
প্রতিটি টেস্ট কেসকে ধাপে ধাপে ভাগ করা হয়, যা একটির পরে একটি করে প্রয়োগ করা হয়। ধাপগুলি আপনাকে টেস্ট কেসকে বিভিন্ন পর্যায়ে ভাগ করতে দেয়, যার প্রত্যেকটিতে নিজস্ব অ্যাসার্শন থাকে। যেকোনও একটি ধাপে এজেন্ট একাধিক অ্যাকশন নিতে পারে।
দুটি উপায়ে টেস্ট কেস তৈরি করা যায়: YAML ফাইল ব্যবহার করে অথবা Firebase কনসোল ব্যবহার করে। YAML ফাইল আপনাকে সাধারণত ভার্সন করা সোর্স কোড রিপোজিটরিতে নিজেই টেস্ট কেস ম্যানেজ করতে দেয়। বিকল্প হিসেবে, Firebase কনসোল আপনার অ্যাপ ডিস্ট্রিবিউশন ডেটার সাথে আপনার টেস্ট কেস রিমোটলি স্টোর করতে পারে।
YAML ফাইল ব্যবহার করা
নিচের উদাহরণে দুটি টেস্ট কেস সংজ্ঞায়িত করে এমন একটি YAML ফাইল দেখানো হয়েছে:
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
আপনি একটি ফাইলে টেস্টের গ্রুপ সাজাতে এবং একাধিক ফাইলে এইসব টেস্ট স্যুট
আলাদা করতে পারবেন। আপনি কোনও টেস্টে আইডি যোগ করে
এবং তারপরে prerequisiteTestCaseId ব্যবহার করে সেই আইডি রেফারেন্স করে একটি পূর্বশর্ত টেস্ট কেস যোগ করতে পারেন।
App Distribution কনসোল ব্যবহার করা
এছাড়াও, আপনি Firebase কনসোলে নিজের টেস্ট কেস তৈরি ও ম্যানেজ করতে পারবেন। টেস্ট কেস তৈরি করতে, App Distribution পৃষ্ঠার Firebase কনসোল খুলুন এবং নিচের ধাপগুলি অনুসরণ করুন:
- টেস্ট কেস ট্যাবে, নতুন টেস্ট কেস বিকল্পে ক্লিক করুন। আপনি নিজের টেস্ট কেস তৈরি করতে না চাইলে, প্রদান করা টেস্ট কেসের উদাহরণ পরিবর্তন করে ব্যবহার করতে পারেন।
- টেস্ট কেস যোগ করুন ডায়ালগে, টেস্ট কেসের একটি নাম দিন। এটি টেস্ট শনাক্ত করতে ব্যবহার করা হয়, কিন্তু এজেন্ট এটি উপেক্ষা করে।
- (ঐচ্ছিক) মূল টেস্ট চালানোর আগে সেট-আপ ধাপগুলি সম্পূর্ণ করার জন্য পূর্বশর্ত টেস্ট কেস বেছে নিন। পূর্বশর্ত পরীক্ষাটি ব্যর্থ হলে, সম্পূর্ণ পরীক্ষাটি ব্যর্থ হিসেবে চিহ্নিত করা হবে। প্রয়োজনীয়তা এবং মূল পরীক্ষা থেকে প্রাপ্ত ধাপ ও ফলাফল টেস্টের ফলাফলে একসাথে দেখানো হবে।
- আরেকটি ধাপ যোগ করুন বোতামে ক্লিক করে আপনার পরীক্ষাটি একাধিক ধাপে ভেঙে নেওয়ার কথা বিবেচনা করুন।
- প্রতিটি ধাপের জন্য একটি লক্ষ্য দিন যা বর্ণনা করে যে অ্যাপ টেস্টিং এজেন্টকে সেই ধাপের সময় কী করতে হবে।
- (ঐচ্ছিক) অ্যাপ টেস্টিং এজেন্টকে সেই ধাপ চলাকালীন আপনার অ্যাপ বুঝতে ও নেভিগেট করতে সাহায্য করার জন্য অতিরিক্ত তথ্য প্রদান করতে একটি ইঙ্গিত যোগ করুন।
- ফাইনাল স্ক্রিন অ্যাসার্শন যোগ করুন যাতে অ্যাপ টেস্টিং এজেন্ট বুঝতে পারে যে কখন ধাপটি সফলভাবে সম্পূর্ণ হয়েছে। এই অ্যাসারশনে শুধুমাত্র স্ক্রিনে যা দেখা যাচ্ছে সেটির উল্লেখ থাকতে হবে।
- আপনার পরীক্ষা কাস্টমাইজ করা হয়ে গেলে, সেভ করুন বিকল্পে ক্লিক করুন।
টেস্ট কেসের উদাহরণ
App Testing এজেন্ট ব্যবহার করে কীভাবে টেস্ট কেস তৈরি করতে হয় তার একটি উদাহরণ নিচে দেওয়া হল:
টেস্টের নাম |
হোমপেজ লোড হয় |
গোল |
হোম পেজ লোড করুন |
সংকেত |
যেকোনও অনবোর্ডিং স্ক্রিন থেকে নেভিগেট করে বেরিয়ে আসুন। যেকোনও পপ-আপ বাতিল করুন। সাইন-ইন করবেন না। |
ফাইনাল স্ক্রিন অ্যাসার্শন |
স্ক্রিনে মূল অ্যাপের হোমপেজ দেখা যাচ্ছে, সব ছবি লোড হয়ে গেছে এবং কোনও সমস্যা দেখা যাচ্ছে না। |
টেস্ট চালানো
আপনি কীভাবে টেস্ট চালাবেন তা নির্ভর করে আপনি কীভাবে টেস্ট কেস তৈরি ও ম্যানেজ করেন তার উপর। আপনি YAML ফাইল ব্যবহার করে টেস্ট কেস সংজ্ঞায়িত করলে, Firebase CLI ব্যবহার করে সেইসব টেস্ট রান করাবেন। আপনি App Distribution কনসোলে টেস্ট কেস তৈরি করলে, আপনি কনসোল থেকে অথবা App Distribution CLI টুলের মাধ্যমে সেগুলি রান করাবেন।
YAML ফাইল ব্যবহার করা
YAML ফাইলে সংজ্ঞায়িত টেস্ট কেস Firebase CLI ব্যবহার করে এক্সিকিউট করা যেতে পারে।
- Firebase CLI-এর লেটেস্ট ভার্সন ইনস্টল বা আপডেট করুন। আপনার OS-এর জন্য নির্দিষ্ট CLI-এর স্ট্যান্ডঅ্যালোন বাইনারি ডাউনলোড করার জন্য আমরা সাজেস্ট করি।
- সাইন-ইন করুন এবং আপনার প্রোজেক্ট অ্যাক্সেস করতে পারছেন কিনা তা চেক করুন। মনে রাখবেন, আপনি CI এনভায়রনমেন্টে Firebase CLI ব্যবহার করলে, পরিষেবা অ্যাকাউন্ট অথবা login:ci ব্যবহার করেও প্রমাণীকরণ করতে পারবেন।
apptesting:executeকমান্ড রান করান। যেমন:firebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [options] [/path/to/app/binary] | |
|---|---|
--app
|
প্রয়োজনীয়: আপনার অ্যাপের Firebase অ্যাপ আইডি। আপনি সাধারণ সেটিংস পৃষ্ঠায়, Firebase কনসোলে অ্যাপ আইডি খুঁজে পাবেন।
|
--test-dir
|
টেস্ট কেস YAML ফাইল আছে এমন ডিরেক্টরির পাথ। এই কমান্ড এই ডিরেক্টরির মধ্যে রিকার্সিভ সার্চ করবে, তাই ফাইলগুলিকে ঐচ্ছিকভাবে সাবডিরেক্টরি হিসেবে সাজানো যেতে পারে। সেট করা না থাকলে, ডিফল্ট হিসেবে "./tests" ব্যবহার করা হয় । |
--test-devices বা --test-devices-file
|
যেসব ডিভাইসে পরীক্ষা চালানো হবে। আপনি ডিভাইস স্পেসিফিকেশনের সেমিকোলন-বিভক্ত তালিকা হিসেবে টেস্ট ডিভাইস নির্দিষ্ট করতে পারেন: --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
অথবা, আপনি একটি সাধারণ টেক্সট ফাইলের পাথ নির্দিষ্ট করতে পারেন যাতে ডিভাইসের স্পেসিফিকেশনগুলির একটি সেমিকোলন-বিভক্ত তালিকা থাকে: --test-devices-file
"/path/to/test-devices.txt" gcloud CLI ব্যবহার করে উপলভ্য ডিভাইস মডেল দেখতে পারেন। |
--test-username
|
টেস্ট চলাকালীন অটোমেটিক লগ-ইন করার জন্য ব্যবহার করা হবে এমন ব্যবহারকারীর নাম। |
--test-password বা --test-password-file
|
পরীক্ষার সময় অটোমেটিক লগ-ইন করার জন্য ব্যবহার করা পাসওয়ার্ড। অথবা, আপনি পাসওয়ার্ড সহ একটি প্লেন টেক্সট ফাইলের পাথ নির্দিষ্ট করতে পারেন: --test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
সেট করা থাকলে, কমান্ডটি পরীক্ষা শুরু করবে এবং সেগুলি সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করে অবিলম্বে ফিরে আসবে। পরীক্ষার ফলাফল দেখতে, Firebase কনসোলে যান। এই ফ্ল্যাগ সেট করা না থাকলে, পরীক্ষা সম্পূর্ণ না হওয়া পর্যন্ত কমান্ড ব্লক হয়ে যাবে এবং কোনও পরীক্ষা ব্যর্থ হলে, ব্যর্থতার কোড সহ বেরিয়ে আসবে। |
--results-bucket
|
একটি কাস্টম Google Cloud Storage (GCS) বাকেট যেখানে পরীক্ষার ফলাফল স্টোর করা হয়। এটি ফাঁকা রাখলে, ডিফল্ট বাকেট ব্যবহার করা হয়। বাকেটটি অবশ্যই বিলিং চালু থাকা প্রোজেক্টের মালিকানাধীন হতে হবে এবং বাকেট নির্দিষ্ট করলে ব্যবহৃত স্টোরেজের জন্য বিলিং চার্জ প্রযোজ্য হবে। |
--test-file-pattern
|
রেগুলার এক্সপ্রেশন প্যাটার্ন। এই প্যাটার্নের সাথে ম্যাচ করে এমন ফাইলে থাকা টেস্টই শুধু চালানো হবে। |
--test-name-pattern
|
রেগুলার এক্সপ্রেশন প্যাটার্ন। এই প্যাটার্নের সাথে মিলে যাওয়া ডিসপ্লে নাম সহ টেস্টগুলিই শুধু চালানো হবে। |
/path/to/app/binary
|
ঐচ্ছিক: আপনার অ্যাপের বাইনারির পাথ। এটি বাদ দিলে, এজেন্টের নির্দিষ্ট অ্যাপের জন্য App Distribution-এ আপলোড করা শেষ রিলিজ ব্যবহার করবে। |
App Distribution কনসোল ব্যবহার করা
App Distribution-এ সেভ করা টেস্ট কেস রান করাতে, আপনি Firebase কনসোল, Firebase CLI অথবা App Distribution's Gradle বা fastlane প্লাগ-ইন ব্যবহার করতে পারবেন।
YAML ফাইলের মাধ্যমে টেস্ট কেস ইমপোর্ট ও এক্সপোর্ট করা
আপনি যদি Firebase কনসোলের বাইরে টেস্ট কেস ম্যানেজ করতে চান, তাহলে YAML ফাইল থেকে টেস্ট কেস ইমপোর্ট করা উপযোগী। এছাড়াও, প্রোজেক্টের মধ্যে টেস্ট কেস সরানোর জন্য সেগুলি এক্সপোর্ট করা কাজে লাগতে পারে। আপনি আগে থেকে থাকা টেস্ট কেস রিফাইন করতে বা নতুন টেস্ট কেস তৈরি করতে LLM ব্যবহার করতে পারেন। আপনি Firebase কনসোলের টেস্ট কেস পৃষ্ঠা থেকে টেস্ট কেস ইমপোর্ট ও এক্সপোর্ট করতে পারেন অথবা Firebase CLI ব্যবহার করে প্রোগ্র্যামাটিক উপায়ে করতে পারেন। YAML টেস্ট কেসের উদাহরণের জন্য, YAML টেস্ট কেস তৈরি করুন দেখুন।
আপনার পরীক্ষার ফলাফল দেখুন
কোনও রিলিজের অ্যাপ টেস্টিং এজেন্ট ট্যাবে গিয়ে রিলিজ পৃষ্ঠা থেকে আপনার করা পরীক্ষার ফলাফল দেখতে পাবেন। বিবরণ দেখুন বোতামটি পরীক্ষার ফলাফল ডায়ালগ খুলবে এবং আপনাকে যেকোনও সমস্যা, অ্যাপের স্ক্রিনশট এবং পরীক্ষা চলাকালীন Gemini-র নেওয়া অ্যাকশন দেখাবে।
কোনও টেস্টে রিপ্লে করা অ্যাকশন থাকলে, আপনি আসল AI-নির্দেশিত টেস্ট রান দেখতে বা ক্যাশে মুছে দিতে পারবেন।
আপনার পরীক্ষার ফলাফল সম্পর্কে আরও জানতে, নিম্নলিখিত টেবিল ব্যবহার করুন:
| আইকন | নাম | বিবরণ |
|---|---|---|
| স্পার্ক | AI অ্যাকশন | এর থেকে বোঝা যায় যে, কোনও অ্যাকশন নেওয়া বা ধাপটি শেষ করার সিদ্ধান্ত নেওয়ার জন্য অ্যাপ টেস্টিং এজেন্ট Gemini ব্যবহার করেছে। |
| আবার চালান | আবার চালানো অ্যাকশন | এর থেকে বোঝা যায় যে অ্যাপ টেস্টিং এজেন্ট, টেস্টের আগের সফল রান থেকে কোনও অ্যাকশন আবার চালিয়েছে। |
| স্পার্ক | AI অ্যাসার্শন | এটি থেকে বোঝা যায় যে, একই পরীক্ষার আগের সফল রান থেকে অ্যাকশন রিপ্লে করার পরে, App Testing এজেন্ট Gemini ব্যবহার করে ফাইনাল স্ক্রিন অ্যাসারশন যাচাই করেছে। |
আপনার টেস্টের ফলাফল ডিবাগ করা
আপনি যা আশা করেছিলেন তার থেকে আপনার পরীক্ষার ফলাফল আলাদা হলে, আপনি পরীক্ষার ফলাফল পৃষ্ঠায় বিবরণ দেখুন বিকল্পের অধীনে এজেন্ট ভিউ দেখুন টগল ব্যবহার করে আপনার পরীক্ষা ডিবাগ করতে পারবেন। অ্যাপ টেস্টিং এজেন্ট অ্যাপের অ্যাক্সেসিবিলিটি সংক্রান্ত তথ্য ব্যবহার করার সময় যেসব অন-স্ক্রিন এলিমেন্ট শনাক্ত করতে পেরেছে, এজেন্ট ভিউতে সেগুলি দেখানো হয়। এজেন্ট কী দেখেছেন তা আরও ভালভাবে দেখতে চাইলে, অ্যাকশন ওভারফ্লো মেনু থেকে সেই তথ্য ডাউনলোড করতে পারেন।
এছাড়াও, আপনার পরীক্ষার ফলাফলের জন্য সব ভিডিও, লগ ও অন্যান্য ক্লাউড আর্টিফ্যাক্ট দেখতে, পরীক্ষার ফলাফল পৃষ্ঠায় আর্টিফ্যাক্ট দেখুন বোতাম ব্যবহার করতে পারেন।
পরিচিত সমস্যা ও সীমাবদ্ধতা
App Testing এজেন্টের প্রিভিউতে কিছু পরিচিত সীমাবদ্ধতা আছে:
- AI-নির্দেশিত টেস্টের টাইম-আউট ৫ মিনিট। টেস্ট শুরু হওয়ার পরে, নির্দিষ্ট সময়ের মধ্যে সেটি সম্পূর্ণ হতে হবে, তা না হলে সেটি নির্ধারিত সময়ের আগেই শেষ হয়ে যাবে এবং টেস্ট সম্পূর্ণ হয়নি বলে ধরে নেওয়া হবে।
- যেহেতু App Testing এজেন্ট আপনার অ্যাপ পরীক্ষা করার জন্য জেনারেটিভ AI ব্যবহার করে, তাই এটি একই নির্দেশাবলী অনুসরণ করার সময় কখনও কখনও আলাদা আলাদা অ্যাকশন নেবে।
- অ্যাপ টেস্টিং এজেন্ট শুধুমাত্র নিম্নলিখিত অ্যাকশনগুলি সমর্থন করে: ট্যাপ করা, টেক্সট লেখা, উপর/নিচে/বাঁদিকে/ডানদিকে সোয়াইপ করা, অনেকক্ষণ প্রেস করা, ড্র্যাগ-অ্যান্ড-ড্রপ করা, ফিরে যাওয়া এবং অপেক্ষা করা।
- অ্যাপ টেস্টিং এজেন্ট শুধুমাত্র একটি ধাপ থাকা টেস্ট এক্সিকিউট করতে সমস্যায় পড়ে, যা সম্পূর্ণ করতে অনেক অ্যাকশন নিতে হয়। জটিল টাস্ককে একাধিক ছোট ছোট ধাপে ভাগ করে নিলে এটি আরও ভালো পারফর্ম করে।
- স্ক্রিনের বাইরে থাকা অন্যান্য এলিমেন্ট দেখানোর জন্য App Testing এজেন্ট কখনও কখনও স্ক্রল করে না। স্ক্রল করা যাবে কিনা তা বোঝানোর জন্য কোনও ভিজ্যুয়াল ইঙ্গিত না থাকলে এটি প্রায়ই ঘটে। এর বিকল্প হিসেবে, "ইঙ্গিত" ফিল্ডে স্ক্রল করার সাজেশন দেওয়া যেতে পারে।
- অ্যাপ টেস্টিং এজেন্ট কখনও কখনও গণনা করতে সমস্যায় পড়ে, যেমন নির্দিষ্ট সংখ্যক বার কোনও অ্যাকশন পারফর্ম করা।
FLAG_SECUREচালু করা থাকলে, অ্যাপ টেস্টিং এজেন্ট আপনার অ্যাপ নেভিগেট করতে পারবে না। আপনার অ্যাপের স্ক্রিনশটের পরিবর্তে, এটি শুধুমাত্র একটি ফাঁকা স্ক্রিন দেখতে পাবে।
কোটা পরীক্ষা করা
প্রিভিউ চলাকালীন, AI-নির্দেশিত পরীক্ষাগুলি কোটা সীমার মধ্যে কোনও খরচ ছাড়াই অফার করা হবে। ডিফল্ট কোটা সীমা হল, প্রতি Firebase প্রোজেক্টে প্রতি মাসে ২০০টি টেস্ট।
মনে রাখবেন, আপনি একাধিক টেস্ট কেস রান করানোর সিদ্ধান্ত নিলে অথবা একাধিক ডিভাইসে একই টেস্ট কেস রান করালে, এটিকে একাধিক টেস্ট হিসেবে গণ্য করা হবে। যেমন, আপনি যদি ২টি ডিভাইসে ২ টি টেস্ট কেস চালান, তাহলে এটি মোট ৪টি টেস্ট হিসেবে গণনা করা হবে।
ডিফল্ট সীমার উপরে কোটা বাড়াতে, আপনার ব্যবহারের ক্ষেত্র সহ Firebase সহায়তা টিমের সাথে যোগাযোগ করুন।