অ্যাপ টেস্টিং এজেন্ট (অ্যান্ড্রয়েড)

অ্যাপ টেস্টিং এজেন্ট হলো Firebase -এর জেমিনি দ্বারা চালিত একটি টেস্ট কেস তৈরি, পরিচালনা এবং সম্পাদনকারী এজেন্ট। আপনি স্বাভাবিক ভাষায় পরীক্ষার লক্ষ্য নির্ধারণ করেন এবং এজেন্টটি কৃত্রিম বুদ্ধিমত্তা (AI) ব্যবহার করে আপনার অ্যাপটি বুঝতে ও পরিচালনা করতে, ব্যবহারকারীর মিথস্ক্রিয়া অনুকরণ করতে এবং বিস্তারিত পরীক্ষার ফলাফল প্রদান করতে পারে।

অ্যাপ টেস্টিং এজেন্ট কীভাবে আপনার ডেটা ব্যবহার করে

অ্যাপ টেস্টিং এজেন্ট Gemini in Firebase দ্বারা সরবরাহ করা হয় এবং এটি একই শর্তাবলীর অধীনে পরিচালিত হয়। Gemini in Firebase কীভাবে আপনার ডেটা ব্যবহার করে সে সম্পর্কে আরও তথ্যের জন্য, “Gemini in Firebase কীভাবে আপনার ডেটা ব্যবহার করে” দেখুন।

শুরু করার আগে

যদি আগে থেকে না করে থাকেন, তাহলে Firebase-এ আপনার অ্যাপটি নিবন্ধন করুন

আপনি যদি অন্য কোনো Firebase প্রোডাক্ট ব্যবহার না করেন, তাহলে আপনাকে শুধু একটি প্রজেক্ট তৈরি করে আপনার অ্যাপটি রেজিস্টার করতে হবে। আপনার অ্যাপে কোনো SDK যোগ করার প্রয়োজন নেই। তবে, ভবিষ্যতে যদি আপনি অতিরিক্ত প্রোডাক্ট ব্যবহার করার সিদ্ধান্ত নেন, তাহলে Firebase কনসোল ব্যবহার করে ‘Add Firebase’- এর সমস্ত ধাপ অবশ্যই সম্পন্ন করবেন।

একটি টেস্ট কেস তৈরি করুন

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

প্রতিটি টেস্ট কেসকে কয়েকটি ধাপে ভাগ করা হয়, যেগুলো ক্রমানুসারে সম্পাদিত হবে। ধাপগুলো আপনাকে আপনার টেস্ট কেসকে বিভিন্ন পর্যায়ে ভাগ করার সুযোগ দেয়, যার প্রতিটির নিজস্ব অ্যাসারশন থাকে। এজেন্ট যেকোনো একটি ধাপ চলাকালীন একাধিক পদক্ষেপ নিতে পারে।

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

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 পৃষ্ঠাটি খুলুন এবং নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:

  1. টেস্ট কেস ট্যাবে, নতুন টেস্ট কেস- এ ক্লিক করুন। আপনি যদি নিজের টেস্ট কেস তৈরি করতে না চান, তবে প্রদত্ত উদাহরণ টেস্ট কেসটি পরিবর্তন বা ব্যবহার করতে পারেন।
  2. 'অ্যাড টেস্ট কেস' ডায়ালগ বক্সে টেস্ট কেসটির একটি নাম দিন। এটি টেস্টটিকে শনাক্ত করতে ব্যবহৃত হয়, কিন্তু এজেন্ট এটিকে উপেক্ষা করে।
  3. (ঐচ্ছিক) একটি পূর্বশর্ত টেস্ট কেস নির্বাচন করুন, যাতে মূল টেস্টের আগে চালানোর জন্য প্রস্তুতিমূলক ধাপগুলো অন্তর্ভুক্ত থাকে। যদি পূর্বশর্ত টেস্টটি ব্যর্থ হয়, তবে সম্পূর্ণ টেস্টটি ব্যর্থ হিসেবে চিহ্নিত করা হবে। পূর্বশর্ত এবং মূল টেস্টের ধাপ ও ফলাফলগুলো টেস্টের ফলাফলে একসাথে দেখানো হবে।
  4. 'Add another step' বোতামে ক্লিক করে আপনার পরীক্ষাটিকে একাধিক ধাপে ভাগ করার কথা বিবেচনা করুন।
  5. প্রতিটি ধাপের জন্য একটি লক্ষ্য নির্ধারণ করুন, যা বর্ণনা করবে যে সেই ধাপে অ্যাপ টেস্টিং এজেন্টকে কী করতে হবে।
  6. (ঐচ্ছিক) একটি ইঙ্গিত যোগ করুন যা অতিরিক্ত তথ্য প্রদান করবে এবং অ্যাপ টেস্টিং এজেন্টকে ঐ ধাপে আপনার অ্যাপটি বুঝতে ও পরিচালনা করতে সাহায্য করবে।
  7. ধাপটি কখন সফলভাবে সম্পন্ন হয়েছে তা অ্যাপ টেস্টিং এজেন্টকে নির্ধারণ করতে সাহায্য করার জন্য একটি চূড়ান্ত স্ক্রিন অ্যাসারশন যোগ করুন। এই অ্যাসারশনটি শুধুমাত্র স্ক্রিনে যা দৃশ্যমান, সেটিকেই নির্দেশ করবে।
  8. আপনার পরীক্ষাটি কাস্টমাইজ করা হয়ে গেলে সেভ-এ ক্লিক করুন।

