में परिभाषित सीमा मामलों पर ध्यान केंद्रित करके इनपुट स्ट्रिंग को सत्यापित करने के लिए रेगेक्स से नमूना डेटा जेनरेट करना एक दिए गए रेगेक्स के लिए नमूना डेटा कैसे उत्पन्न करें। कुछ में शामिल हैं:रेगेक्स
हालांकि, जबकि वे एक डाटासेट बीज के लिए पर्याप्त हो सकता, यह बहुत परीक्षण कोड, इस तरह के सत्यापन के रूप में है कि regex खुद पर निर्भर करता है मदद नहीं करता है ।
मान लें कि आपके पास कोड जनरेटर है जो एक संपत्ति के साथ मॉडल उत्पन्न करता है। उपयोगकर्ता संपत्ति को सत्यापित करने के लिए एक रेगेक्स निर्दिष्ट करता है। अब मान लें कि कोड जनरेटर यह सुनिश्चित करने के लिए परीक्षण उत्पन्न करने का प्रयास कर रहा है कि सत्यापन सफल हो और उचित रूप से विफल हो जाए। अनावश्यक डेटा उत्पन्न करने से बचने के लिए उपकरण को रेगेक्स के भीतर सीमा मामलों पर ध्यान केंद्रित करने के लिए उचित लगता है।
उदाहरण के लिए, पर विचार एक regex ^([a-z]{3,6})$
तो सीमा मामलों में शामिल हैं:
- किसी भी केवल [az] लंबाई 2 (विफलता) के बराबर
- किसी भी केवल से मिलकर स्ट्रिंग [az] से मिलकर स्ट्रिंग लंबाई 3 (सफलता) के बराबर
- किसी भी केवल [az] लंबाई 4 (सफलता) के बराबर से मिलकर स्ट्रिंग
- किसी भी केवल [az] लंबाई 5 (सफलता) के बराबर
- एक से मिलकर स्ट्रिंग ny केवल [az] लंबाई 6 (सफलता) के बराबर से मिलकर स्ट्रिंग
- किसी भी केवल [az] लंबाई 7 (विफलता) के बराबर
- किसी भी स्ट्रिंग [az] (विफलता) से मिलकर नहीं से मिलकर स्ट्रिंग
- किसी भी स्ट्रिंग [az] के साथ शुरू नहीं लेकिन [az] (विफलता)
- किसी भी स्ट्रिंग [az] के साथ शुरू लेकिन साथ समाप्त नहीं [az] (विफलता)
कारण सीमा पर ध्यान केंद्रित के साथ समाप्त होता मामलों में यह है कि 6 से अधिक लंबाई वाली केवल [az] वाली कोई स्ट्रिंग रेगेक्स में परिभाषित स्ट्रिंग लम्बाई की ऊपरी सीमा को सत्यापित करती है। तो लंबाई 7, 8, 9 की एक स्ट्रिंग का परीक्षण करना वास्तव में केवल उसी (सीमा) स्थिति का परीक्षण कर रहा है।
यह अपनी सादगी के लिए चुना गया एक मनमाना रेगेक्स था, लेकिन कोई उचित रेगेक्स इनपुट के रूप में कार्य कर सकता है।
क्या कोई ढांचा/उपकरण मौजूद है कि कोड जनरेटर उत्पन्न होने वाले सिस्टम की विभिन्न परतों के परीक्षण मामलों के लिए इनपुट स्ट्रिंग उत्पन्न करने के लिए उपयोग कर सकता है। परीक्षण के मामले में सिस्टम अब उत्पन्न नहीं होता है और बाद में विकास चक्र में संशोधित होता है।
इसका क्या मतलब है? क्या आप परीक्षण कर रहे हैं यदि आपका रेगेक्स lib सही तरीके से काम कर रहा है? या आप कुछ वैकल्पिक सत्यापन (रेगेक्स के बिना) लिख रहे हैं और मूल रेगेक्स एकमात्र कल्पना है जो मान्य है या नहीं? – Qtax
प्राथमिक उद्देश्य उन परीक्षणों को उत्पन्न करना है जो सत्यापन जेनरेटर उत्पन्न सत्यापन तर्क को सत्यापित करते हैं। तो जब कोड जेनरेटर का उपयोग नहीं किया जाता है और डेवलपर सत्यापन तर्क बदलता है, तो एक परीक्षण यह इंगित करने में असफल हो सकता है कि एक रिग्रेशन हो सकता है। परीक्षण यह नहीं मानते कि सत्यापन के लिए एक रेगेक्स का उपयोग किया जा रहा है। – bloudraak
रेगेक्स का उपयोग सिस्टम की विभिन्न परतों में भी किया जा सकता है, जैसे ब्राउज़र में अनियंत्रित जावास्क्रिप्ट, डेस्कटॉप एप्लिकेशन (डब्ल्यूपीएफ), पावरशेल सीएमडीलेट्स, एएसपी.नेट एमवीसी मॉडल और डब्ल्यूसीएफ सेवाएं। कोड जनरेटर परीक्षण को उत्पन्न करता है यह सत्यापित करता है कि प्रत्येक रिमोट सिस्टम को डेटा जमा करने से पहले सत्यापन करता है। – bloudraak