Android Open Source Project (AOSP), लागू करने के अलग-अलग हिस्सों की जांच करने के लिए कई टूल और टेस्ट सुइट उपलब्ध कराता है. इस सेक्शन में मौजूद पेजों का इस्तेमाल करने से पहले, आपको इन शब्दों के बारे में जानकारी होनी चाहिए:
- Android के साथ काम करने वाला डिवाइस
- ऐसा डिवाइस जो Android SDK और NDK का इस्तेमाल करके, तीसरे पक्ष के डेवलपर के लिखे गए किसी भी तीसरे पक्ष के ऐप्लिकेशन को चला सकता है. Android के साथ काम करने वाले डिवाइसों को कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी) की ज़रूरी शर्तों का पालन करना होगा. साथ ही, उन्हें कंपैटबिलिटी टेस्ट सुइट (सीटीएस) पास करना होगा. Android के साथ काम करने वाले डिवाइस, Android नेटवर्क में शामिल हो सकते हैं. इसमें, Google Play का लाइसेंस, ऐप्लिकेशन और एपीआई के Google Mobile Services (GMS) सुइट का लाइसेंस, और Android ट्रेडमार्क का इस्तेमाल शामिल है. Android सोर्स कोड का इस्तेमाल कोई भी कर सकता है. हालांकि, किसी डिवाइस को Android के साथ काम करने वाला माना जा सकता है, इसके लिए ज़रूरी है कि वह Android के साथ काम करता हो.
- आर्टफ़ैक्ट
- बिल्ड से जुड़ा लॉग, जो स्थानीय समस्या हल करने की सुविधा देता है.
- कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी)
- ऐसा दस्तावेज़ जिसमें Android के साथ काम करने वाले डिवाइस के लिए, सॉफ़्टवेयर और हार्डवेयर की ज़रूरी शर्तों के बारे में बताया गया हो.
- कंपैटिबिलिटी टेस्ट सुइट (CTS)
मुफ़्त में उपलब्ध, व्यावसायिक ग्रेड का टेस्ट सुइट. इसे AOSP में बाइनरी या सोर्स के तौर पर डाउनलोड किया जा सकता है. सीटीएस, यूनिट टेस्ट का एक सेट है. इसे आपके रोज़ के वर्कफ़्लो में इंटिग्रेट करने के लिए डिज़ाइन किया गया है. सीटीएस का मकसद, काम न करने वाली सुविधाओं का पता लगाना है. साथ ही, यह पक्का करना है कि डेवलपमेंट की पूरी प्रोसेस के दौरान सॉफ़्टवेयर काम करता रहे.
सीटीएस और प्लैटफ़ॉर्म टेस्ट, एक-दूसरे से अलग नहीं हैं. यहां कुछ सामान्य दिशा-निर्देश दिए गए हैं:
- अगर कोई टेस्ट, फ़्रेमवर्क एपीआई फ़ंक्शन या व्यवहार के सही होने का दावा कर रहा है और इस टेस्ट को सभी OEM पार्टनर पर लागू किया जाना चाहिए, तो यह टेस्ट सीटीएस में होना चाहिए.
- अगर किसी टेस्ट का मकसद प्लैटफ़ॉर्म के डेवलपमेंट के दौरान, रिग्रेशन को पकड़ना है और उसे करने के लिए खास अनुमति की ज़रूरत पड़ सकती है और यह लागू करने की जानकारी (जैसा कि 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 पर देखे जा सकते हैं.- प्रोसेस सबमिट करने से पहले की जाने वाली जांच
यह एक टेस्ट है, जिसका इस्तेमाल आम कर्नेल में गड़बड़ियों को रोकने के लिए किया जाता है.
- Trade Federation
इसे Tradefed भी कहा जाता है. यह Android डिवाइसों पर टेस्ट चलाने के लिए डिज़ाइन किया गया, लगातार टेस्ट करने वाला फ़्रेमवर्क है. उदाहरण के लिए, Tradefed का इस्तेमाल, Compatibility Test Suite और Vendor Test Suite टेस्ट चलाने के लिए किया जाता है.
- वेंडर टेस्ट सुइट (वीटीएस)
Android टेस्टिंग के लिए कई सुविधाओं का सेट, टेस्ट-ड्रिवन डेवलपमेंट प्रोसेस को बढ़ावा देना, और हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) और ओएस कर्नेल टेस्टिंग को ऑटोमेट करना.
प्लैटफ़ॉर्म टेस्ट के टाइप
आम तौर पर, प्लैटफ़ॉर्म टेस्ट एक या एक से ज़्यादा Android सिस्टम सेवाओं या एचएएल लेयर के साथ इंटरैक्ट करता है. साथ ही, टेस्ट किए जा रहे विषय की सुविधाओं को इस्तेमाल करता है और टेस्ट के नतीजे के सही होने की पुष्टि करता है. प्लैटफ़ॉर्म टेस्ट में ये काम किए जा सकते हैं:
- (पहला टाइप) Android फ़्रेमवर्क का इस्तेमाल करने वाले कसरत फ़्रेमवर्क एपीआई. इस्तेमाल किए जा रहे खास एपीआई में ये शामिल हो सकते हैं:
- तीसरे पक्ष के ऐप्लिकेशन के लिए बनाए गए सार्वजनिक एपीआई
- छिपे हुए एपीआई, जो खास ऐप्लिकेशन के लिए हैं. जैसे, सिस्टम एपीआई या निजी एपीआई (
@hide
याprotected
,package private
)
- (टाइप 2) रॉ बाइंडर या आईपीसी प्रॉक्सी का इस्तेमाल करके, Android सिस्टम की सेवाओं को सीधे तौर पर शुरू करें.
- (तीसरा टाइप) लो-लेवल एपीआई या आईपीसी इंटरफ़ेस का इस्तेमाल करके, सीधे एचएएल के साथ इंटरैक्ट करें.
टाइप 1 और 2 टेस्ट आम तौर पर इंस्ट्रूमेंटेशन टेस्ट होते हैं, जबकि टाइप 3 टेस्ट आम तौर पर GTests होते हैं.
आगे क्या करना है?
ज़्यादा जानकारी के लिए, यहां दिए गए दस्तावेज़ पढ़ें:
अगर आपने Android के आर्किटेक्चर के बारे में नहीं पढ़ा है, तो आर्किटेक्चर की खास जानकारी देखें.
अगर आपको Android के साथ काम करने वाला डिवाइस बनाना है, तो Android Compatibility Program की खास जानकारी देखें.
इंस्ट्रूमेंटेशन, फ़ंक्शनल, मेट्रिक, और JAR होस्ट टेस्ट को प्लैटफ़ॉर्म की लगातार टेस्टिंग सेवा में इंटिग्रेट करने के लिए, टेस्ट डेवलपमेंट वर्कफ़्लो देखें.
अपने डिवाइसों में मौजूद जोखिम का पता लगाने और उन्हें सुरक्षित बनाने के लिए, सुरक्षा जांच देखें.
अपने एचएएल और कर्नेल को लागू करने की जांच करने के बारे में जानने के लिए, वेंडर टेस्ट सुइट (वीटीएस) और इन्फ़्रास्ट्रक्चर देखें.
ऐप्लिकेशन की जांच करने के लिए, Android ऐप्लिकेशन की जांच करने के बुनियादी सिद्धांत पढ़ें. साथ ही, दिए गए सैंपल का इस्तेमाल करके, Kotlin में Android 05.1:टेस्टिंग के बुनियादी सिद्धांत को पूरा करें.
रेपो हुक की मदद से, सबमिट करने से पहले की जाने वाली बुनियादी टेस्टिंग के बारे में जानें. इन हुक का इस्तेमाल, आगे बढ़ने से पहले, यूनिट टेस्ट को ट्रिगर करने, फ़ॉर्मैटिंग की जांच करने, और लिंटर चलाने के लिए किया जा सकता है. जैसे, कोई कमिट अपलोड करना. ये हुक डिफ़ॉल्ट रूप से बंद होते हैं. ज़्यादा जानकारी के लिए, AOSP Preupload Hooks देखें.
लॉगिंग के बारे में ज़्यादा जानने के लिए, लॉगिंग के बारे में जानकारी लेख पढ़ें.
Android कोड को डीबग करने का तरीका जानने के लिए, नेटिव Android प्लैटफ़ॉर्म कोड को डीबग करना लेख पढ़ें.