शुरुआती टिप्पणियां
Tony Voellm (Google)
की-नोट खोलें - क्वालिटी अश्योरेंस से लेकर टेस्ट इंजीनियरिंग तक का विकास
Ari Shamash (Google)
आपने एक ऐप्लिकेशन बनाया था. आपने इसे लॉन्च कर दिया है. आपको लगा कि आपका काम सही तरीके से पूरा हो जाएगा, थोड़ी वॉल्यूम पैदा करनी होगी, थोड़ी रकम इकट्ठा करनी होगी, उसे पूरी तरह से फेंक देना होगा और फिर बिल्कुल नया काम शुरू करना होगा, ताकि आप "सही तरीके से" कर सकें. हालांकि, नई सुविधाओं की मांग बहुत ज़्यादा है. अब आपसे एक अनोखा रफ़्तार से काम करने की कोशिश की जा रही है. अरे! अब क्या करें?
आप उसे कहीं खारिज नहीं कर सकते हैं और न ही उसे शुरू कर सकते हैं, बस आपको उस चीज़ में सुधार करने की ज़रूरत है जो आपके पास है. साथ ही, अच्छी क्वालिटी की अच्छी क्वालिटी में शामिल होते रहें. साथ ही, आपको यह पक्का करना होगा कि जो पहले से मौजूद है वह टूट न जाए. यह कैसे किया जाता है? अच्छी बात यह है कि सॉफ़्टवेयर इंजीनियरिंग इंडस्ट्री में एक नया फ़ील्ड बनता है, जो इस सामान्य स्थिति से जुड़ा है: Google में, हम इसे "टेस्ट इंजीनियरिंग" कहते हैं.
यहां हम इस बात पर चर्चा करेंगे कि टेस्ट इंजीनियरिंग क्या है, क्वालिटी अश्योरेंस से इसकी शुरुआत कैसे हुई, और पूरे उद्योग ने टेस्ट इंजीनियरिंग को कैसे लागू किया है (Google में इसे कैसे लागू किया जाता है, इसके उदाहरणों के साथ).
बड़े पैमाने पर टेस्टिंग सिस्टम
जेम्स वाॅल्डड्रॉप (Twitter)
जेम्स, टूल का इस्तेमाल करने के तरीके, उसके तरीके, और दर्शन पर चर्चा करेंगे. इयागो ओपन सोर्स लोड टेस्टिंग लाइब्रेरी पर खास तौर से ज़ोर दिया जाएगा. इस लाइब्रेरी को उन्होंने प्रोडक्शन के लिए कोड डिप्लॉय करने से पहले, Twitter की इंजीनियरिंग टीमों को लोड टेस्ट करने के लिए लिखा था. यह बातचीत, इनमें से कुछ टेस्ट को लागू करने से जुड़ी जानकारी के साथ-साथ, सोर्स कोड के बारे में भी बताएगी. साथ ही, यह भी बताया जाएगा कि OAuth और आर्बिट्रेरी प्रोटोकॉल जैसे मुश्किल मामलों को कैसे मैनेज किया जाता है.
आप मोबाइल ओएस को कैसे टेस्ट करते हैं?
डेविड बर्न्स (Mozilla) और मालिनी दास (Mozilla)
जब हमने FirefoxOS की दुनिया में जाने का फ़ैसला किया, तो इसी समस्या ने Mozilla का सामना किया. कहां से शुरू करें और इसे कैसे करें, एक दिलचस्प काम साबित हो सकता था. आइए सुनें कि हमने इस समस्या को कैसे हल किया और एक नया फ़्रेमवर्क कैसे बनाया.
लगातार डिलीवरी पाइपलाइन में मोबाइल ऑटोमेशन
इगोर डोरोव्स्की (एक्सपीडिया) और कौस्तुभ गवांडे (एक्सपीडिया)
Expedia ने 2012 की शुरुआत में मोबाइल वेब और iOS/Android ऐप्लिकेशन में निवेश करना शुरू किया था. साथ ही, टेस्ट इंजीनियर ने शुरुआत से ही प्रॉडक्ट में क्वालिटी और जांच करने के मकसद से, टेस्ट ऑटोमेशन के तरीके डेवलप करने शुरू किए. इस बातचीत में, हम Expedia के एजाइल डेवलपमेंट और लगातार डिलीवरी एनवायरमेंट में, ऑटोमेटेड टेस्टिंग बनाने के लिए ओपन सोर्स टूल के इस्तेमाल से जुड़े अपने अनुभव और जानकारी शेयर करेंगे. हम टेस्ट पिरामिड के बारे में बात करेंगे और उन ओपन सोर्स टूल के बारे में ज़्यादा जानकारी देंगे जिन्होंने हमारे लिए अच्छा काम किया. हम ओपन सोर्स टूल का इस्तेमाल करते हैं, जैसे कि कडी, वेब ऑटोमेशन टूल सेलेनियम-वेबड्राइवर, iOS ऑटोमेशन टूल फ़्रैंक, Android ऑटोमेशन टूल रोबोटियम और कालबाश, और लगातार इंटिग्रेशन करने वाले सिस्टम Jenkins. इसके अलावा, हम एजाइल डिलीवरी के कुछ सिद्धांत शेयर करेंगे. इन्हें हम TDD, पेयर प्रोग्रामिंग, बिल्ड, और टेस्ट रेडिएटर जैसे तरीकों में अपनाने की कोशिश करते हैं. आखिर में, हम Agile और टेस्ट ऑटोमेशन में निवेश से मिले फ़ायदों के बारे में बताएंगे. साथ ही, हम यह भी बताएंगे कि इससे हमें 'लगातार डिलीवरी' वाले लक्ष्य कैसे मिल रहे हैं.
GStreamer और OpenCV के साथ स्वचालित सेट-टॉप बॉक्स परीक्षण
डेविड रोथलिसबर्गर (YouView)
हम GStreamer के कमांड-लाइन टूल और OpenCV का इस्तेमाल करके, तीन मिनट में वीडियो कैप्चर करने वाला एक इमेज कैप्चर सिस्टम बनाएंगे. (GStreamer एक ओपन सोर्स मीडिया-हैंडलिंग फ़्रेमवर्क है; OpenCV —"Open Computer Vision"—एक ओपन सोर्स इमेज-प्रोसेसिंग लाइब्रेरी है.)
http://stb-tester.com एक ओपन सोर्स टूल है, जिसे हमारे सेट-टॉप बॉक्स के यूज़र इंटरफ़ेस (यूआई) की जांच के लिए बनाया गया है. इस तरह के ज़्यादातर टूल का इस्तेमाल उदाहरण के तौर पर किया जा सकता है. हम STB-टेस्टर, इसके GStreamer बेसलाइन के साथ मिलने वाले फ़ायदों के बारे में बताएंगे. साथ ही, यह कुछ नई संभावनाएं भी तलाशेगा.
Chrome के लिए वेबड्राइवर
Ken Kania (Google)
सिर्फ़ Windows ब्राउज़र के तौर पर, Chrome का विस्तार Mac, Linux, ChromeOS, और हाल ही में Android और iOS तक हुआ है. इन सभी प्लैटफ़ॉर्म के वेब ऐप्लिकेशन की उपयोगकर्ता लेवल टेस्टिंग मुश्किल रही है. साथ ही, कई तरह के ऑटोमेशन की ज़रूरत है. इस चर्चा में यह बताया जाएगा कि Chrome टीम, WebDriver को सभी प्लैटफ़ॉर्म पर उपलब्ध कराने के लिए क्या काम कर रही है. इसमें दिए गए तरीके की तकनीकी जानकारी शामिल होगी. हालांकि, इसमें खास तौर पर इस बात पर फ़ोकस किया जाएगा कि डेवलपर Chrome के अलग-अलग प्लैटफ़ॉर्म के लिए, टेस्ट लिखने के लिए नए ChromeDriver का इस्तेमाल कैसे कर सकते हैं. साथ ही, प्रोजेक्ट की मौजूदा स्थिति और आने वाले समय के रोडमैप पर भी ध्यान दिया जाएगा.
कर्मा - JavaScript के लिए परीक्षण धावक
Vojta Jina (Google)
Karma के बारे में जानकारी - टेस्ट रनर, जिससे JavaScript ऐप्लिकेशन को आसानी से और मज़ेदार तरीके से टेस्ट किया जा सकता है.
अगर कोई ऐसा JavaScript ऐप्लिकेशन बना रहा है जो कई ब्राउज़र और डिवाइसों पर काम करना चाहिए, तो इस जांच की ज़रूरत नहीं है. हालांकि, इन अलग-अलग वजहों से टेस्ट को चलाना मुश्किल है. कर्म आम तौर पर लगने वाले इस काम को केक का हिस्सा बना देता है. यह आपको सीधे अपने टर्मिनल या अपने पसंदीदा आईडीई की मदद से, वास्तविक ब्राउज़र या अपने फ़ोन या टैबलेट जैसे डिवाइस पर JavaScript टेस्ट चलाने की अनुमति देता है.
ऑटोमेटेड वीडियो क्वालिटी मेज़रमेंट
पैट्रिक हॉगंड (Google)
हां, वीडियो की क्वालिटी जैसे मुश्किल और अलग-अलग चीज़ों के मेज़रमेंट की अपने-आप जांच हो सकती है! यह बातचीत आपको बताती है कि कैसे WebRTC वीडियो कॉल का एक लगातार, ऑटोमेटेड-टू-एंड टेस्ट बनाया गया. हम टूलचेन पर एक नज़र डालेंगे और देखेंगे कि इसे बनाते समय हमें किन चुनौतियों का सामना करना पड़ा. अपने मीडिया टेस्टिंग को अगले लेवल पर ले जाने के लिए, आपको प्रेरणा देने की ज़रूरत है.
जब खराब चीज़ें अच्छी ऐप्लिकेशन में होती हैं...
मीनल मिश्रा (Netflix)
मोबाइल और टैबलेट कंप्यूटिंग में लगातार बढ़ रही बढ़ोतरी ने ऐप्लिकेशन डेवलपमेंट प्लैटफ़ॉर्म की मदद से सॉफ़्टवेयर उद्योग को पूरी तरह से प्रभावित कर दिया है. कंप्यूटिंग प्लैटफ़ॉर्म पर उपभोक्ता ऐप्लिकेशन बनाने का असली उपयोगकर्ताओं के लिए खास तौर पर अच्छा अनुभव होता है. सॉफ़्टवेयर का इस्तेमाल करने वाली कंपनियां, इन प्लैटफ़ॉर्म के लिए ऐप्लिकेशन बनाते समय हमेशा अपनी पूरी कोशिश करती हैं. हालांकि, ऐप्लिकेशन डेवलपमेंट में सबसे बड़ी चुनौती तब आती है, जब कंपनियां ऐप्लिकेशन का पहला वर्शन रोल आउट करती हैं. उपभोक्ता और सॉफ़्टवेयर कंपनियां सबसे नई सुविधाओं और फ़ंक्शन का डेवलपमेंट करना चाहती हैं, ताकि उन्हें जल्द से जल्द अच्छी क्वालिटी मिल सके. इससे स्टैक की हर लेयर में कोड चर्न आउट हो जाता है. यूज़र इंटरफ़ेस (यूआई) ऑटोमेशन इंजीनियर, ऐप्लिकेशन से जुड़ी समस्याओं को जल्द से जल्द पहचानने के लिए, कई तरह के पहचान सिस्टम बनाते हैं. इस बातचीत में, हम यह पता लगाने वाले एक सिस्टम के पीछे, अपनी कुछ चुनौतियों और सफलताओं के बारे में बात करेंगे. इससे, ऐप्लिकेशन लेयर से बाहर समस्याएं ढूंढने में मदद मिली, लेकिन उपयोगकर्ता अनुभव पर बुरा असर पड़ा.
टेस्टिंग के लिए, शिक्षा से जुड़े गेमिंग और शिक्षा से जुड़े गेमिंग के लिए टेस्टिंग
ताओ ज़ी (नॉर्थ कैरोलिना स्टेट यूनिवर्सिटी)
यह बातचीत Pex4Fun (http://www.pexforfun.com/) के लिए है. इसमें, ऑनलाइन प्रोग्रामिंग सिस्टम में अपने-आप ग्रेडिंग देने की सुविधा को चालू करने के लिए, अपने-आप होने वाले टेस्ट जनरेशन का इस्तेमाल किया जाता है. इस प्रोग्राम को, हज़ारों उपयोगकर्ताओं तक पहुंचाया जा सकता है. यह प्रोग्राम से जुड़े गेमिंग अनुभव को क्लासरूम के बाहर भी उपलब्ध कराता है. इससे उपयोगकर्ताओं को प्रोग्रामिंग और सॉफ़्टवेयर इंजीनियरिंग के कौशल सीखने के लिए ट्रेनिंग मिलती है. इनमें, पैरामीटर के तौर पर बने टेस्ट लिखने जैसे कौशल भी शामिल हैं. Pex4Fun असाइनमेंट ग्रेडिंग की जानी-पहचानी समस्या के लिए एक अहम योगदान देता है. साथ ही, यह इंटरैक्टिव गेमिंग पर आधारित एक मज़ेदार लर्निंग अनुभव भी देता है. Pex4Fun को समुदाय में काफ़ी लोकप्रियता मिल रही है: जून 2010 में, उसे सार्वजनिक रूप से रिलीज़ किए जाने के बाद से, "Pex Fun!" बटन पर क्लिक करने की संख्या से पता चलता है कि Pex4Fun पर उपयोगकर्ताओं के बनाए गए गेम को बेहतर बनाने की कोशिशों की संख्या 2013 की शुरुआत में 10 लाख से ज़्यादा हो गई है.
मुख्य बातों को बंद करने का तरीका - Facebook, Android पर Facebook की जांच कैसे करता है
सिमन स्टीवर्ट (Facebook)
Facebook सबसे लोकप्रिय Android ऐप्लिकेशन में से एक है. इस बातचीत में, आपको यह पता चलेगा कि Facebook क्या करता है, ताकि यह पक्का हो सके कि हर रिलीज़ जितनी हो सके उतनी अच्छी हो. हम अपने कोड को मैनेज करने के तरीके से लेकर, टेस्टिंग करने के तरीके तक और डॉगफ़ूडिंग तक के तरीके की पूरी जानकारी देंगे.