বিকাশকারী-চালিত CTS

এই পৃষ্ঠায় ডেভেলপার-পাওয়ার্ড সিटीएस (CTS-D) ব্যবহারের নির্দেশিকা বর্ণনা করা হয়েছে।

পরীক্ষার কভারেজ

CTS-D, CTS ও CTS Verifier-এর মতোই, শুধুমাত্র নিম্নলিখিত বিষয়গুলো কার্যকর করতে পারে:

  • একটি নির্দিষ্ট এপিআই লেভেলের জন্য ডেভেলপার এসডিকে-তে (developer.android.com) বর্ণিত সমস্ত পাবলিক এপিআই।
  • একটি নির্দিষ্ট এপিআই লেভেলের জন্য অ্যান্ড্রয়েড কম্প্যাটিবিলিটি ডেফিনিশন ডকুমেন্ট (CDD)-এ অন্তর্ভুক্ত সমস্ত আবশ্যিক শর্তাবলী।

আবশ্যিক নয় এমন আবশ্যিক বিষয়সমূহ, যেমন—জোরালোভাবে সুপারিশকৃত, উচিত, হতে পারে, হলো ঐচ্ছিক এবং CTS ব্যবহার করে এগুলো পরীক্ষা করা যায় না।

যেহেতু সমস্ত API এবং CDD আবশ্যকতা একটি নির্দিষ্ট API স্তরের সাথে যুক্ত, তাই সমস্ত CTS পরীক্ষাও (CTS, CTS-D, এবং CTS Verifier) ​​তাদের সংশ্লিষ্ট API বা আবশ্যকতার মতোই একই API স্তরের সাথে যুক্ত থাকে। যদি কোনো নির্দিষ্ট API বাতিল বা পরিবর্তিত হয়, তবে তার সংশ্লিষ্ট পরীক্ষাও বাতিল বা হালনাগাদ করতে হবে।

CTS পরীক্ষা তৈরির নিয়মাবলী

  • একটি পরীক্ষাকে অবশ্যই ধারাবাহিকভাবে একই বস্তুনিষ্ঠ ফলাফল প্রদান করতে হবে।
  • কোনো ডিভাইস বাক্স থেকে বের করে একবার পরীক্ষা করার মাধ্যমেই সেটির উত্তীর্ণ বা অনুত্তীর্ণ হওয়ার বিষয়টি নির্ধারণ করতে হবে।
  • টেস্ট নির্মাতাদের অবশ্যই এমন সমস্ত সম্ভাব্য উপাদান দূর করতে হবে যা পরীক্ষার ফলাফলকে প্রভাবিত করতে পারে।
  • যদি কোনো ডিভাইসের জন্য একটি নির্দিষ্ট হার্ডওয়্যার অবস্থা/পরিবেশ/সেটআপের প্রয়োজন হয়, তবে সেই সেটআপটি কমিট মেসেজে স্পষ্টভাবে উল্লেখ করতে হবে। উদাহরণস্বরূপ সেটআপ নির্দেশাবলীর জন্য, ‘সিटीएस আপ করা’ দেখুন।
  • পরীক্ষাটি একবারে ৬ ঘণ্টার বেশি চালানো যাবে না। যদি এর চেয়ে বেশি সময় ধরে চালানোর প্রয়োজন হয়, তবে অনুগ্রহ করে আপনার পরীক্ষা প্রস্তাবে তার কারণ উল্লেখ করুন, যাতে আমরা তা পর্যালোচনা করতে পারি।

একটি অ্যাপের সীমাবদ্ধতা পরীক্ষা করার জন্য নিম্নলিখিতটি হলো পরীক্ষার শর্তাবলীর একটি উদাহরণ সেট:

  • ওয়াইফাই স্থিতিশীল (এমন একটি পরীক্ষার জন্য যা ওয়াইফাইয়ের ওপর নির্ভরশীল)।
  • পরীক্ষা চলাকালীন ডিভাইসটি স্থির থাকে (অথবা পরীক্ষার ধরনের ওপর নির্ভর করে স্থির নাও থাকতে পারে)।
  • ডিভাইসটি X শতাংশ ব্যাটারি চার্জ থাকা অবস্থায় যেকোনো পাওয়ার সোর্স থেকে সংযোগ বিচ্ছিন্ন করা হয়েছে।
  • CTS ছাড়া অন্য কোনো অ্যাপ, ফোরগ্রাউন্ড সার্ভিস বা ব্যাকগ্রাউন্ড সার্ভিস চলছে না।
  • CTS চালানোর সময় স্ক্রিন বন্ধ থাকে।
  • ডিভাইসটি isLowRamDevice নয়।
  • ব্যাটারি সেভার / অ্যাপের সীমাবদ্ধতাগুলো ডিফল্ট অবস্থা থেকে পরিবর্তন করা হয়নি।

পরীক্ষার যোগ্যতা

আমরা এমন নতুন টেস্ট গ্রহণ করি যা এমন কোনো আচরণকে বলবৎ করে যা বিদ্যমান CTS, CTS Verifier, বা CTS-D টেস্ট দ্বারা পরীক্ষিত নয়। আমাদের টেস্ট কভারেজের আওতার বাইরের কোনো আচরণ পরীক্ষা করে এমন যেকোনো টেস্ট বাতিল করা হবে।

