Android प्लैटफ़ॉर्म की जांच

Android Open Source Project (AOSP), आपके लागू किए गए सिस्टम के अलग-अलग हिस्सों की जांच करने के लिए कई टूल और टेस्ट सुइट उपलब्ध कराता है. इस सेक्शन में मौजूद पेजों का इस्तेमाल करने से पहले, आपको इन शब्दों के बारे में जानकारी होनी चाहिए:

Android के साथ काम करने वाला डिवाइस
ऐसा डिवाइस जिस पर तीसरे पक्ष के डेवलपर की ओर से Android SDK और NDK का इस्तेमाल करके लिखा गया कोई भी ऐप्लिकेशन चल सकता हो. Android के साथ काम करने वाले डिवाइसों को, कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी) में दी गई ज़रूरी शर्तों का पालन करना होगा. साथ ही, उन्हें Compatibility Test Suite (CTS) पास करना होगा. Android के साथ काम करने वाले डिवाइस, Android के नेटवर्क में शामिल हो सकते हैं. इसमें Google Play का लाइसेंस, Google Mobile Services (GMS) के ऐप्लिकेशन और एपीआई के सुइट का लाइसेंस, और Android ट्रेडमार्क का इस्तेमाल शामिल है. Android के सोर्स कोड का इस्तेमाल कोई भी कर सकता है. हालांकि, किसी डिवाइस को Android के इकोसिस्टम का हिस्सा माना जाने के लिए, यह ज़रूरी है कि वह Android के साथ काम करता हो.
आर्टफ़ैक्ट
बिल्ड से जुड़ा ऐसा लॉग जिससे स्थानीय तौर पर समस्या हल की जा सकती है.
कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी)
ऐसा दस्तावेज़ जिसमें Android के साथ काम करने वाले डिवाइस के सॉफ़्टवेयर और हार्डवेयर से जुड़ी ज़रूरी शर्तों के बारे में जानकारी दी गई हो.
Compatibility Test Suite (CTS)

यह एक कमर्शियल-ग्रेड टेस्ट सुइट है, जो बिना किसी शुल्क के उपलब्ध है. इसे AOSP में बाइनरी या सोर्स के तौर पर डाउनलोड किया जा सकता है. CTS, यूनिट टेस्ट का एक सेट है. इसे आपके रोज़ के वर्कफ़्लो में इंटिग्रेट करने के लिए डिज़ाइन किया गया है. सीटीएस का मकसद, असंगतताओं का पता लगाना है. साथ ही, यह पक्का करना है कि सॉफ़्टवेयर, डेवलपमेंट की पूरी प्रोसेस के दौरान काम करता रहे.

सीटीएस और प्लैटफ़ॉर्म टेस्ट, दोनों अलग-अलग होते हैं. यहां कुछ सामान्य दिशा-निर्देश दिए गए हैं:

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

Google ऐप्लिकेशन और एपीआई का ऐसा कलेक्शन जिसे डिवाइसों पर पहले से इंस्टॉल किया जा सकता है.

GoogleTest (GTest)

यह C++ टेस्टिंग और मॉक करने का फ़्रेमवर्क है. GTest बाइनरी आम तौर पर, ऐब्स्ट्रैक्शन लेयर के निचले लेवल को ऐक्सेस करती हैं या अलग-अलग सिस्टम सेवाओं के ख़िलाफ़ रॉ आईपीसी करती हैं. GTest के लिए टेस्टिंग का तरीका, आम तौर पर उस सेवा से जुड़ा होता है जिसकी टेस्टिंग की जा रही है. CTS में GTest फ़्रेमवर्क शामिल होता है.

इंस्ट्रुमेंटेशन टेस्ट

