2009-02-28 17 views
22

xUnit-style एकीकरण परीक्षणों के बजाय फ़िट/फिटनेस का उपयोग करने का क्या मतलब है? यह मेरी राय में वास्तव में अजीब और बहुत अस्पष्ट वाक्यविन्यास है।क्यों फिट/फिटनेस?

क्या यह वास्तव में केवल उत्पाद मालिकों को परीक्षण लिखने के लिए है? वे नहीं करेंगे! यह उनके लिए बहुत जटिल है। तो किसी को फिट/फिटनेस क्यों होना चाहिए?

अद्यतन तो यह केवल व्यवसाय-नियम परीक्षणों के लिए बिल्कुल उपयुक्त है?

उत्तर

19

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

जेम्स शोर द्वारा Introduction To Fit और Fit Workflow देखें और यदि आप चाहें तो बाकी दस्तावेज़ों के लिंक का पालन करें।


अद्यतन: आप व्यापार नियमों से क्या मतलब है पर निर्भर करता है? ;-) कुछ लोग इसे बहुत ही कम समझेंगे (जैसे व्यापार नियम इंजन आदि), अन्य --- बहुत व्यापक रूप से।

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

कौन सा आवेदन करेगा, नहीं, कैसे महत्वपूर्ण है। यह कार्यात्मक कल्पना का एक रूप है। जैसे कि यह अपेक्षाकृत व्यापक है और वास्तव में मॉड्यूल द्वारा व्यवस्थित नहीं बल्कि उपयोग परिदृश्यों द्वारा किया जाता है।

उदाहरणों से बाहर आने वाले परीक्षण व्यावसायिक दृष्टिकोण से महत्वपूर्ण पहलुओं में आवेदन के बाहरी व्यवहार का परीक्षण करेंगे। हां, आप इसे व्यवसाय नियम कह सकते हैं। लेकिन थोड़ी मोड़ के साथ, डिजीगो जांसिक के क्रेडिट स्कोरिंग के उदाहरण को देखते हैं। क्या होगा यदि फिट दस्तावेज़ का हिस्सा 1) लिस्टिंग विशेषताएँ और उनके स्कोर और फिर 2) ग्राहक डेटा प्रदान करना और परिणामों की जांच करना, फिर वास्तविक व्यवसाय नियम कौन से हैं: स्कोरिंग तालिका (विशेषताओं और उनके स्कोर) या एप्लिकेशन क्लाइंट प्रत्येक क्लाइंट के लिए स्कोर कंप्यूटिंग (स्कोरिंग टेबल पर आधारित)? और कौन परीक्षण किया जाता है?

फ़िट/फिटनेस परीक्षण स्वीकृति परीक्षण के लिए अधिक उपयुक्त प्रतीत होता है। अन्य परीक्षण (जब आप ग्राहकों, उपयोगकर्ताओं, डोमेन विशेषज्ञों, आदि के साथ सहयोग की परवाह नहीं करते हैं, तो आप केवल परीक्षण स्वचालित करना चाहते हैं) शायद अधिक पारंपरिक तरीकों से लिखना और बनाए रखना आसान होगा। xUnit यूनिट परीक्षण और एपीआई परीक्षणों के लिए अच्छा है। प्रत्येक वेब ढांचे में वेब ऐप/सेवा परीक्षण के लिए कुछ टूल होना चाहिए जो इसके संशोधित-निर्माण-परीक्षण-तैनाती चक्र में एकीकृत है, उदाहरण के लिए। django अपने छोटे परीक्षण ग्राहक है। आपके पास से चुनने के लिए बहुत कुछ है।

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


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

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


मैं इस (बहुत ही बड़ी) अद्यतन लिख रहा था के रूप में, मैं article by Gojko Adzic देखा है। दिलचस्प है कि लोग फ़िट/फिटनेस में प्रोग्राम परीक्षण करने का प्रयास करते हैं जैसे कि यह प्रोग्रामिंग भाषा जहां IMVHO केवल उद्देश्य को हरा देता है।

4

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

कल्पना करें कि आपको यह तय करना है कि आयु, विवाहित/एकल, बच्चों की मात्रा, मजदूरी, गतिविधि, ... पर आधारित किसी ग्राहक को ऋण देना है या नहीं, तो आप इसे लिख नहीं सकते जानकारी; और एक जोखिम प्रबंधक एक xUnit परीक्षण नहीं लिख सकता है।

1

प्रतिगमन और बग परीक्षण में अनावश्यकता को कम करने में मदद करता है। परीक्षण मामलों के प्रबंधनीय भंडार का निर्माण करें। यह एक बार बनाने और हमेशा के लिए उपयोग की तरह है।

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