Scaling Mobile Chaos Testing with AI-Driven Test Execution
यह शोध पत्र एक AI-संचालित मोबाइल चाओस टेस्टिंग सिस्टम प्रस्तुत करता है जो बड़े पैमाने पर लचीलेपन (resilience) को स्वचालित रूप से मान्य करने के लिए सर्विस-लेवल फॉल्ट इंजेक्शन के साथ LLM-आधारित टेस्ट निष्पादन को एकीकृत करता है, और सफलतापूर्वक उबर के मोबाइल अनुप्रयोगों में महत्वपूर्ण आर्किटेक्चरल जोखिमों की पहचान करते हुए डिबगिंग समय को कम करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि इंटरनेट एक विशाल, हलचल भरे शहर की तरह है जहाँ लाखों छोटे डिजिटल संदेशवाहक (ऐप्स) संदेश, भोजन और सवारी पहुँचाने के लिए इधर-उधर दौड़ रहे हैं। पर्दे के पीछे, ये संदेशवाहक एक विशाल, अदृश्य सेवाओं के जाल—जैसे बिजली संयंत्र, ट्रैफिक लाइट और गोदामों—पर निर्भर करते हैं ताकि सब कुछ सुचारू रूप से चलता रहे। कभी-कभी, इनमें से कोई अदृश्य हिस्सा टूट जाता है या धीमा हो जाता है। इसे "विफलता" (failure) कहा जाता है। सॉफ्टवेयर इंजीनियरिंग की दुनिया में, एक अभ्यास है जिसे केओस इंजीनियरिंग (Chaos Engineering) कहा जाता है, जो मूल रूप से चीजों को जानबूझकर तोड़ने की कला है ताकि यह देखा जा सके कि क्या सिस्टम जीवित रह सकता है। यह एक इमारत के लिए 'फायर ड्रिल' की तरह है, लेकिन आग के बजाय, आप बिजली गुल होने का अनुकरण करते हैं ताकि यह देखा जा सके कि आपातकालीन लाइटें काम करती हैं या नहीं।
हालाँकि, मोबाइल ऐप्स (आपके फोन पर मौजूद ऐप्स) का परीक्षण करना कठिन है। एक साधारण वेबसाइट के विपरीत, एक फोन ऐप को हजारों अलग-अलग शहरों, भाषाओं और उपयोगकर्ता की आदतों से निपटना होता है। यदि आप हर उस तरीके का परीक्षण करने की कोशिश करते जिससे ऐप टूट सकता है, तो आपको हर शहर में करने की आवश्यकता होगी, तो आपको लाखों टेस्ट स्क्रिप्ट लिखने की आवश्यकता होगी। यह न्यूयॉर्क जैसे शहर के हर एक दरवाजे को यह जांचने की कोशिश करने जैसा है कि वे ठीक से लॉक होते हैं या नहीं; यह इंसानों द्वारा मैन्युअल रूप से करना असंभव है। यह शोध पत्र इस असंभव गणितीय समस्या को हल करने के लिए AI (आर्टिफिशियल इंटेलिजेंस) का उपयोग करता है।
Uber के शोधकर्ताओं ने, जो एक कंपनी है जो यात्रियों को ड्राइवरों और लोगों को भोजन से जोड़ती है, एक ऐसा सिस्टम बनाया है जो दो शक्तिशाली उपकरणों को जोड़ता है। पहला उपकरण DragonCrawl नामक एक AI रोबोट है। DragonCrawl को एक बहुत ही स्मार्ट, जिज्ञासु किशोर के रूप में समझें जो फोन स्क्रीन को देख सकता है, देख सकता है कि वह क्या देख रहा है (जैसे "ओह, यह पिज्जा ऑर्डर करने का बटन है"), और बिना किसी मानव द्वारा हर एक बटन के लिए विशिष्ट निर्देश लिखे, यह समझ सकता है कि आगे क्या क्लिक करना है। दूसरा उपकरण uHavoc है, जो एक नियंत्रित 'सबोटर' (saboteur) की तरह काम करता है। यह जानबूझकर बैकएंड (अदृश्य सेवाओं के जाल) के हिस्सों को तोड़ता है ताकि यह देखा जा सके कि फोन ऐप कैसे प्रतिक्रिया देता है।
आमतौर पर, ये दोनों उपकरण अलग-अलग काम करते थे। DragonCrawl यह परीक्षण करता था कि जब सब कुछ एकदम सही हो तो ऐप कैसे काम करता है, और uHavol क यह परीक्षण करता था कि क्या सर्वर क्रैश को संभाल सकते हैं। लेकिन शोधकर्ताओं ने महसूस किया कि यदि वे उन्हें मिला देते हैं, तो वे एक स्वचालित "केओस टेस्टिंग" मशीन बना सकते हैं। उन्होंने DragonCrawl को ऐप चलाने दिया जबकि uHavoc साथ-साथ बैकग्राउंड में चीजों को तोड़ रहा था। लक्ष्य यह देखना था कि क्या ऐप काम करना जारी रख सकता है (जैसे सवारी बुक करना) भले ही बैकएंड सेवाएं खराब चल रही हों।
यह शोध पत्र बताता है कि उन्होंने इस सिस्टम को कैसे बनाया और इसे चालू करने पर क्या हुआ। उन्होंने केवल अनुमान नहीं लगाया; उन्होंने 2024 की पहली तिमाही में शुरू करते हुए इस सिस्टम को 180,000 बार चलाया। उन्होंने Uber के राइडर, ड्राइवर और ईट्स (Eats) ऐप्स के 47 महत्वपूर्ण फ्लो (flows) (जैसे सवारी बुक करना या भोजन ऑर्डर करना) का परीक्षण किया। परिणाम प्रभावशाली थे। AI-संचालित सिस्टम ने 23 गंभीर समस्याओं को ढूंढ निकाला जिन्हें इंसानों ने मिस कर दिया था। इनमें से अधिकांश ऐसे मामले थे जहाँ एक छोटी, महत्वहीन सेवा के विफल होने से एक बड़ी, महत्वपूर्ण सुविधा (जैसे सवारी के लिए भुगतान करना) क्रैश हो गई थी। वास्तव में, पाई गई दो समस्याएं ऐसी थीं जिनके कारण ऐप पूरी तरह से फ्रीज होकर क्रैश हो जाता, जो कि एक ऐसी चीज़ है जिसे केवल वास्तविक फोन पर परीक्षण करके ही पकड़ा जा सकता है।
उनकी खोज का एक सबसे शानदार हिस्सा "ब्लेम गेम" (दोष मढ़ने के खेल) को ठीक करना है। जब कोई टेस्ट फेल होता था, तो पहले वरिष्ठ इंजीनियरों को यह समझने में घंटों लग जाते थे कि किस टूटी हुई सेवा के कारण फोन ऐप अजीब व्यवहार कर रहा था। उनका नया सिस्टम सबूतों को देखने और अपराधी का अनुमान लगाने के लिए AI का उपयोग करता है। जब शीर्ष पांच अनुमानों को देखा गया, तो यह 88% बार सही था। इसने समस्याओं को ठीक करने में लगने वाले समय को घंटों से घटाकर मिनटों में कर दिया।
यह शोध पत्र इस बात पर भी प्रकाश डालता है कि यह केवल एक सिद्धांत नहीं था। उन्होंने साबित किया कि यह वास्तविक दुनिया में बिना वास्तविक ग्राहकों को नुकसान पहुँचाए काम करता है। उन्होंने पाया कि AI अविश्वसनीय रूप से विश्वसनीय था, जो बैकग्राउंड में चीजें टूटने के बावजूद 99% टेस्ट पास कर रहा था। इसका मतलब है कि सिस्टम इतना मजबूत है कि इसे हर रात चलाया जा सकता है, लगातार यह जांचने के लिए कि क्या ऐप आपदा के लिए तैयार है। लेखक तर्क देते हैं कि यह दृष्टिकोण "कॉम्बिनेटोरियल एक्सप्लोजन" (combinatorial explosion) की समस्या को हल करता है—यह विचार कि आवश्यक परीक्षणों की संख्या इतनी तेजी से बढ़ती है कि उसे संभालना असंभव हो जाता है। रीयल-टाइम में स्क्रीन के अनुकूल होने के लिए AI का उपयोग करके, उन्हें लाखों टेस्ट स्क्रिप्ट लिखने की आवश्यकता नहीं पड़ी; AI ने चलते-चलते खुद ही सब समझ लिया।
हालाँकि, शोध पत्र सावधानी से यह भी नोट करता है कि यह सिस्टम क्या नहीं कर सकता है। यह इंटरनेट केबल कटने या उन सेवाओं की विफलताओं का परीक्षण नहीं कर सकता है जो Uber के नियंत्रण में नहीं हैं (जैसे कि एक थर्ड-पार्टी मैप प्रदाता)। यह इस बात पर भी निर्भर करता है कि कंपनी के पास उनकी सेवाओं को ठीक से लेबल और ट्रैक किया गया हो, जिसे सेटअप करने के लिए बहुत काम करना पड़ता है। लेकिन जिन समस्याओं को यह हल करता है, उनके लिए, शोध पत्र सुझाव देता है कि यह एक बड़ी छलांग है। यह मोबाइल केओस टेस्टिंग को एक दुर्लभ, महंगे और मैन्युअल कार्यक्रम से बदलकर एक नियमित, स्वचालित सुरक्षा जांच में बदल देता है जो हर रात होती है, यह सुनिश्चित करती है कि जब आप अपने फोन पर "ऑर्डर" टैप करते हैं, तो ऐप किसी भी स्थिति से निपटने के लिए तैयार है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।