GTAC 2013: प्रज़ेंटेशन

GTAC 2013 की सभी वीडियो रिकॉर्डिंग और स्लाइड, सभी के लिए उपलब्ध हैं. आप उन्हें GTAC 2013 YouTube प्लेलिस्ट से देख सकते हैं या नीचे दी गई बातचीत ब्राउज़ कर सकते हैं:

मीटिंग की शुरुआती बातें

टोनी वोएल्म (Google)

लिंक: वीडियो

मुख्य बातें खोल रहा है - क्वालिटी अश्योरेंस से लेकर टेस्ट इंजीनियरिंग तक का विकास

एरी शमाश (Google)

आपने एक ऐप्लिकेशन बनाया है. आपने इसे लॉन्च किया है. आपको ऐसा लग रहा था कि आपको उसका इस्तेमाल करना है, वॉल्यूम बढ़ाना है, पैसा जुटाना है, पूरा काम करना है, और फिर शुरुआत करनी है." हालांकि, अब नई सुविधाओं की मांग बहुत ज़्यादा बढ़ गई है, लेकिन अब आपसे जानकारी नहीं मिलने की रफ़्तार के अभूतपूर्व स्तर पर जाने के लिए कहा जा रहा है. अरे! अब क्या करें?

इसे न तो खारिज किया जा सकता है और न ही शुरुआत से शुरू किया जा सकता है. आपको बस इतना डेवलप करना है कि बेहतर क्वालिटी की सुविधाओं के साथ, अपने ऐप्लिकेशन को और बेहतर बनाएं. इसके अलावा, आपको यह पक्का करना होगा कि जो चीज़ पहले से मौजूद है वह ब्रेक न हो. आप इसे कैसे करते हैं? अच्छी बात यह है कि सॉफ़्टवेयर इंजीनियरिंग इंडस्ट्री में एक नया फ़ील्ड बन रहा है जो इस आम स्थिति का समाधान करता है: Google में, हम इसे "टेस्ट इंजीनियरिंग" कहते हैं.

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

लिंक: वीडियो, Slides

@Twitter पर टेस्टिंग सिस्टम

जेम्स वॉलड्रॉप (Twitter)

जेम्स, Twitter पर परफ़ॉर्मेंस की जांच करने वाले टूल, प्रोसेस, और दर्शन पर चर्चा करेंगे. Igo के ओपन सोर्स लोड टेस्टिंग लाइब्रेरी पर खास तौर से ज़ोर दिया जाएगा. उन्होंने इसलिए लिखा, ताकि Twitter की इंजीनियरिंग टीम को प्रोडक्शन के लिए कोड डिप्लॉय करने से पहले, लोड टेस्ट करने में मदद मिल सके. इस बातचीत में, इनमें से कुछ टेस्ट की लागू होने वाली जानकारी (सोर्स कोड के साथ) और OAuth और आर्बिट्रेरी थ्रिफ़्ट प्रोटोकॉल को मैनेज करने से जुड़ी मुश्किलों के बारे में बताया जाएगा.

लिंक: वीडियो, Slides

मोबाइल ओएस को कैसे टेस्ट करें?

डेविड बर्न्स (Mozilla) और मालिनी दास (Mozilla)

इसी समस्या की वजह से Mozilla OS का सामना Firefox से शुरू हुआ. कहां से शुरू करें और इसे कैसे करना है, इससे एक दिलचस्प काम का पता चल जाएगा. आइए, जानें कि हमने यह समस्या कैसे हल की और नया फ़्रेमवर्क कैसे तैयार किया.

लिंक: वीडियो, Slides

लगातार डिलीवरी पाइपलाइन में मोबाइल ऑटोमेशन

इगोर दोरोव्स्की (एक्सपीडिया) और कौस्तुभ गवांडे (एक्सपीडिया)

