2010-01-05 7 views
7

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

  • लेखन परीक्षणों को दिलचस्प बनाने के लिए आप किस तकनीक का उपयोग करते हैं? उदाहरण के लिए, मैंने देखा एक टिप अर्थहीन, असंबंधित डेटा का उपयोग करने के बजाय परीक्षण स्थिरता डेटा के चारों ओर एक छोटी सी कहानी का आविष्कार करना था।
+12

आपको परीक्षण विफल होने पर हर बार पीना पड़ता है –

उत्तर

8

यदि आप पहले परीक्षण लिखते हैं, तो वे कोडिंग के लिए आपके विनिर्देश हैं।

सभी सोच जब परीक्षण लेखन किया जा सकता है। " यह करना चाहिए?" "मुझे कैसे पता चलेगा कि यह किया गया है?" "इसमें क्या इंटरफेस है जो मजाक करने की आवश्यकता होगी?"

आगे, यदि आप एक साधारण नामकरण सम्मेलन ("कंधे" का उपयोग करके) अपने परीक्षणों की संरचना करते हैं तो आप आसानी से यह निर्धारित कर सकते हैं कि क्या हो रहा है।

इस पर कुछ विचारों के लिए http://weblogs.asp.net/rosherove/archive/2005/04/03/TestNamingStandards.aspx देखें।

यदि आप अंतिम परीक्षण लिखते हैं, तो वे उबाऊ होते हैं, क्योंकि कोड कोड काम करता है।

1

आप ऊब जब परीक्षण लेखन कर रहे हैं, तो आप गलत चीजों का परीक्षण कर रहे। कुछ परीक्षण विफल होने पर मैं परीक्षण लिख रहा हूं, जब मुझे कुछ समझ में नहीं आया या जब कुछ नया आया। इस तरह, मेरे परीक्षण कभी व्यर्थ नहीं होते हैं या "100% कोड कवरेज" नीति का पालन नहीं करते हैं और मैं कभी ऊब नहीं जाता हूं।

3

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

यह न केवल अपने दिमाग उस पर चबाने के लिए भी अपने वर्ग और अधिक मजबूत बनाती हूँ के बाद से लोगों को अशक्त, बड़ी संख्या आदि आदि

0

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

तब मैं कोड मैं सीमा परीक्षण, नकारात्मक मामलों, गलत एपीआई उपयोग (जैसे लापता या कई आरंभीकरण कॉल) का उपयोग कर लिखा है तोड़ने की कोशिश ...

इसके अलावा, मैं परीक्षण अक्सर चलाने; अंत में "सभी परीक्षण पास हुए" संदेश मुझे अब तक जो लिखा गया है उसके बारे में सहज महसूस करता है ... और जब मैं पाया (और ठीक) एक बग मिला तो मैं भी खुश हूं।

कभी-कभी, मैं अपने परीक्षणों (जन्म तिथि, पसंदीदा खिलाड़ी संख्या, फोन नंबर ...) के लिए उपयोग किए जा रहे नामों और संख्याओं के साथ मजाक कर रहा हूं।

0

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

इस प्रकार, यह वास्तव में विकास का हिस्सा है। एक यूनिट टेस्ट बनाम लिखने से अलग क्या है जो आपको एक कोड लिख रहा है जिसे आपको अपना कोड लागू करने की आवश्यकता है?

, आप परीक्षण उबाऊ लेखन पाते हैं कि कह कह की तरह है "मैं उबाऊ लेखन मिल आई/ओ .. क्या मैं इसे और अधिक दिलचस्प बनाने के लिए क्या कर सकते हैं?" या "मुझे यूआई उबाऊ लिखना मिल रहा है .."

वैसे, वास्तव में किसी भी तरह का कोड लिखना उबाऊ हो सकता है, या रोचक हो सकता है ... लेकिन कोड के मुकाबले डेवलपर का यह एक और काम है :) मेरे दोस्त को मजबूर किया जा रहा है एक कंपनी के लिए कोड लिखने के लिए, हालांकि वह वास्तव में एक प्रोग्रामर नहीं है, और उसकी टिप्पणी है "मैं नहीं देखता कि आप इसे पूरे दिन कैसे कर सकते हैं !!!"

