Android ओपन सोर्स प्रोजेक्ट (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 पर देखे जा सकते हैं.- सबमिट करने से पहले की जाने वाली जांच
इस टेस्ट का इस्तेमाल, सामान्य कर्नलों में गड़बड़ियां होने से रोकने के लिए किया जाता है.
- ट्रेड फ़ेडरेशन
इसे 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 होते हैं.
आगे क्या करना है?
ज़्यादा जानकारी के लिए, यहां दिए गए दस्तावेज़ पढ़ें:
अगर आपने Android के आर्किटेक्चर के बारे में नहीं पढ़ा है, तो आर्किटेक्चर की खास जानकारी देखें.
अगर आपको Android के साथ काम करने वाला डिवाइस बनाना है, तो Android Compatibility Program के बारे में खास जानकारी देखें.
इंस्ट्रुमेंटेशन, फ़ंक्शनल, मेट्रिक, और JAR होस्ट टेस्ट को किसी प्लैटफ़ॉर्म की लगातार टेस्टिंग सेवा में इंटिग्रेट करने के लिए, टेस्ट डेवलपमेंट वर्कफ़्लो देखें.
कमज़ोरियों का पता लगाने और अपने डिवाइसों को सुरक्षित करने के लिए, सुरक्षा जांच देखें.
अपने HAL और कर्नल के लागू किए गए वर्शन की जांच करने के बारे में जानने के लिए, Vendor Test Suite (VTS) और इन्फ़्रास्ट्रक्चर देखें.
ऐप्लिकेशन की टेस्टिंग के लिए, Android ऐप्लिकेशन की टेस्टिंग की बुनियादी बातें पढ़ें. साथ ही, दिए गए सैंपल का इस्तेमाल करके, Kotlin 05.1 में ऐडवांस Android:टेस्टिंग की बुनियादी बातें को पूरा करें.
Repo Hook के ज़रिए, सबमिट करने से पहले की जाने वाली बुनियादी टेस्टिंग के बारे में जानें. इन हुक का इस्तेमाल, लिंटर चलाने, फ़ॉर्मैटिंग की जांच करने, और यूनिट टेस्ट ट्रिगर करने के लिए किया जा सकता है. ऐसा, कोई कार्रवाई करने से पहले किया जाता है. जैसे, कमिट अपलोड करना. ये हुक डिफ़ॉल्ट रूप से बंद होते हैं. ज़्यादा जानकारी के लिए, AOSP Preupload Hooks देखें.
लॉगिंग के बारे में ज़्यादा जानने के लिए, लॉगिंग के बारे में जानकारी लेख पढ़ें.
Android कोड को डीबग करने का तरीका जानने के लिए, Android प्लैटफ़ॉर्म के नेटिव कोड को डीबग करना लेख पढ़ें.