2010-11-30 14 views
6

मैं विरासत अनुप्रयोग के आउटपुट के लिए एक पार्सर लिख रहा हूं, और चूंकि फ़ाइल सिंटैक्स पर कोई चश्मा नहीं है, इसलिए मुझे इन फ़ाइलों के जितने नमूने मिल सकते हैं।क्या मुझे इकाई परीक्षणों के लिए वास्तविक या नमूना डेटा का उपयोग करना चाहिए?

अब मैं पार्सर को लागू करने (यह करने के लिए कोई अन्य समझदार तरीका है क्योंकि वहाँ) से पहले इकाई परीक्षण लिख रहा हूँ, लेकिन मुझे यकीन है कि क्या मैं ऐसा करना चाहिए नहीं कर रहा हूँ:

  • द्वारा उत्पादित वास्तविक फ़ाइलों का उपयोग आवेदन, उनसे पढ़ना और उत्पादन के साथ आउटपुट की तुलना करना जो मैं किसी अन्य फ़ाइल में जेसन प्रारूप में संग्रहीत करता हूं।
  • या टोकन और संभावनाओं के साथ एक नमूना स्ट्रिंग बनाएं जो मैं परीक्षण करना चाहता हूं और अनुमानित आउटपुट के साथ एक निर्देश (यह पायथन है)।

मैं दूसरे विकल्प का उपयोग करने के इच्छुक हूं क्योंकि मैं वास्तविक फाइलों पर शामिल सभी "असली दुनिया" डेटा के बिना केवल वही परीक्षण करता हूं, लेकिन मुझे डर है कि मैं परीक्षण करना भूल सकता हूं एक संभावना या किसी अन्य के लिए।

आपको क्या लगता है?

उत्तर

7

मेरा सुझाव दोनों करना है। एकीकरण परीक्षण का एक सेट लिखें जो अपेक्षित आउटपुट के साथ आपके पास मौजूद सभी फ़ाइलों के माध्यम से चलाया जाता है, फिर आपके अपेक्षित इनपुट के साथ इकाई परीक्षण पार्सिंग तर्क को अलग करने के लिए।

मैं पहले एकीकरण परीक्षण लिखने की सिफारिश करता हूं ताकि आप अपने पार्सर को बाहर लिख सकें, असफल परीक्षणों का एक समूह देखने के लिए यह अपमानजनक हो सकता है, लेकिन इससे पहले आप अपने किनारे के मामलों को अलग कर सकते हैं।

बीटीडब्ल्यू, मुझे लगता है कि यह एक अच्छा सवाल है। मैं हाल ही में ऐसी ही समस्या में आया था जो बड़े एक्सएमएल फ़ीड को एक अपस्ट्रीम सिस्टम से मालिकाना प्रारूप में बदल रहा था। मेरा समाधान रिकॉर्ड फीड और अन्य उच्च स्तरीय सफलता मीट्रिक जैसे पूर्ण फीड परीक्षण परीक्षणों के लिए एकीकरण ब्लैक बॉक्स परीक्षणों का एक सेट लिखना था, फिर भी जब तक मैं डेटा के सभी क्रमिक परीक्षणों का परीक्षण करने में सक्षम नहीं था तब तक छोटे और छोटे हिस्सों में इनपुट को तोड़ देता था। यह तब ही था जब मुझे पार्सर बनाने का तरीका समझ गया था।

0

परीक्षण को ढंकना न भूलें कि आप अतिरिक्त संभावनाएं (यानी, रिग्रेशन टेस्ट) जोड़ सकते हैं क्योंकि वे ज्ञात हो जाते हैं।

0

आपके द्वारा प्रदान किए जाने वाले दूसरे समाधान का उपयोग करने से आपको उम्मीद की जा सकती है कि क्या अपेक्षित है और क्या लौटाया गया है, जो यूनिट परीक्षण के लिए आदर्श है। स्वचालित परीक्षणों को बनाते समय, जितनी बार संभव हो सके मैन्युअल इंटरैक्शन से बचने के लिए सबसे अच्छा है - परिणामों को दृष्टि से स्कैन करना उन अभ्यासों में से एक है जिन्हें आप संभवतः टालना चाहिए (मान लीजिए कि आप "तुलना" से क्या मतलब रखते हैं)।

+0

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

2

आपको परीक्षण परिदृश्यों में उत्पादन डेटा का उपयोग करके सावधान रहना चाहिए। उदाहरण के लिए, यदि आपके सभी उपयोगकर्ताओं को परीक्षण वातावरण से ईमेल प्राप्त हुआ तो यह एक आपदा हो सकती है। डेवलपर्स के लिए प्रोड डेटा तक पहुंचने के लिए कुछ परिदृश्यों में यह शायद अनैतिक भी है, भले ही उपयोगकर्ताओं को यह जानने का कोई तरीका न हो। चिकित्सा, बैंक, कॉलेज ग्रेड प्रकार परिदृश्य सोचो।

मेरा उत्तर है कि आपको डेटा का उपयोग करना चाहिए जो प्रोड डेटा के नजदीक है। यदि आप वास्तविक प्रोड डेटा का उपयोग करना चाहते हैं, तो आपको उपर्युक्त परिदृश्यों के लिए इसे साफ़ करना होगा।

0

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

विकल्प, परीक्षण इनपुट के लिए फ्लाई पर उत्पादन डेटा प्राप्त करना, समस्याओं से भरा हुआ है। डेटा में परिवर्तन एक बार पास होने का परीक्षण कर सकते हैं, लेकिन अगली विफल हो क्योंकि इनपुट बदल गए हैं।

+0

मुझे लगता है कि उन किनारे के मामलों-कभी-कभी पास होते हैं, कभी-कभी असफल होते हैं-वास्तविक डेटा पर परीक्षण करने के लिए वास्तव में अनुकूल हैं। उन बग को खोजने के लिए रिलीज होने तक प्रतीक्षा न करें। – Zak

संबंधित मुद्दे

 संबंधित मुद्दे