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

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

टेस्ट कवरेज

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

  • सभी सार्वजनिक एपीआई, जिनके बारे में डेवलपर एसडीके (developer.android.com) में बताया गया है.
  • किसी एपीआई लेवल के लिए, Android कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी) में शामिल सभी ज़रूरी शर्तें.

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

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

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

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

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

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

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

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

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

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

CTS-D टेस्ट लिखने के दिशा-निर्देश

  • Java कोड स्टाइल गाइड का पालन करें.
  • 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 टेस्ट प्लान शामिल हैं.
  • अपने 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> दस्तावेज़ देखें.
  • टेस्ट के नए तरीके, क्लास या मॉड्यूल की जांच करते समय, उन्हें CTS-D टेस्ट प्लान में जोड़ें. साथ ही, उन्हें मुख्य CTS टेस्ट प्लान से उसी तरह हटाएं जिस तरह नए टेस्ट के लिए किया जाता है.

CTS-D टेस्ट चलाना

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

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

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

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

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

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