ViBR: Automated Bug Replay from Video-based Reports using Vision-Language Models
यह शोध पत्र ViBR को प्रस्तुत करता है, जो एक हल्का और पूर्णतः स्वचालित ढांचा है जो बिना किसी स्पष्ट इंस्ट्रुमेंटेशन या पूर्व-निर्मित UI ग्राफ के, वीडियो-आधारित रिपोर्टों से सीधे सॉफ़्टवेयर बग्स को सफलतापूर्वक पुनरुत्पादित करने के लिए CLIP-आधारित एक्शन सेगमेंटेशन और विजन-लैंग्वेज मॉडल्स का लाभ उठाता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक सॉफ्टवेयर डेवलपर हैं, और एक यूजर आपको एक बग रिपोर्ट भेजता है। इसके बजाय कि वह एक लंबा, भ्रमित करने वाला ईमेल लिखे कि "मैंने यहाँ क्लिक किया, फिर वह किया, और फिर ऐप क्रैश हो गया," वह आपको अपने स्क्रीन का एक वीडियो भेजता है।
यह वीडियो बहुत अच्छा है क्योंकि यह दिखाता है कि बिल्कुल क्या हुआ। लेकिन समस्या यह है: आप केवल वीडियो देखकर और अपने फोन पर तुरंत उस बग को दोबारा पैदा नहीं कर सकते।
क्यों? क्योंकि आपका फोन अलग हो सकता है। शायद आपकी स्क्रीन बड़ी हो, ऐप थोड़ा अलग दिखता हो, या बटन अलग जगहों पर हों। अपने डिवाइस पर मैन्युअल रूप से वीडियो को बार-बार देखते हुए वही स्पॉट्स क्लिक करने की कोशिश करना ऐसा ही है जैसे किसी दूसरे द्वीप के लिए बनाए गए खजाने के नक्शे का पालन करना। यह धीमा, निराशाजनक है और अक्सर गलतियों का कारण बनता है।
पेश है ViBR (वीडियो-आधारित बग रिप्ले)। ViBR को एक स्मार्ट, रोबोटिक सहायक के रूप में सोचें जो यूजर के वीडियो को देखता है और स्वचालित रूप से आपके फोन पर उस बग को फिर से बनाने की कोशिश करता है, भले ही आपका फोन अलग दिखता हो।
यहाँ बताया गया है कि ViBR कैसे काम करता है, जिसे तीन सरल चरणों में रोजमर्रा के उदाहरणों (analogies) का उपयोग करके समझाया गया है:
1. "सीन कटर" (एक्शन बाउंड्री सेगमेंटेशन)
समस्या: एक वीडियो सैकड़ों फ्रेमों का एक प्रवाह (stream) होता है। रोबोट को यह जानने की जरूरत है: "यूजर ने वास्तव में कब कुछ किया?"
उदाहरण: कल्पना करें कि आप एक फिल्म देख रहे हैं और नायक द्वारा खलनायक को मारने के सटीक क्षण को खोजने की कोशिश कर रहे हैं। फिल्म में हजारों फ्रेम ऐसे होते हैं जहाँ कुछ नहीं होता, फिर एक पल की क्रिया होती है, और फिर फिर से कुछ नहीं होता।
ViBR इसे कैसे करता है: ViBR एक विशेष "आँख" (जिसे CLIP कहा जाता है) का उपयोग करता है जो वीडियो के दो लगातार फ्रेमों को देखता है। यह पूछता है, "क्या ये दो तस्वीरें मूल रूप से एक जैसी दिखती हैं, या कुछ बड़ा हुआ है?"
- यदि स्क्रीन स्थिर (static) है, तो यह उसे अनदेखा कर देता है।
- यदि स्क्रीन अचानक बदल जाती है (जैसे क्लिक के बाद नया पेज लोड होना), तो यह कहता है, "आहा! यह एक एक्शन है!" और वीडियो को अलग-अलग "सीन" में काट देता है। यह यह भी पता लगाता है कि यूजर ने टैप किया, स्क्रॉल किया या टाइप किया।
2. "स्पॉटर" (GUI स्टेट कंपेरिजन)
समस्या: अब रोबोट जानता है कि यूजर ने वीडियो में एक "सबमिट" बटन पर क्लिक किया। लेकिन आपके फोन पर, वह "सबमिट" बटन नीले रंग का हो सकता है बजाय हरे रंग के, या वह ऊपर के बजाय नीचे हो सकता है। अगर रोबोट सिर्फ एक हरे बटन को खोजता है, तो वह विफल हो जाएगा।
उदाहरण: कल्पना करें कि आप भीड़ भरे कमरे में अपने एक विशिष्ट दोस्त को ढूंढ रहे हैं। फोटो (वीडियो) में, आपके दोस्त ने लाल टोपी पहनी है। वास्तविक कमरे में (आपके फोन में), उन्होंने नीली टोपी पहनी है। एक साधारण रोबोट कहेगा, "कोई लाल टोपी नहीं मिली, मैं हार मानता हूँ।"
ViBR इसे कैसे करता है: ViBR एक विज़न-लैंग्वेज मॉडल (VLM) का उपयोग करता है—जो मूल रूप से एक AI है जो एक साथ "देख" और "पढ़" सकता है।
- यह सिर्फ "लाल टोपी" नहीं ढूंढता। यह बटन के कॉन्सेप्ट (अवधारणा) को समझता है।
- यह पूरी स्क्रीन को देखता है और पूछता है: "इस वीडियो में वह चीज़ कहाँ है जो 'सबमिट' बटन की तरह काम करती है?"
- यह GroundingDINO नामक तकनीक का उपयोग करता है ताकि संभावित बटनों को हाइलाइट किया जा सके (जैसे उनके चारों ओर एक बॉक्स बनाना) और फिर AI से पूछता है: "इनमें से कौन सा बॉक्स वह है जिस पर यूजर ने क्लिक किया था?"
- यह जाँचता है कि क्या वर्तमान स्क्रीन वीडियो के समान "कार्यात्मक रूप से समान" (functionally the same) है, भले ही रंग या लेआउट थोड़े अलग हों।
3. "माइम आर्टिस्ट" (डिवाइस पर बग रिप्ले)
समस्या: एक बार जब रोबोट सही बटन ढूंढ लेता है, तो उसे उस बटन को क्लिक करने की आवश्यकता होती है। लेकिन क्या होगा यदि ऐप लोडिंग स्क्रीन पर अटका हुआ है, या बटन छिपा हुआ है?
उदाहरण: कल्पना करें कि आप एक रोबोट को गेम खेलना सिखाने की कोशिश कर रहे हैं। आप उसे कहते हैं, "बटन पर क्लिक करें।" लेकिन बटन एक पॉप-अप विज्ञापन द्वारा ढका हुआ है। रोब "ओह, मुझे बटन पर क्लिक करने से पहले विज्ञापन को बंद करने की आवश्यकता है" यह समझने की जरूरत है।
ViBR इसे कैसे करता है:
- यदि स्क्रीन वीडियो की तरह बिल्कुल वैसी ही दिखती है, तो रोबोट बस बटन पर क्लिक कर देता है।
- यदि स्क्रीन अलग दिखती है (जैसे कोई पॉप-अप आ गया), तो रोबोट रुक जाता है और AI से पूछता है: "हे, स्क्रीन वीडियो से मेल नहीं खा रही है। मुझे सही स्थिति में वापस आने के लिए क्या करना चाहिए?"
- AI एक जासूस की तरह काम करता है, जो वर्तमान स्क्रीन और वीडियो को देखता है, और कहता है, "ठीक है, पॉप-अप को बंद करें, फिर नीचे स्क्रॉल करें, फिर बटन पर क्लिक करें।"
- यह प्रक्रिया तब तक दोहराता रहता है जब तक कि बग दोबारा उत्पन्न (reproduce) न हो जाए।
यह एक बड़ी बात क्यों है?
- "टच इंडिकेटर्स" की आवश्यकता नहीं: पिछले टूल्स के लिए यूजर्स को रिकॉर्डिंग करते समय एक विशेष "मेरा हाथ दिखाएं" सेटिंग चालू करने की आवश्यकता होती थी। ज्यादातर लोग ऐसा नहीं करते हैं। ViBR किसी भी सामान्य स्क्रीन रिकॉर्डिंग के साथ काम करता है।
- "मैप" की आवश्यकता नहीं: अन्य टूल्स ने ऐप के हर संभावित स्क्रीन का एक विशाल नक्शा पहले से बनाने की कोशिश की। इसमें बहुत समय लगता है और यह आसानी से टूट जाता है। ViBR बस वीडियो और वर्तमान स्क्रीन को रीयल-टाइम में देखता है।
- यह सस्ता और तेज़ है: इस पूरी प्रक्रिया में कंप्यूटर पावर का केवल कुछ सेंट ही खर्च होता है और इसमें कुछ ही मिनट लगते हैं।
परिणाम
शोधकर्ताओं ने वास्तविक दुनिया की बग रिपोर्टों पर ViBR का परीक्षण किया। इसने स्वचालित रूप से 72% बग्स को सफलतापूर्वक फिर से बनाया। यह पुराने तरीकों की तुलना में एक बहुत बड़ी छलांग है, जो किसी भी ऐसी चीज़ के साथ संघर्ष करती थी जो एक परफेक्ट मैच न हो।
संक्षेप में: ViBR एक अनुवादक की तरह है जो यूजर के बिखरे हुए वीडियो को आपके फोन के लिए निर्देशों के एक परफेक्ट सेट में बदल देता है, जो "यह मेरी स्क्रीन पर टूट गया" और "मैं इसे अपनी स्क्रीन पर टूटते हुए देख सकता हूँ" के बीच के अंतर को पाटता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।