unit testing - एक परीक्षण साज़न से आपको क्या आवश्यकता है?




unit-testing testng (7)

आपने जो कहा था, उसे जोड़ने के लिए:

  • विधि / कार्य / वर्ग का नाम
  • अपवाद के साथ कवरेज गणना टूल (इन विधियों की गणना मत करो)
  • एन के परिणाम उपलब्ध उपलब्ध रन
  • जनादेश कि परीक्षण परिणामों को आसानी से पार्स करने के तरीके मौजूद होना चाहिए

मैं टेस्ट एथिंग प्रोटोकॉल (टीएपी) IETF समूह में शामिल लोगों में से एक हूं (यदि दिलचस्पी है, मेलिंग सूची में शामिल होने के लिए स्वतंत्र महसूस करें)। कई प्रोग्रामिंग भाषाएं अपने प्राथमिक परीक्षण प्रोटोकॉल के रूप में टीएपी को अपनाना शुरू कर रही हैं और वर्तमान में हम जो पेश करते हैं उसके मुकाबले इसे और अधिक चाहते हैं। परिणामस्वरूप, हम उन लोगों से फीडबैक प्राप्त करना चाहते हैं जिनके पास xUnit, TestNG या किसी भी अन्य परीक्षण फ्रेमवर्क / पद्धति में पृष्ठभूमि है

असल में, एक साधारण पास / असफल से, एक परीक्षा के दोहन से आपको क्या जानकारी की आवश्यकता है? आपको कुछ उदाहरण देने के लिए:

  • फ़ाइल नाम और पंक्ति संख्या (यदि लागू हो)
  • प्रारंभ और समाप्ति समय
  • नैदानिक ​​उत्पादन जैसे कि आपके पास क्या है और आप क्या उम्मीद करते थे

और इसी तरह ...


टैगों का एक मनमाने ढंग से सेट - इसलिए मैं एक परीक्षण के रूप में चिह्नित कर सकता हूं, उदाहरण के लिए "एकीकरण, UI, व्यवस्थापक"

(आपको पता था कि मैं आपसे यह पूछने वाला था कि तुम नहीं :-)


प्रत्येक व्यक्तिगत आइटम के लिए आपकी सूची से निश्चित रूप से सभी चीजें:

  • फ़ाइल का नाम
  • रेखा संख्या
  • नामस्थान / वर्ग / फ़ंक्शन का नाम
  • टेस्ट कवरेज
  • प्रारंभ समय और समाप्ति समय
  • और / या कुल समय (यह मेरे लिए शीर्ष दो वस्तुओं की तुलना में अधिक उपयोगी होगा)
  • नैदानिक ​​उत्पादन जैसे कि आपके पास क्या है और आप क्या उम्मीद करते थे

मेरे सिर के ऊपर से ज्यादा नहीं, लेकिन परीक्षणों के समूह के लिए मैं जानना चाहता हूं

  • समूह का नाम
  • कुल निष्पादन समय

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


मैं साधारण C ++ परीक्षण विधियों के सेट के लिए आउटपुट प्रोटोकॉल के रूप में टेप का उपयोग करता हूं, और निम्न कमियों को देखा है:

  • परीक्षण चरणों को समूह में नहीं रखा जा सकता (केवल कई टेस्ट लिपियों में समूह है, लेकिन हमारे सॉफ्टवेयर में सभी परीक्षण चलाने के लिए, मुझे समूह के कम से कम एक स्तर की आवश्यकता है, ताकि एक भी परीक्षण चरण की पहचान "डीबी कनेक्शन" से की जा सके। "->" पुनः कनेक्शन परीक्षण "->" परीक्षण चरण # 3 ")
  • अपेक्षित और वास्तविक आउटपुट के बीच मतभेद देखने में उपयोगी है; मैं या तो diff को stderr (टिप्पणी के रूप में) के लिए प्रिंट या वास्तव में एक ग्राफिकल diff उपकरण का शुभारंभ
  • प्रोटोकॉल और उपकरण वास्तव में भाषा-स्वतंत्र होना चाहिए उदाहरण के लिए, अभी तक मैं केवल परीक्षण चलाने के लिए पर्ल "साबित करना" उपकरण का ही जानता हूं, जो पर्ल स्क्रिप्टों को चलाने के लिए सीमित है

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


किसी व्यक्तिगत परीक्षा की पहचान करने में सक्षम होने के लिए एक अद्वितीय आईडी (यूयूआईडी, एमडी 5 एसयूएम) - एक डेटाबेस में परीक्षण के परिणाम डालने या बग ट्रैकर में उन्हें पहचानने के लिए उपयोग करने के लिए कहें, यह एक व्यक्तिगत परीक्षण फिर से चलाए जाने के लिए QA के लिए संभव है।

यह एक उत्पाद के एक से अधिक संशोधन के पूरे जीवनचक्र के माध्यम से बिल्ड-टू-बिल्ड से एक व्यक्तिगत परीक्षण के व्यवहार का पता लगाने के लिए भी संभव होगा। इससे अंततः 'ऐतिहासिक' घटनाओं (नया किराया, उत्पाद रिलीज, हार्डवेयर उन्नयन) और ऐसी घटनाओं के परिणामस्वरूप विफल होने वाले परीक्षणों के प्रोफ़ाइल (बड़े) के बीच बड़े पैमाने पर सहसंबंध की अनुमति हो सकती है।

मैं यह भी सोच रहा हूं कि टेप एक समर्पित साइड-चैनल के माध्यम से उत्सर्जित किया जाना चाहिए, बजाय stdout के साथ मिश्रित। मुझे यकीन नहीं है कि यह प्रोटोकॉल परिभाषा के दायरे के अंतर्गत है I


टैप के विस्तार का विचार:

1..4
ok 1 - yay
not ok 2 - boo
ok 3 - yay #json:{...}
ok 4 - see my json

# जेसन टिप्पणी संलग्न करने की क्षमता ... - मौजूदा कोड द्वारा सुरक्षित रूप से नजरअंदाज किया जा सकता है - अच्छी तरह से परिभाषित टैग testanything.org पर आसानी से आरक्षित किए जा सकते हैं - जटिल प्रकार का निर्माण, विश्लेषण और पार्स करने में आसान - यमला एक दर्द है





tap