Expedia ने 2012 की शुरुआत में, मोबाइल वेब और iOS/Android ऐप्लिकेशन में निवेश करना शुरू किया. साथ ही साथ, टेस्ट इंजीनियर ने शुरुआत से ही प्रॉडक्ट की क्वालिटी और जांच को आसान बनाने के लिए, टेस्ट ऑटोमेशन सलूशन डेवलप करने शुरू कर दिए हैं. इस बातचीत में, हम Expedia की एजाइल डेवलपमेंट और लगातार होने वाली डिलीवरी के माहौल में ऑटोमेटेड टेस्टिंग बनाने के लिए, ओपन सोर्स टूल का इस्तेमाल करने के अपने अनुभव और जानकारी शेयर करेंगे. हम टेस्ट पिरामिड के बारे में बात करेंगे और उन ओपन सोर्स टूल के बारे में ज़्यादा जानकारी देंगे जिन्होंने हमारे लिए अच्छा काम किया है. हम ओपन सोर्स टूल का इस्तेमाल करते हैं, जैसे कि ककंबर, वेब ऑटोमेशन टूल सेलेनियम-वेबड्राइवर, iOS ऑटोमेशन टूल फ़्रैंक, Android ऑटोमेशन टूल रोबोटियम, और कबाश. साथ ही, इंटिग्रेशन इंटिग्रेशन Jenkins. इसके अलावा, हम एजाइल डिलीवरी के कुछ सिद्धांतों को शेयर करेंगे. इन्हें हम TDD, पेयर प्रोग्रामिंग, बिल्ड, और टेस्ट रेडिएटर जैसे तरीकों को अपनाने की कोशिश करते हैं. आखिर में, हम उन कुछ फ़ायदों को शेयर करेंगे जो हमें एजाइल में निवेश करने और ऑटोमेशन को टेस्ट करने के लिए मिले हैं. साथ ही, हम यह भी बताएंगे कि इससे हमें लगातार डिलीवरी के लक्ष्य कैसे मिल रहे हैं.

लिंक: वीडियो, Slides

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 के लिए उपलब्ध कराने के लिए क्या कर रही है. इसमें इस्तेमाल किए गए तरीके से जुड़ी तकनीकी जानकारी शामिल होगी. साथ ही, इस बात पर फ़ोकस किया जाएगा कि डेवलपर, Chrome के अलग-अलग प्लैटफ़ॉर्म के लिए टेस्ट लिखने के लिए, नए ChromeDriver का इस्तेमाल कैसे कर सकते हैं. साथ ही, प्रोजेक्ट की मौजूदा स्थिति और उसके भविष्य के रोडमैप के बारे में बताया जाएगा.

लिंक: वीडियो, Slides

कर्मा - JavaScript के लिए धावक का परीक्षण

वोज्ता जिना (Google)

कर्मा का परिचय - ऐसे टेस्ट रनर में जो JavaScript ऐप्लिकेशन की जांच को आसान और मज़ेदार बनाता है.

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

लिंक: वीडियो

ऑटोमेटेड वीडियो क्वालिटी मेज़रमेंट

पैट्रिक हॉगंड (Google)

हां, वीडियो क्वालिटी जैसे मुश्किल मेज़रमेंट की अपने-आप जांच हो सकती है! इस बातचीत में यह दिखाया जाएगा कि हमने WebRTC वीडियो कॉल का लगातार, अपने-आप शुरू से आखिर तक टेस्ट कैसे बनाया है. हम इस टूलचेन को देखेंगे और देखेंगे कि इसे बनाते समय हमें किन चुनौतियों का सामना करना पड़ा. अपनी मीडिया टेस्टिंग को बेहतर बनाने के लिए, आपको प्रेरणा देने के लिए यह तरीका बेहतर है.

लिंक: वीडियो, Slides

जब खराब चीज़ें अच्छी क्वालिटी के ऐप्लिकेशन में आती हैं, तो...

मीनाल मिश्रा (Netflix)

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

लिंक: वीडियो, Slides

टेस्टिंग के लिए एजुकेशनल गेमिंग और एजुकेशनल गेमिंग की जांच

ताओ शी (नॉर्थ कैरलाइना स्टेट यूनिवर्सिटी)

