डेवलपर के लिए उपलब्ध सीटीएस

इस पेज पर, डेवलपर-पावर्ड सीटीएस (सीटीएस-डी) के इस्तेमाल के लिए दिशा-निर्देश दिए गए हैं.

जांच की कवरेज

सीटीएस-डी, सीटीएस, और सीटीएस वेरिफ़ायर की तरह, सिर्फ़ इन चीज़ों को लागू कर सकता है:

  • किसी खास एपीआई लेवल के लिए, डेवलपर एसडीके (developer.android.com) में बताए गए सभी सार्वजनिक एपीआई.
  • किसी खास एपीआई लेवल के लिए, Android की ज़रूरी शर्तों की परिभाषा वाले दस्तावेज़ (सीडीडी) में शामिल सभी ज़रूरी शर्तें.

ज़रूरी नहीं मानी जाने वाली शर्तें, जैसे कि 'ज़ोरदार तरीके से सुझाव दिया जाता है', 'होना चाहिए', 'हो सकता है' वगैरह वैकल्पिक होती हैं. इनकी जांच सीटीएस का इस्तेमाल करके नहीं की जा सकती.

सभी एपीआई और सीडीडी की ज़रूरी शर्तें, किसी खास एपीआई लेवल से जुड़ी होती हैं. इसलिए, सीटीएस के सभी टेस्ट (सीटीएस, सीटीएस-डी, और सीटीएस वेरिफ़ायर) भी अपने से जुड़े एपीआई या ज़रूरी शर्तों के एपीआई लेवल से जुड़े होते हैं. अगर कोई खास एपीआई बंद कर दिया जाता है या उसमें बदलाव किया जाता है, तो उससे जुड़ा टेस्ट भी बंद कर दिया जाना चाहिए या उसे अपडेट किया जाना चाहिए.

सीटीएस टेस्ट बनाने के नियम

  • किसी टेस्ट से, एक ही तरह का नतीजा लगातार मिलना चाहिए.
  • किसी डिवाइस की जांच करने के लिए, उसे बॉक्स से निकालकर एक बार टेस्ट करना ज़रूरी है. इससे यह पता चलता है कि डिवाइस, टेस्ट में पास हुआ है या फ़ेल.
  • टेस्ट बनाने वाले लोगों को, उन सभी संभावित वजहों को हटाना होगा जिनसे टेस्ट के नतीजों पर असर पड़ सकता है.
  • अगर किसी डिवाइस को किसी खास हार्डवेयर की स्थिति/एनवायरमेंट/सेटअप की ज़रूरत है, तो कमिट मैसेज में उस सेटअप के बारे में साफ़ तौर पर बताया जाना चाहिए. सेटअप के निर्देशों के उदाहरण के लिए, सीटीएस सेट अप करना लेख पढ़ें.
  • टेस्ट, एक बार में छह घंटे से ज़्यादा नहीं चलना चाहिए. अगर इसे ज़्यादा समय तक चलाने की ज़रूरत है, तो टेस्ट के प्रस्ताव में इसकी वजह शामिल करें, ताकि हम इसकी समीक्षा कर सकें.

यहां, किसी ऐप्लिकेशन पर लगी पाबंदी की जांच करने के लिए, टेस्ट की शर्तों का एक उदाहरण दिया गया है:

  • वाई-फ़ाई की कनेक्टिविटी स्थिर है (ऐसे टेस्ट के लिए जो वाई-फ़ाई पर निर्भर करता है).
  • टेस्ट के दौरान, डिवाइस एक ही जगह पर रखा जाता है (या नहीं, यह टेस्ट पर निर्भर करता है).
  • डिवाइस को किसी भी पावर सोर्स से अनप्लग किया गया है और उसकी बैटरी का लेवल X प्रतिशत है.
  • सीटीएस के अलावा, कोई भी ऐप्लिकेशन, फ़ोरग्राउंड सेवाएं या बैकग्राउंड सेवाएं नहीं चल रही हैं.
  • सीटीएस के चलने के दौरान, स्क्रीन बंद है.
  • डिवाइस, isLowRamDevice नहीं है.
  • बैटरी सेवर और ऐप्लिकेशन पर लगी पाबंदियों को, बॉक्स से बाहर निकालने के बाद से नहीं बदला गया है.

टेस्ट के लिए ज़रूरी शर्तें

हम ऐसे नए टेस्ट स्वीकार करते हैं जो किसी ऐसे व्यवहार को लागू करते हैं जिसकी जांच, मौजूदा सीटीएस, सीटीएस वेरिफ़ायर या सीटीएस-डी टेस्ट से नहीं की जाती. अगर कोई टेस्ट, हमारे टेस्ट कवरेज से बाहर के किसी व्यवहार की जांच करता है, तो उसे अस्वीकार कर दिया जाता है.