উদাহরণ পরীক্ষার কেস

অ্যাপ টেস্টিং এজেন্ট ব্যবহার করে কীভাবে একটি টেস্ট কেস তৈরি করতে হয়, তার একটি উদাহরণ নিচে দেওয়া হলো:

পরীক্ষার শিরোনাম

হোম পেজ লোড হয়

লক্ষ্য

হোম পেজ লোড করুন

ইঙ্গিত

যেকোনো অনবোর্ডিং স্ক্রিন এড়িয়ে যান। যেকোনো পপআপ বাতিল করুন। সাইন ইন করবেন না।

চূড়ান্ত স্ক্রিন অ্যাসারশন

স্ক্রিনে অ্যাপের মূল হোম পেজটি দেখা যাচ্ছে, সব ছবি লোড হয়ে গেছে এবং কোনো ত্রুটি প্রদর্শিত হচ্ছে না।

একটি পরীক্ষা চালান

আপনি কীভাবে আপনার টেস্টগুলো চালাবেন, তা নির্ভর করে আপনি কীভাবে আপনার টেস্ট কেসগুলো তৈরি ও পরিচালনা করেন তার ওপর। যদি আপনি YAML ফাইল ব্যবহার করে টেস্ট কেসগুলো সংজ্ঞায়িত করেন, তাহলে আপনি Firebase CLI ব্যবহার করে সেই টেস্টগুলো চালাবেন। যদি আপনি অ্যাপ ডিস্ট্রিবিউশন কনসোলে আপনার টেস্ট কেসগুলো তৈরি করেন, তাহলে আপনি সেগুলো কনসোল থেকে অথবা অ্যাপ ডিস্ট্রিবিউশন CLI টুলগুলোর কোনো একটির মাধ্যমে চালাবেন।

YAML ফাইল ব্যবহার করে

YAML ফাইলে সংজ্ঞায়িত টেস্ট কেসগুলো Firebase CLI ব্যবহার করে চালানো যায়।

  1. Firebase CLI- এর সর্বশেষ সংস্করণটি ইনস্টল বা আপডেট করুন। আমরা আপনার OS-এর জন্য নির্দিষ্ট CLI-এর স্বতন্ত্র বাইনারিটি ডাউনলোড করার পরামর্শ দিই।
  2. সাইন ইন করুন এবং পরীক্ষা করে দেখুন যে আপনি আপনার প্রজেক্টগুলো অ্যাক্সেস করতে পারছেন কিনা। উল্লেখ্য যে, আপনি যদি একটি CI পরিবেশে Firebase CLI ব্যবহার করেন, তাহলে আপনি একটি সার্ভিস অ্যাকাউন্ট দিয়ে অথবা login:ci ব্যবহার করেও অথেন্টিকেট করতে পারেন।
  3. apptesting:execute কমান্ডটি চালান। উদাহরণস্বরূপ:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
অ্যাপটেস্টিং:এক্সিকিউট [বিকল্পসমূহ] [/অ্যাপ/বাইনারির/পথ]
--app

প্রয়োজনীয়: আপনার অ্যাপের ফায়ারবেস অ্যাপ আইডি। আপনি Firebase কনসোলের জেনারেল সেটিংস পেজে অ্যাপ আইডিটি খুঁজে পাবেন।

--app 1:1234567890:android:0a1b2c3d4e5f67890

--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-non-blocking