CTS জমা দেওয়ার প্রক্রিয়া

  1. একটি টেস্ট প্রস্তাবনা লিখুন: একজন অ্যাপ ডেভেলপার গুগল ইস্যু ট্র্যাকার ব্যবহার করে একটি টেস্ট প্রস্তাবনা জমা দেন, যেখানে তিনি চিহ্নিত সমস্যাটি বর্ণনা করেন এবং সেটি যাচাই করার জন্য একটি টেস্টের প্রস্তাব দেন। প্রস্তাবনাটিতে অবশ্যই সংশ্লিষ্ট সিডিডি রিকোয়ারমেন্ট আইডি অন্তর্ভুক্ত থাকতে হবে। অ্যান্ড্রয়েড টিম প্রস্তাবনাটি পর্যালোচনা করে।
  2. একটি CTS টেস্ট তৈরি করুন: একটি প্রস্তাব অনুমোদিত হওয়ার পর, এর প্রস্তাবক অ্যান্ড্রয়েডের সর্বশেষ রিলিজ ব্রাঞ্চে ( android17-release ) AOSP-তে একটি CTS টেস্ট তৈরি করেন। অ্যান্ড্রয়েড টিম কোডটি পর্যালোচনা করে এবং গৃহীত হলে, পরিবর্তনটি চেরিপিক করে অভ্যন্তরীণ ডেভেলপমেন্ট ব্রাঞ্চে মার্জ করে দেয়। বিস্তারিত জানতে, “AOSP-তে পরিবর্তনের প্রস্তাব কোথায় করা উচিত?” দেখুন।

CTS-D পরীক্ষা লেখার নির্দেশিকা

  • জাভা কোড স্টাইল গাইড অনুসরণ করুন।
  • CTS ডেভেলপমেন্ট- এ বর্ণিত সমস্ত ধাপ অনুসরণ করুন।
  • আপনার টেস্টগুলো উপযুক্ত টেস্ট প্ল্যানে যোগ করুন:
    • আপনার নতুন টেস্টগুলো CTS-D টেস্ট প্ল্যানে যোগ করতে include-filters ব্যবহার করুন: platform/cts/tools/cts-tradefed/res/config/cts-developer.xml
    • মূল CTS টেস্ট প্ল্যান থেকে আপনার নতুন টেস্টগুলো বাদ দিতে exclude-filters ব্যবহার করুন: platform/cts/tools/cts-tradefed/res/config/cts-developer-exclude.xml
  • build_error.log এ সমস্ত errorprone সতর্কতা এবং পরামর্শগুলি পরিচালনা করুন।
  • আপনার পরিবর্তনগুলো head এ রিবেস করুন। এর মধ্যে cts-developer.xml এবং cts-developer-exclude.xml টেস্ট প্ল্যানগুলো অন্তর্ভুক্ত।
  • আপনার টেস্ট কেসটি কোনো বিদ্যমান CTS মডিউলে অন্তর্ভুক্ত করা যাবে কিনা, তা জানতে আপনার Google ইঞ্জিনিয়ারিং প্রতিনিধির সাথে যোগাযোগ করুন। যদি তা সম্ভব না হয়, তবে তারা আপনাকে একটি নতুন মডিউল তৈরি করতে সাহায্য করবে।
  • প্রতিটি নতুন টেস্ট মডিউল তৈরির পর, নতুন টেস্ট মডিউল ডিরেক্টরিতে একটি OWNERS ফাইল তৈরি করুন।
    • আপনার OWNERS ফাইলে নিম্নলিখিত তথ্যগুলো থাকা উচিত, যা আপনি যে Google টেস্ট ওনারের সাথে কাজ করছেন তার কাছ থেকে সংগ্রহ করতে হবে:
    • # Bug component: xxx
    • গুগল টেস্ট ওনার এলড্যাপ
  • AndroidTest.xml ফাইলে নিম্নলিখিত প্যারামিটারগুলো উল্লেখ করুন। উদাহরণের জন্য নমুনা ফাইল ( 1 , 2 ) দেখুন:
    • Instant_app অথবা not_instant_app
    • secondary_user অথবা not_secondary_user
    • all_foldable_states অথবা no_foldable_states
  • সঠিক minSDK নির্দিষ্ট করার জন্য, <uses-sdk> ডকুমেন্টেশন দেখুন।
  • নতুন টেস্ট মেথড, ক্লাস বা মডিউল চেক ইন করার সময়, নতুন টেস্টের মতোই সেগুলোকে CTS-D টেস্ট প্ল্যানে যোগ করুন এবং মূল CTS টেস্ট প্ল্যান থেকে বাদ দিন।

আপনার CTS-D পরীক্ষাটি চালান

কমান্ড লাইন থেকে run cts --plan cts-developer ব্যবহার করে CTS-D টেস্ট প্ল্যানটি চালান।

কোনো নির্দিষ্ট টেস্ট কেস চালানোর জন্য, run cts --include-filter "test_module_name test_name" ব্যবহার করুন।

সম্পূর্ণ CTS চালানোর তথ্যের জন্য, ‘Run CTS tests’ দেখুন।

স্বীকৃতি এবং মুক্তি

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

CTS রিলিজ শিডিউলের বিস্তারিত তথ্যের জন্য রিলিজ শিডিউল এবং ব্রাঞ্চের তথ্য দেখুন।