यह बातचीत Pex4Fun (http://www.pexforfun.com/) पर आधारित है. यह कार्यक्रम, ऑनलाइन टेस्टिंग सिस्टम की मदद से अपने-आप ग्रेड देने की सुविधा को बेहतर बनाने के लिए, ऑटोमेटेड टेस्टिंग जनरेशन का इस्तेमाल करता है. इस प्रोग्राम के तहत, हज़ारों उपयोगकर्ताओं को दिया जा सकता है. इस ऐप्लिकेशन की मदद से, कक्षा के बाहर प्रोग्रामिंग करने के अनुभव को बेहतर बनाया जा सकता है. साथ ही, उपयोगकर्ताओं को अलग-अलग प्रोग्रामिंग और सॉफ़्टवेयर इंजीनियरिंग स्किल सीखने की ट्रेनिंग दी जा सकती है. इनमें, पैरामीटर वाले यूनिट टेस्ट लिखना भी शामिल है. Pex4Fun, असाइनमेंट ग्रेडिंग की जानी-पहचानी समस्या में अहम योगदान देता है. साथ ही, यह इंटरैक्टिव गेमिंग पर आधारित मज़ेदार लर्निंग अनुभव भी देता है. Pex4Fun को समुदाय में सबसे ज़्यादा पसंद किया जा रहा है: साल 2010 में, इसे सार्वजनिक तौर पर रिलीज़ होने के बाद से, "Pex पूछें!" बटन पर क्लिक की संख्या बताई गई है. इससे पता चलता है कि उपयोगकर्ताओं ने Pex4Fun को गेम में शामिल करने के लिए जो कोशिशें की थीं वे 2013 की शुरुआत में 10 लाख से ज़्यादा हो गई हैं.

लिंक: वीडियो, Slides

स्टोरी बंद करना - Facebook, Android पर Facebook की जांच कैसे करता है

सिमन स्टुअर्ट (Facebook)

Facebook, वहां के सबसे लोकप्रिय Android ऐप्लिकेशन में से एक है. इस बातचीत में, आपको मिलेगा कि Facebook क्या करता है, ताकि यह पक्का हो सके कि हर रिलीज़ उतनी ही अच्छी है जितनी हो सकती है. इस पेज पर, हम कोड को मैनेज करने के तरीके से लेकर, जांच करने के अपने तरीके और डॉगफ़ूडिंग तक की पूरी जानकारी शामिल करेंगे.

लिंक: वीडियो, Slides

मुख्य बातों को खोलना - टेस्ट करने लायक JavaScript - जांच के लिए अपने ऐप्लिकेशन को तैयार करना

मार्क ट्रॉस्टर (Google)

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

जहां JavaScript के बहुत सारे एनवायरमेंट की वजह से यह चलता है, वहां कई अन्य भाषाओं में आज़माए गए और सही 'टेस्टेबल' तरीके उपलब्ध होते हैं. साथ ही, कुछ खास चुनौतियां भी हैं जिन्हें JavaScript डेवलपर को अपना कोड लिखते और उसकी जांच करते समय करना होगा.

कौनसे पैटर्न से कोड को टेस्ट किया जा सकता है? किन पैटर्न की जांच में रुकावट आती है? हमारे कोड की जांच करने की क्षमता को मापने के लिए, किस मेट्रिक और सामान्य समझ वाले गाइडपोस्ट का इस्तेमाल किया जा सकता है? क्या जांच योग्य कोड बनाने की प्रक्रिया शुरू होने के बाद क्या होगा?

जांच किए जा सकने वाले JavaScript को लिखने की प्रोसेस को अलग-अलग करने के लिए, मुझसे जुड़ें. हम आइडिया, पैटर्न, और काम करने के तरीकों की जांच करेंगे. इनकी मदद से, जांच को बेहतर बनाया जा सकता है और कोड को लंबे समय तक इस्तेमाल किया जा सकता है. आप इस प्रोसेस में महारत हासिल करने वाले क्लाइंट- या सर्वर साइड JavaScript लिखते हैं, इससे आपके कोड की क्वालिटी बहुत बेहतर होगी.

लिंक: वीडियो, Slides

ब्रेकिंग द मैट्रिक्स - Android टेस्टिंग स्केल

थॉमस नायच (Google), स्टेफ़न रामसॉर (Google), और वलेरा ज़ाखारोव (Google)

क्या आप लाल दवाई लेने के लिए तैयार हैं?

मोबाइल ने लोगों के कंप्यूटर से इंटरैक्ट करने का तरीका बदल दिया है. यह बढ़िया है, लेकिन इंजीनियर के रूप में लगातार बदलते माहौल की वजह से हम अपने कोड को चला रहे हैं. सिर्फ़ कुछ ब्राउज़र और स्क्रीन रिज़ॉल्यूशन पर विचार करने के दिन नहीं लौट रहे हैं. इंजीनियर, मैट्रिक्स का सामना कैसे कर सकते हैं? हम इस बारे में बात करेंगे कि Google, वर्कस्टेशन पर क्लाउड में इस टेस्टिंग प्रॉब्लम को कैसे हल कर रहा है...

{0}मैं आपको याद दिलाना चाहती हूं, नियो. हालाँकि, मैं सिर्फ़ आपको दरवाज़ा दिखा सकती हूँ. आपको इस प्रोसेस से गुज़रना होगा."

लिंक: वीडियो, Slides

Android यूज़र इंटरफ़ेस (यूआई) ऑटोमेशन

ग्वांग ज़ू (朱光) (Google) और एडम मोमताज़ (Google)

जैसे-जैसे Android को मोबाइल की दुनिया में लोकप्रियता मिल रही है, ऐप्लिकेशन डेवलपर और OEM वेंडर, ऐप्लिकेशन और पूरे प्लैटफ़ॉर्म की एंड-टू-एंड यूज़र इंटरफ़ेस (यूआई) की जांच को टेस्ट करने के तरीके एक्सप्लोर कर रहे हैं. Android पर, यूज़र इंटरफ़ेस (यूआई) ऑटोमेशन के कुछ मौजूदा समाधानों की समीक्षा के साथ, यह बातचीत, हाल ही में रिलीज़ हुए Android यूज़र इंटरफ़ेस (यूआई) ऑटोमेटर फ़्रेमवर्क के बारे में बताने के साथ-साथ, फ़्रेमवर्क के सामान्य इस्तेमाल के उदाहरणों और वर्कफ़्लो पर भी नज़र रखेगी.

लिंक: वीडियो, Slides

Appium: मोबाइल ऐप्लिकेशन के लिए ऑटोमेशन

जॉनथन लिप्स (सॉस लैब)

Appium एक Node.js सर्वर है जो नेटिव और हाइब्रिड मोबाइल ऐप्लिकेशन (iOS और Android, दोनों) को ऑटोमेट करता है. एपियम का सिद्धांत है कि ऐप्लिकेशन को अपने-आप बदलने के लिए उनमें बदलाव नहीं किया जाना चाहिए. साथ ही, आपको अपना टेस्ट कोड किसी भी भाषा या फ़्रेमवर्क में लिखने की सुविधा मिलनी चाहिए. ऐसा करने से, सेलिनियम वेबड्राइवर सर्वर, मोबाइल की तरह स्थानीय भाषा बोलने लगता है. Appium, असली डिवाइसों और एम्युलेटर पर काम करता है. यह पूरी तरह से ओपन सोर्स है. यह मोबाइल टेस्ट ऑटोमेशन का इस्तेमाल शुरू करने का सबसे शानदार तरीका है. इस बातचीत में, मैं उन सिद्धांतों के बारे में बताऊँगा जिनमें ऐपियम को डिज़ाइन करने के बारे में बताया गया है. साथ ही, उन दिशा-निर्देशों के बारे में भी बताया जाएगा जो ऐपियम को दूसरे मोबाइल ऑटोमेशन फ़्रेमवर्क के ज़रिए बताते हैं. साथ ही, वह आर्किटेक्चर भी पेश करेंगे जो इसे लागू करने में मदद करते हैं. आखिर में, मैं एक नए मोबाइल ऐप्लिकेशन के आसान टेस्ट में कोड की जांच करूंगा. साथ ही, iPhone और Android पर यह टेस्ट करने वाला Appium दिखाऊंगी.

लिंक: वीडियो, Slides

Google+ मोबाइल के लिए बड़े पैमाने पर मोबाइल टेस्ट का बुनियादी ढांचा बनाना

एड्वर्डो ब्रावो (Google)

सही और स्थिर तरीके से नेटिव ऐप्लिकेशन की जांच करना एक चुनौती है. G+ ने मोबाइल से पेश किए जाने वाले हर जटिल परीक्षण की परिस्थितियों के लिए सही इंफ़्रास्ट्रक्चर देकर, इन समस्याओं को हल करने के लिए कारगर समाधान डेवलप किए हैं. हमारी मौजूदा टेस्ट इंफ़्रास्ट्रक्चर, iOS और Android ऐप्लिकेशन, दोनों के लिए सही टूल उपलब्ध कराता है. इससे, हमारी डेवलपमेंट टीम को यह भरोसा मिलता है कि नए बदलाव से मौजूदा क्लाइंट पर कोई असर नहीं पड़ेगा.

लिंक: वीडियो, Slides

एस्प्रेसो: Android यूज़र इंटरफ़ेस (यूआई) की नई जांच

वलेरा ज़ाखारोव (Google)

अपडेट [अक्टूबर 2013]: एस्प्रेसो अब ओपन सोर्स है. https://code.google.com/p/android-test-kit/ पर जाएं.

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

लिंक: वीडियो, Slides

WebDriver की मदद से, वेब की परफ़ॉर्मेंस की जांच करना

माइकल क्लेपिकोव (Google)

वेब परफ़ॉर्मेंस टेस्ट में, हम पेज लोड का विश्लेषण करने के तरीके जानते हैं. हालांकि, हमें पेज लोड से आगे नहीं बढ़ना है: आधुनिक ऐप्लिकेशन बहुत इंटरैक्टिव हैं, लेकिन कार्रवाई पूरे पेज को फिर से लोड नहीं करते, बल्कि अपडेट करते हैं. अलग-अलग लोगों ने खुद को शामिल करके, WebDriver को वेब परफ़ॉर्मेंस टेस्ट के लिए इस्तेमाल किया है. इससे, परफ़ॉर्मेंस टेस्ट को बाकी यूज़र इंटरफ़ेस (यूआई) टेस्ट सुइट से अलग रखा जाता है. मैं सीधे WebDriver में ही परफ़ॉर्मेंस की जांच करने वाली सुविधाएं बनाने का सुझाव देता हूं. इससे, वह हाल ही में जोड़े गए Logging API का इस्तेमाल करेगा. सामान्य तौर पर फ़ंक्शनल टेस्ट करते समय, परफ़ॉर्मेंस मेट्रिक इकट्ठा करना मुमकिन है. इससे, पूरे टेस्ट और फ़्लो में टेस्ट की परफ़ॉर्मेंस को आसानी से इंटिग्रेट किया जा सकता है. साथ ही, यह हर बड़े संगठन के बनाए गए कस्टम बिल्ड/टेस्ट टूलचेन से भी बहुत कम रुकावट पैदा करता है.

मैं इसे नई पीढ़ी के ChromeDriver (Chromium ब्राउज़र के लिए WebDriver) के साथ दिखाऊँगा.

लिंक: वीडियो, Slides

Maps में लगातार डेटा की जांच करना

Yvette Nameth (Google) और Branan Dhein (Google)

लगातार जांच करने का मतलब है, यूनिट की जांच और इंटिग्रेशन की जांच करना. हालांकि, जब आपके सर्वर से प्रोसेस किया जाने वाला डेटा ही बदलाव की सबसे बड़ी वजह होता है, तो आपके हिसाब से, डेटा के उपभोक्ताओं को इसे इस्तेमाल करने लायक कैसे बनाया जाए? साथ ही, यह भी पक्का करें कि बदलाव की दर या खराब बदलाव की वजह से कुछ भी क्रैश न हो? हम Google Maps से मिले नतीजों की मदद से, लगातार डेटा की जांच करने की तकनीकों पर चर्चा करेंगे.

लिंक: वीडियो, Slides

फ़ेल बिल्ड में अपने-आप अपराधियों को ढूंढना - जैसे, बिल्ड को किसने तोड़ा?

Celal Ziftci (यूसीएसडी) और विवेक रामवाज्जाला (Google)

लगातार बिल्ड करना, Google के मुख्य ढांचे में से एक है. जब कोई बिल्ड फ़ेल हो जाता है, तो यह ज़रूरी है कि इसकी वजह से या देरी से, बदलावों की सूची (सीएल)/बदलाव वाली सूची का जल्दी पता चल जाए. इससे, बिल्ड को वापस हरे रंग में लाया जा सकता है.

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

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

लिंक: वीडियो, Slides

सॉफ़्टवेयर प्रॉडक्ट लाइन की क्वालिटी की अनुभव जांच

कैतेरीना गोसेवा-पोस्तोस्तोनोवा (वेस्ट वर्जीनिया यूनिवर्सिटी)

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

लिंक: वीडियो, Slides

AddressSanitizer, ThreadSanitizer और MemorySanitizer -- C++ के लिए डाइनैमिक टेस्टिंग टूल

कोस्टिया सेरेब्रीनी (Google)

AddressSanitizer (ASan) एक ऐसा टूल है जो बफ़र ओवरफ़्लो (स्टैक, हीप, और ग्लोबल) में और C/C++ प्रोग्राम में बाद में आने वाली गड़बड़ियों का पता लगाता है. ThreadSanitizer (TSan) को C/C++ और Go प्रोग्राम में डेटा रेस का पता चलता है. MemorySanitizer (MSan) काम को शुरू करने वाला एक टूल है, जो शुरुआत की गई मेमोरी (C++) का इस्तेमाल करता है. ये टूल, कंपाइलर इंस्ट्रुमेंटेशन (LLVM और GCC) पर आधारित होते हैं. इन टूल की मदद से, यह बहुत तेज़ी से काम करता है (उदाहरण के लिए, ASan दो गुना धीमा होता है). हम इन टूल का इस्तेमाल करके, बड़े पैमाने पर टेस्टिंग के लिए अपना अनुभव शेयर करेंगे.

लिंक: वीडियो, Slides

मुख्य दस्तावेज़ - महासागर में पीने का - Google स्केल पर XSS ढूंढना

Claudio Chriscione (Google)

क्रॉस साइट स्क्रिप्टिंग या XSS, वेब ऐप्लिकेशन की दुनिया में मध्य-युग के काले प्लेग के बराबर है, जो कि बड़े पैमाने पर होता है. यह खराब है या इसका पता लगाने के बहुत कम या कोई तकनीकी तरीके नहीं हैं. DOM XSS खास तौर पर सबसे खराब वर्शन है, क्योंकि इसके लिए एक असली ब्राउज़र या इसके बराबर की किसी समस्या का पता लगाना ज़रूरी है: एक छोटी समस्या, जो अपने-आप काम करने वाले छोटे-छोटे समाधानों के साथ उपलब्ध है.

हमें डेवलपमेंट लाइफ़साइकल में डीओएम XSS की पहचान करने के लिए, दमदार और सेल्फ़-ड्राइविंग टूल की ज़रूरत थी. इसे सुरक्षा टीम के बाहर काम करने वाले इंजीनियर इस्तेमाल कर सकते थे. हमें सिर्फ़ एक ऐसा प्रॉडक्ट चाहिए था जो हमारे विशाल, तेज़, और मुश्किल से मुश्किल ऐप्लिकेशन को स्कैन कर सके... और ज़ाहिर है, हमें भी कुछ नहीं मिला. इसलिए, हमने खुद का वेब ऐप्लिकेशन स्कैनर बनाया है. इसे स्टैंडर्ड Google टेक्नोलॉजी के ऊपर डिज़ाइन किया गया DOM XSS टारगेट करता है. यह App Engine में चलता है और यह दमदार Chrome ब्राउज़र और कुछ सैकड़ों सीपीयू के साथ, सुरक्षा स्कैनिंग वाले प्लैटफ़ॉर्म के तौर पर काम करता है.

साथ ही, यह Google में जांच के लिए इस्तेमाल होने वाले आर्सेनल का एक अच्छा नागरिक है. यह सुरक्षा से जुड़ी टीम की भूमिका निभाने के बजाय, जांच करने वाले हमारे इन्फ़्रास्ट्रक्चर में काम करता है.

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

लिंक: वीडियो, Slides