যদি এটি সেট করা থাকে, তাহলে কমান্ডটি পরীক্ষাগুলো শুরু করবে এবং সেগুলো সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করে অবিলম্বে ফিরে আসবে।

--test-file-pattern

একটি রেগুলার এক্সপ্রেশন প্যাটার্ন। শুধুমাত্র এই প্যাটার্নের সাথে মেলে এমন ফাইলের টেস্টগুলোই চালানো হবে।

--test-name-pattern

একটি রেগুলার এক্সপ্রেশন প্যাটার্ন। শুধুমাত্র সেইসব টেস্টই চালানো হবে, যেগুলোর ডিসপ্লে নেম এই প্যাটার্নের সাথে মিলবে।

/path/to/app/binary

ঐচ্ছিক: আপনার অ্যাপের বাইনারি ফাইলের পাথ। এটি উল্লেখ না করলে, এজেন্ট নির্দিষ্ট অ্যাপটির জন্য App Distribution আপলোড করা সর্বশেষ রিলিজটি ব্যবহার করবে।

App Distribution কনসোল ব্যবহার করে

অ্যাপ ডিস্ট্রিবিউশনে সংরক্ষিত টেস্ট কেসগুলো চালানোর জন্য, আপনি Firebase কনসোল, ফায়ারবেস সিএলআই, অথবা App Distribution গ্রেডল বা ফাস্টলেন প্লাগইন ব্যবহার করতে পারেন।

YAML ফাইল সহ টেস্ট কেস আমদানি ও রপ্তানি করুন

যখন আপনি Firebase কনসোলের বাইরে টেস্ট কেস পরিচালনা করতে চান, তখন YAML ফাইল থেকে টেস্ট কেস ইম্পোর্ট করা বেশ কার্যকর। প্রজেক্টের মধ্যে টেস্ট কেস স্থানান্তর করার জন্য এক্সপোর্ট করাও দরকারি হতে পারে। আপনি বিদ্যমান টেস্ট কেস পরিমার্জন করতে বা নতুন টেস্ট কেস তৈরি করতে একটি LLM ব্যবহার করতে পারেন। আপনি Firebase কনসোলের টেস্ট কেস পেজ থেকে অথবা ফায়ারবেস CLI ব্যবহার করে প্রোগ্রাম্যাটিকভাবে টেস্ট কেস ইম্পোর্ট এবং এক্সপোর্ট করতে পারেন। একটি YAML টেস্ট কেসের উদাহরণের জন্য, "একটি YAML টেস্ট কেস তৈরি করুন" দেখুন।

আপনার পরীক্ষার ফলাফল দেখুন

আপনি একটি রিলিজের অ্যাপ টেস্টিং এজেন্ট ট্যাবের রিলিজ পেজ থেকে আপনার পরীক্ষার ফলাফল দেখতে পারেন। ‘ভিউ ডিটেইলস’ বোতামটি টেস্ট রেজাল্টস ডায়ালগ খুলবে এবং আপনাকে যেকোনো সমস্যা, অ্যাপের স্ক্রিনশট এবং পরীক্ষা চলাকালীন জেমিনির নেওয়া পদক্ষেপগুলো দেখাবে।

যদি কোনো টেস্টে পুনরায় চালানো অ্যাকশন অন্তর্ভুক্ত থাকে, তাহলে আপনি মূল এআই-নির্দেশিত টেস্ট রানটি দেখতে পারেন অথবা ক্যাশে পরিষ্কার করতে পারেন।

আপনার পরীক্ষার ফলাফল সম্পর্কে আরও জানতে নিচের সারণিটি ব্যবহার করুন:

আইকন নাম বর্ণনা
স্ফুলিঙ্গ এআই অ্যাকশন এটি নির্দেশ করে যে অ্যাপ টেস্টিং এজেন্ট কোনো পদক্ষেপ নিতে বা ধাপটি শেষ করতে জেমিনি ব্যবহার করেছেন।
পুনরায় প্লে করুন পুনরায় দেখানো অ্যাকশন এটি নির্দেশ করে যে অ্যাপ টেস্টিং এজেন্ট পরীক্ষার পূর্ববর্তী একটি সফল রান থেকে কোনো একটি অ্যাকশন পুনরায় চালিয়েছে।
স্ফুলিঙ্গ এআই দাবি এটি নির্দেশ করে যে, অ্যাপ টেস্টিং এজেন্ট একই পরীক্ষার পূর্ববর্তী একটি সফল রানের অ্যাকশনগুলো পুনরায় চালানোর পর, একটি চূড়ান্ত স্ক্রিন অ্যাসারশন যাচাই করার জন্য জেমিনি ব্যবহার করেছে।