के बाद से आप एक डेवलपर हैं, मेरे लग रहा है कि आप कोड लिखने की तरह करते है, इसलिए वास्तविक समस्या यह है कि आप सही तरीके से TDD का पालन नहीं कर रहे हैं और परीक्षण अपने विकास का एक वास्तविक हिस्सा बना है। भले ही एक ढांचा यह आवश्यक बनाने का प्रयास कर सकता है, फिर भी वास्तव में प्रक्रिया का सही पालन करने के लिए वास्तव में आप पर निर्भर है (यानी पहले परीक्षण लिखें) और वास्तव में इसे अपने विकास के साथ एकीकृत करने के लिए।

फिर, यह वास्तव में समग्र विकास का एक महत्वहीन हिस्सा है, जैसे कि कोड, टिप्पणी, स्वरूपण में जांच - जिसमें से कुछ लोगों को "उबाऊ" मिल सकता है लेकिन आवश्यक हैं। यह हमें परेशान नहीं करता है क्योंकि यह केवल विकास का हिस्सा है और हमें विकास दिलचस्प लगता है।

2

मुझे चिंता है कि यह कोड गंध की तरह लगता है

उबाऊ परीक्षण, क्योंकि वे बहुत दोहराव कर रहे हैं?

ही बातें कई बार कवर परीक्षण कर रहे हैं? (यानी परीक्षण मामलों में सिर्फ एक बार ही बातों के बार-बार परीक्षण के बहुत सारे है, तो ... पर एक बात का परीक्षण नहीं है?)

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

ऐसा लगता है कुछ तो यह है कि प्रत्येक परीक्षा व्यक्त करता है बस क्या नया या कोड के बाकी हिस्सों से अलग है पुनर्संशोधित जा करने के लिए या कम से कम निकाला जरूरत है की तरह।

यदि बहुत सारे परीक्षण स्पष्ट या थकाऊ लगते हैं, तो आपके द्वारा उपयोग किए जा रहे अबास्ट्रक्शन से कुछ याद आ रही है।

मैं था परीक्षण है कि आपको लगता है के प्रकार में पैटर्न की तलाश में या थकाऊ और उबाऊ कर रहे हैं कुछ नहीं किया जा सकता है, तो शुरू - एक छोटे से परीक्षण ढांचा बनाने में मदद करने के लिए उन परीक्षण लिखना आसान बनाने की तरह

परीक्षा में, आपको केवल कुछ अनावश्यक परीक्षणों को हटाने और नामकरण को साफ करने की आवश्यकता हो सकती है - ताकि यह स्पष्ट हो कि आपको परीक्षण करने की आवश्यकता है और आप टेस्ट सूट में कहीं और परीक्षण करने पर भरोसा कर सकते हैं।

यह सब व्यापार-बंद के बारे में है। मुझे लगता है कि यह परीक्षण आप लिख रहे हैं के प्रकार फिर से आकलन करने और क्या विकल्प हो सकता है पर एक नज़र बनाना उचित है।

1

एक मामला है कि boringness कुल मिलाकर बुरा नहीं है किए जाने के लिए नहीं है। मैं इसे अपने परीक्षण कोड के लिए की तुलना में अपने नियमित रूप से कोड के संबंध में मजबूत है कहेंगे, लेकिन यह शायद, भी परीक्षण करने के लिए लागू होता है।

उत्साह तब आता है जब आप नहीं जानते कि आपका कोड क्या कर रहा है, जब आप इसे भरोसा नहीं करते हैं, जब भी आप इसे चलाते हैं - या इसे छोड़ दें - वह छोटा लड़का आपके कंधे पर बैठे "नहीं!" । जब आप डीबगर में बहुत समय बिताते हैं; जब आपके कोड बहुत जटिल है, उलझ और ऐंठा हुआ (एक अच्छा तरीका में) और डरावना।

बोरियत उत्तेजना के विपरीत हो सकता है, और उस प्रकाश में देखा, उबाऊ अच्छा है। दूसरे चरण के बाद एक पैर, अनुमानित कदम के बाद अनुमानित कदम, हम अच्छे सरल विश्वसनीय कामकाजी कोड लिखते हैं। लाल-हरे-refactor।

अच्छा सरल विश्वसनीय कामकाजी कोड ऐसा कुछ है जिसे मैं उत्साहित कर सकता हूं।

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

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