सीटीएस सबमिट करने की प्रोसेस

  1. टेस्ट का प्रस्ताव लिखें: कोई ऐप्लिकेशन डेवलपर, Google Issue Tracker का इस्तेमाल करके, टेस्ट का प्रस्ताव सबमिट करता है. इसमें, पहचानी गई समस्या के बारे में बताया जाता है और उसकी जांच करने के लिए, एक टेस्ट का सुझाव दिया जाता है. प्रस्ताव में, संबंधित सीडीडी की ज़रूरी शर्त का आईडी शामिल होना चाहिए. Android टीम, प्रस्ताव की समीक्षा करती है.
  2. सीटीएस टेस्ट डेवलप करें: प्रस्ताव को मंज़ूरी मिलने के बाद, उसे सबमिट करने वाला व्यक्ति, Android के सबसे नए रिलीज़ ब्रांच (android17-release) पर, एओएसपी पर सीटीएस टेस्ट बनाता है. Android टीम, कोड की समीक्षा करती है. अगर उसे स्वीकार कर लिया जाता है, तो वह बदलाव को चेरी-पिक करती है और उसे इंटरनल डेवलपमेंट ब्रांच में मर्ज कर देती है. ज़्यादा जानकारी के लिए, मुझे एओएसपी में बदलावों का सुझाव कहां देना चाहिए? लेख पढ़ें.

सीटीएस-डी टेस्ट लिखने के लिए दिशा-निर्देश

  • Java Code Style Guide का पालन करें.
  • सीटीएस डेवलपमेंट में बताए गए सभी चरणों का पालन करें.
  • अपने टेस्ट को सही टेस्ट प्लान में जोड़ें:
    • अपने नए टेस्ट को सीटीएस-डी टेस्ट प्लान में जोड़ने के लिए, include-filters का इस्तेमाल करें: platform/cts/tools/cts-tradefed/res/config/cts-developer.xml.
    • अपने नए टेस्ट को मुख्य सीटीएस टेस्ट प्लान से बाहर रखने के लिए, 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 टेस्ट प्लान शामिल हैं.
  • यह तय करने के लिए, Google के इंजीनियरिंग संपर्क से बात करें कि आपका टेस्ट केस, मौजूदा सीटीएस मॉड्यूल में शामिल किया जा सकता है या नहीं. अगर ऐसा नहीं किया जा सकता, तो वे नया मॉड्यूल बनाने में आपकी मदद करते हैं.
  • बनाए गए हर नए टेस्ट मॉड्यूल के लिए, नए टेस्ट मॉड्यूल डायरेक्ट्री में OWNERS फ़ाइल बनाएं.
    • आपकी OWNERS फ़ाइल में, Google के उस टेस्ट के मालिक से मिली यह जानकारी होनी चाहिए जिसके साथ आप काम कर रहे हैं:
    • # Bug component: xxx
    • Google के टेस्ट के मालिक का एलडीएपी आईडी
  • AndroidTest.xml में, ये पैरामीटर तय करें.
      उदाहरण के लिए, सैंपल फ़ाइलें (1,2) देखें:
    • Instant_app या not_instant_app
    • secondary_user या not_secondary_user
    • all_foldable_states या no_foldable_states
  • सही minSDK तय करने के लिए, <uses-sdk> से जुड़ा दस्तावेज़ देखें.
  • नए टेस्ट के तरीकों, क्लास या मॉड्यूल की जांच करते समय, उन्हें सीटीएस-डी टेस्ट प्लान में जोड़ें और मुख्य सीटीएस टेस्ट प्लान से बाहर रखें. यह तरीका, नए टेस्ट के लिए भी अपनाया जाता है.

अपना सीटीएस-डी टेस्ट चलाएं

कमांड लाइन से, सीटीएस-डी टेस्ट प्लान चलाने के लिए, run cts --plan cts-developer का इस्तेमाल करें.

किसी खास टेस्ट केस को चलाने के लिए, run cts --include-filter "test_module_name test_name" का इस्तेमाल करें.

पूरा सीटीएस चलाने के बारे में जानकारी के लिए, सीटीएस टेस्ट चलाना लेख पढ़ें.

स्वीकार करना और रिलीज़ करना

टेस्ट का अनुरोध सबमिट करने के बाद, एक इंटरनल टीम उसकी समीक्षा करती है, ताकि यह पक्का किया जा सके कि वह सीडीडी की किसी ज़रूरी शर्त या दस्तावेज़ में बताए गए एपीआई के व्यवहार की जांच करता हो. अगर टीम को लगता है कि टेस्ट, किसी मान्य ज़रूरी शर्त या व्यवहार की जांच कर रहा है, तो वह इस टेस्ट केस को Google के इंजीनियर को आगे की समीक्षा के लिए भेज देती है. सीटीएस में स्वीकार किए जाने से पहले, Google का इंजीनियर आपसे संपर्क करके, टेस्ट को बेहतर बनाने के बारे में सुझाव देता है.

सीटीएस के रिलीज़ शेड्यूल के बारे में ज़्यादा जानकारी के लिए, रिलीज़ शेड्यूल और ब्रांच की जानकारी देखें.