আপনার পরীক্ষার ফলাফল ডিবাগ করুন

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

এছাড়াও, আপনার পরীক্ষার ফলাফলের সমস্ত ভিডিও, লগ এবং অন্যান্য ক্লাউড আর্টিফ্যাক্ট দেখার জন্য আপনি টেস্ট রেজাল্টস পেজে থাকা ‘ভিউ আর্টিফ্যাক্টস’ বাটনটি ব্যবহার করতে পারেন।

জ্ঞাত সমস্যা এবং সীমাবদ্ধতা

অ্যাপ টেস্টিং এজেন্ট প্রিভিউটির কিছু জ্ঞাত সীমাবদ্ধতা রয়েছে:

  • যেহেতু অ্যাপ টেস্টিং এজেন্ট আপনার অ্যাপ পরীক্ষা করার জন্য জেনারেটিভ এআই ব্যবহার করে, তাই এটি একই নির্দেশাবলী অনুসরণ করার পরেও মাঝে মাঝে ভিন্ন ভিন্ন পদক্ষেপ নিতে পারে।
  • অ্যাপ টেস্টিং এজেন্ট শুধুমাত্র নিম্নলিখিত অ্যাকশনগুলো সমর্থন করে: ট্যাপ, টেক্সট প্রবেশ করানো, উপরে/নিচে/বামে/ডানে সোয়াইপ করা, লং প্রেস, ড্র্যাগ-অ্যান্ড-ড্রপ, ব্যাক এবং অপেক্ষা করা।
  • অ্যাপ টেস্টিং এজেন্ট এমন টেস্ট সম্পাদন করতে সমস্যায় পড়ে, যেগুলিতে কেবল একটি ধাপ থাকে এবং তা সম্পন্ন করতে অনেকগুলো পদক্ষেপ নিতে হয়। জটিল কাজগুলোকে একাধিক ছোট ছোট ধাপে ভাগ করে নিলে এটি আরও ভালোভাবে কাজ করে।
  • অ্যাপ টেস্টিং এজেন্ট মাঝে মাঝে স্ক্রিনের বাইরের অন্যান্য এলিমেন্ট দেখানোর জন্য স্ক্রল করে না। যখন স্ক্রল করার যোগ্যতার কোনো ভিজ্যুয়াল ইঙ্গিত থাকে না, তখন এটি প্রায়শই ঘটে। এর একটি বিকল্প সমাধান হিসেবে, স্ক্রল করার পরামর্শ দিতে 'হিন্টস' ফিল্ডটি ব্যবহার করা যেতে পারে।
  • অ্যাপ টেস্টিং এজেন্টের মাঝে মাঝে গণনা করতে সমস্যা হয়, যেমন কোনো একটি কাজ একটি নির্দিষ্ট সংখ্যক বার সম্পাদন করার ক্ষেত্রে।
  • FLAG_SECURE সক্রিয় থাকলে অ্যাপ টেস্টিং এজেন্ট আপনার অ্যাপে নেভিগেট করতে পারবে না। আপনার অ্যাপের স্ক্রিনশটের পরিবর্তে, এটি কেবল একটি ফাঁকা স্ক্রিন দেখতে পাবে।

পরীক্ষার কোটা

প্রিভিউ চলাকালীন, একটি কোটা সীমার মধ্যে এআই-নির্দেশিত পরীক্ষাগুলো বিনামূল্যে করার সুযোগ দেওয়া হবে। প্রতিটি ফায়ারবেস প্রজেক্টের জন্য প্রতি মাসে ডিফল্ট কোটা সীমা হলো ২০০টি পরীক্ষা।

মনে রাখবেন, আপনি যদি একাধিক ডিভাইসে একাধিক টেস্ট কেস বা একই টেস্ট কেস চালান, তবে তা একাধিক টেস্ট হিসেবে গণ্য হবে। উদাহরণস্বরূপ, আপনি যদি ২টি ডিভাইসে ২টি টেস্ট কেস চালান, তবে তা মোট ৪টি টেস্ট হিসেবে গণ্য হবে।

ডিফল্ট সীমার উপরে আপনার কোটা বাড়াতে, আপনার ব্যবহারের ক্ষেত্রটি উল্লেখ করে ফায়ারবেস সাপোর্টের সাথে যোগাযোগ করুন।