यह एक खास टेस्ट एक्ज़ीक्यूशन एनवायरमेंट है. इसे am instrument कमांड से लॉन्च किया जाता है. इसमें टारगेट किए गए ऐप्लिकेशन की प्रोसेस को रीस्टार्ट किया जाता है और ऐप्लिकेशन के बुनियादी कॉन्टेक्स्ट के साथ शुरू किया जाता है. साथ ही, ऐप्लिकेशन प्रोसेस वर्चुअल मशीन के अंदर एक इंस्ट्रूमेंटेशन थ्रेड शुरू की जाती है. सीटीएस में इंस्ट्रुमेंटेशन टेस्ट शामिल होते हैं.

Logcat

यह कमांड-लाइन टूल है. यह सिस्टम मैसेज का लॉग बनाता है. इसमें ये शामिल हैं: डिवाइस में गड़बड़ी होने पर स्टैक ट्रेस और Log क्लास का इस्तेमाल करके, आपके ऐप्लिकेशन से लिखे गए मैसेज.

लॉगिंग

कंप्यूटर सिस्टम के इवेंट को ट्रैक करने के लिए लॉग का इस्तेमाल करना. जैसे, गड़बड़ियां. Android में लॉग इन करना मुश्किल है, क्योंकि इसमें इस्तेमाल किए गए स्टैंडर्ड को Logcat टूल में मिला दिया जाता है.

postsubmit test

यह Android टेस्ट, तब किया जाता है, जब किसी सामान्य कर्नल ब्रांच में नया पैच जोड़ा जाता है. शाखा के नाम के तौर पर aosp_kernel डालने पर, आपको कर्नल की उन शाखाओं की सूची दिखेगी जिनके नतीजे उपलब्ध हैं. उदाहरण के लिए, android-mainline के नतीजे https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid पर देखे जा सकते हैं.

presubmit test

इस टेस्ट का इस्तेमाल, सामान्य कर्नलों में गड़बड़ियां होने से रोकने के लिए किया जाता है.

Trade Federation

इसे Tradefed भी कहा जाता है. यह लगातार टेस्ट करने वाला फ़्रेमवर्क है. इसे Android डिवाइसों पर टेस्ट चलाने के लिए डिज़ाइन किया गया है. उदाहरण के लिए, Tradefed का इस्तेमाल Compatibility Test Suite और Vendor Test Suite टेस्ट चलाने के लिए किया जाता है.

Vendor Test Suite (VTS)

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

प्लैटफ़ॉर्म के टेस्ट टाइप

प्लैटफ़ॉर्म टेस्ट आम तौर पर, Android सिस्टम की एक या उससे ज़्यादा सेवाओं या HAL लेयर के साथ इंटरैक्ट करता है. साथ ही, यह टेस्ट किए जा रहे विषय की सुविधाओं का इस्तेमाल करता है और टेस्टिंग के नतीजे की पुष्टि करता है. प्लैटफ़ॉर्म टेस्ट में ये चीज़ें शामिल हो सकती हैं:

  • (टाइप 1) Android फ़्रेमवर्क का इस्तेमाल करने वाले, एक्सरसाइज़ फ़्रेमवर्क एपीआई. इस्तेमाल किए जा रहे एपीआई में ये शामिल हो सकते हैं:
    • तीसरे पक्ष के ऐप्लिकेशन के लिए उपलब्ध सार्वजनिक एपीआई
    • छुपाए गए एपीआई, खास ऐप्लिकेशन के लिए होते हैं. जैसे, सिस्टम एपीआई या निजी एपीआई (@hide या protected, package private)
  • (टाइप 2) सीधे तौर पर रॉ बाइंडर या आईपीसी प्रॉक्सी का इस्तेमाल करके, Android सिस्टम सेवाओं को चालू करें.
  • (टाइप 3) लो-लेवल एपीआई या आईपीसी इंटरफ़ेस का इस्तेमाल करके, सीधे तौर पर HAL से इंटरैक्ट करना.

टाइप 1 और 2 के टेस्ट आम तौर पर इंस्ट्रुमेंटेशन टेस्ट होते हैं, जबकि टाइप 3 के टेस्ट आम तौर पर GTests होते हैं.

आगे क्या करना है?

ज़्यादा जानकारी के लिए, यहां दिए गए दस्तावेज़ पढ़ें: