PICKLES: a Natural Language Framework for Requirement Specification and Model-Based Testing
यह शोधपत्र PICKLES को प्रस्तुत करता है, जो एक प्राकृतिक भाषा ढांचा (natural language framework) है जो मानव-पठनीय परिदृश्यों (scenarios) को औपचारिक मॉडलों में अनुवादित करके बिहेवियर-ड्रिवन डेवलपमेंट (BDD) और मॉडल-आधारित टेस्टिंग के बीच सेतु बनाता है ताकि मानक BDD की तुलना में काफी उच्च कवरेज के साथ स्वचालित परीक्षण जनरेशन सक्षम किया जा सके।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक रोबोट को कार चलाना सिखाने की कोशिश कर रहे हैं। आपके पास इसे करने के दो मुख्य तरीके हैं:
"सख्त इंजीनियर" का तरीका (मॉडल-आधारित परीक्षण/Model-Based Testing): आप हर सड़क, मौसम की स्थिति और ट्रैफिक लाइट का एक जटिल गणितीय ब्लूप्रिंट लिखते हैं। यह अविश्वसनीय रूप से सटीक है और हर परिदृश्य को कवर करता है, लेकिन इसे केवल एक गणितज्ञ ही पढ़ सकता है। यदि आप बॉस को दिखाना चाहते हैं कि रोबोट क्या करेगा, तो आपको उस गणित को वापस अंग्रेजी में अनुवाद करना पड़ता है, जो कठिन है और जिसमें गलतियों की संभावना रहती है।
"कहानीकार" का तरीका (व्यवहार-संचालित विकास/Behavior-Driven Development): आप एक कहानी लिखते हैं: "दिया गया है कि कार सड़क पर है, जब लाइट लाल होती है, तब कार रुक जाती है।" इसे हर कोई समझ सकता है। यह लिखना और पढ़ना आसान है, लेकिन यह केवल एक विशिष्ट दिन के लिए लिखी गई रेसिपी की तरह है। यदि आप हर संभावित ट्रैफिक लाइट की टाइमिंग का परीक्षण करना चाहते हैं, तो आपको हजारों अलग-अलग कहानियाँ लिखनी होंगी, जो कागजों का एक अस्त-व्यस्त और अव्यवसनीय ढेर बन जाएगा।
समस्या:
वास्तविक दुनिया में, कंपनियों को "सख्त इंजीनियर" की सटीकता चाहिए लेकिन "कहानीकार" की पठनीयता भी चाहिए। आमतौर पर, उन्हें दोनों में से एक को चुनना पड़ता है। यदि वे कहानी चुनते हैं, तो वे छिपे हुए बग्स (bugs) को मिस कर देते हैं। यदि वे गणित चुनते हैं, तो कोई भी परीक्षण को समझ नहीं पाता।
समाधान: PICKLES
इस शोध पत्र के लेखकों ने एक नया फ्रेमवर्क बनाया है जिसे PICKLES (Precise Input and Control-flow Keyword-based Language for tEst Scenarios) कहा जाता है। PICKLES को एक "यूनिवर्सल ट्रांसलेटर" के रूप में समझें जो कहानियों और गणित के बीच के अंतर को पाटता है।
यह इस प्रकार काम करता है, एक सरल उपमा (analogy) का उपयोग करते हुए:
1. "स्मार्ट रेसिपी" (भाषा)
एक विशिष्ट कार के बारे में कहानी लिखने के बजाय कि वह एक विशिष्ट लाल बत्ती पर रुकती है, PICKLES आपको एक "स्मार्ट रेसिपी" लिखने देता है।
- पुराना तरीका: "कार मेन स्ट्रीट पर लाल बत्ती पर रुकती है।" (बहुत विशिष्ट)।
- PICKLES का तरीका: "कार किसी भी लाल बत्ती पर रुकती है, बशर्ते कि लाइट लाल हो और कार चल रही हो।"
- जादू: आप नियम परिभाषित कर सकते हैं जैसे "लाइट लाल से हरी तक कोई भी रंग की हो सकती है" या "कार की गति 0 से 100 के बीच कुछ भी हो सकती है।" इसे पैरामीट्राइजेशन (parametrization) कहा जाता है। यह एक एकल कहानी को एक नियम में बदल देता है जो एक साथ हजारों संभावनाओं को कवर करता है।
2. "स्वचालित वास्तुकार" (अनुवाद)
एक बार जब आप इन "स्मार्ट रेसिपीज़" को सरल अंग्रेजी में लिख लेते हैं (एक प्रारूप का उपयोग करके जो लोकप्रिय 'घर्किन' (Gherkin) भाषा के समान है), तो PICKLES टूल एक "स्वचालित वास्तुकार" (Automatic Architect) के रूप में कार्य करता है।
- यह आपके अंग्रेजी नियमों को पढ़ता है।
- यह पर्दे के पीछे तुरंत एक औपचारिक मॉडल (Formal Model) (एक जटिल गणितीय मानचित्र) बनाता है।
- यह मानचित्र इतना विस्तृत है कि यह जानता है कि सिस्टम द्वारा लिए जाने वाले हर संभावित पथ (path) क्या हैं, यहाँ तक कि उन पथों को भी जो आपने स्पष्ट रूप से नहीं लिखे हैं।
3. "मास्टर मैप" (कहानियों को जोड़ना)
पारंपरिक परीक्षण में, आप कहानी A, फिर कहानी B, फिर कहानी C का अलग-अलग परीक्षण करते हैं।
- दोष: कहानी A काम कर सकती है, और कहानी B भी काम कर सकती है, लेकिन यदि आप A के बाद B करते हैं, तो सिस्टम क्रैश हो सकता है। पारंपरिक कहानियाँ अक्सर इन "हैंडशेक" त्रुटियों को मिस कर देती हैं।
- PICKLES का समाधान: यह टूल आपकी सभी अलग-अलग कहानियों को लेता है और उन्हें एक विशाल "मास्टर मैप" में सिल देता है। यह पता लगाता है कि कहानी A, कहानी B से कैसे जुड़ती है, और कहानी B, कहानी C से कैसे जुड़ती है। यह एक पूर्ण चित्र बनाता है कि सिस्टम समय के साथ कैसे व्यवहार करता है, न कि केवल अलग-अलग क्षणों में।
4. "बैक-ट्रांसलेशन" (पठनीय परिणाम)
यह सबसे चतुर हिस्सा है। टूल मास्टर मैप का उपयोग करके स्वचालित रूप से सैकड़ों विशिष्ट परीक्षण मामले (test cases) उत्पन्न करता है।
- आमतौर पर, ये परीक्षण भ्रमित करने वाले गणितीय कोड के रूप में बाहर आएंगे।
- PICKLES उन गणितीय परिणामों को लेता है और उन्हें वापस अंग्रेजी कहानियों में अनुवादित कर देता है।
- इसलिए, टेस्टर को एक रिपोर्ट मिलती है जो कहती है: "यहाँ एक विशिष्ट परीक्षण है जहाँ कार 50mph की गति से जा रही थी और 2.5 सेकंड में लाइट लाल हो गई। कार सही ढंग से रुकी।"
- इंसान इसे पढ़ सकता है, समझ सकता है और सत्यापित कर सकता है, भले ही भारी काम गणितीय इंजन द्वारा किया गया हो।
वास्तविक दुनिया का परीक्षण (ट्रैफिक सिस्टम)
लेखकों ने इसका परीक्षण Technolution नामक कंपनी द्वारा उपयोग किए जाने वाले एक वास्तविक ट्रैफिक प्रबंधन सिस्टम पर किया।
- सेटअप: उन्होंने टूटे हुए डिटेक्टर्स का पता लगाने वाले सेंसरों के बारे में मौजूदा कहानियों को लिया।
- परिणाम:
- पुराने "कहानीकार" तरीके (एक-एक करके कहानियाँ चलाने) का उपयोग करते हुए, उन्होंने सिस्टम के व्यवहार के केवल 30% का परीक्षण किया।
- PICKLES (कहानियों को मिलाने और गणित इंजन का उपयोग करने) का उपयोग करके, उन्होंने सिस्टम के तर्क (logic) का 100% कवरेज प्राप्त किया।
- उन्होंने ऐसा सैकड़ों नई कहानियाँ लिखे बिना किया। उन्होंने बस मूल कहानियों को "स्मार्ट" बनाया (जैसे "कोई भी लेन" या "कोई भी स्थिति" जैसे वेरिएबल्स जोड़कर) और बाकी काम टूल पर छोड़ दिया।
यह क्यों महत्वपूर्ण है
PICKLES गैर-तकनीकी लोगों (जैसे प्रोजेक्ट मैनेजर या बिजनेस एनालिस्ट) को ऐसी आवश्यकताएं लिखने की अनुमति देता है जो सरल अंग्रेजी में हों लेकिन स्पष्ट (unambiguous) और गणितीय रूप से कठोर (mathematically rigorous) हों। यह सुनिश्चित करता है कि:
- कोई भ्रमित नहीं होगा: आवश्यकताएं सभी के लिए स्पष्ट हैं।
- कोई बग छिपा नहीं रहेगा: गणितीय इंजन उन 'एज केसेस' (edge cases) को ढूंढ निकालता है जिन्हें इंसान मिस कर सकते हैं।
- कम काम: आप अधिक परिदृश्यों का परीक्षण करने के लिए कम कहानियाँ लिखते हैं।
संक्षेप में, PICKLES एक रोबोट को एक ऐसी कहानी की किताब देने जैसा है जो स्मार्ट है, जो कहानी के हर संभावित बदलाव को समझने, उसके भीतर की गणितीय समस्याओं को हल करने और फिर आपको सरल अंग्रेजी में एक स्पष्ट रिपोर्ट लिखने में सक्षम है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।