अपने स्वयं के कोड के परीक्षण में सुधार कैसे करें [बंद]


12

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

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

तो, अब मैं आप लोगों से पूछ रहा हूं: क्या आपके पास अपने कोड का परीक्षण करते समय कुछ निश्चित आधार हैं?


जवाबों:


17

कोड परिवर्तन करने से पहले परीक्षण लिखें।

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

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


यह वास्तव में अच्छी सलाह है, बगफिक्स को बाहर करने में थोड़ा अधिक समय लग सकता है, लेकिन यह निश्चित है कि मुझे इस तरह की गलतियों को फिर से करने का कारण नहीं बनेगा और यह मुझे अधिक स्थिर कोड लिखने की अनुमति देगा।
पीटर

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

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

यह इतनी शानदार सलाह है, बहुत बहुत धन्यवाद!
शहीद

@ एलएलबी या अल्पावधि में भी।

3

किनारे के मामलों का परीक्षण करने के लिए मत भूलना! कीड़े बहुत हैं क्योंकि सबसे आम कार्रवाई का परीक्षण किया गया था लेकिन कम आम लोगों का नहीं।


Imho असली मणि इन बढ़त मामलों को खोजने में है। मैं अक्सर ऐसे कीड़े से हैरान हूं जो एक प्रणाली से निकलते हैं, सिर्फ इसलिए कि हम एक विशेष परिदृश्य के बारे में नहीं सोचते थे।
पीटर

2

तकनीकी रूप से उन्मुख उत्तरों में तकनीकी सलाह का पालन करें; यह अच्छी बात है। मेरा जवाब दृष्टिकोण के बारे में अधिक है।

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

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

तो अपने आप को हरा मत करो। हम सब कर चुके हैं। मैं शायद खुद को प्रति सप्ताह आधा दिन मूर्खतापूर्ण गलतियों में खर्च करता हूं, और मैं लंबे समय से यह (खांसी) कर रहा हूं। यह वही है जो कोड लिखना पसंद करता है - आप लगातार अपनी खुद की अपर्याप्तता के खिलाफ लग रहे हैं। जो एक पेशेवर को पेशेवर बनाता है, वह कभी भी गलतियाँ नहीं करता है (जिसमें कभी-कभी बड़े लोग भी शामिल होते हैं), लेकिन वे अपनी गलतियों को कैसे समझते हैं।

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


मैं समझता हूँ कि आप सार्वजनिक शर्मसार के बारे में क्या कहते हैं, लेकिन एक ही समय यह निराशा होती अवरुद्ध होने की वजह से निर्माण क्योंकि जो Bloggs में जाँच से पहले सभी प्लेटफार्मों का निर्माण नहीं किया टूट गया है पर।
tenpn

@tenpn - पूरी तरह से। लेकिन जो मैं कह रहा हूं उसका फ़्लिपसाइड जो ब्लॉग्स के बारे में भी सच है। वह भी उसका कोड नहीं है। सहकर्मियों के रूप में, हमें अपनी आँखों में जो को एक बेवकूफ में बदलने के लिए आवेग का विरोध करना होगा क्योंकि उसने एक गलती की जो हम में से किसी ने भी की हो सकती है।
दान रे

@tenpn वास्तव में, आप ट्रंक / मास्टर में परिवर्तनों को शुरू करने से पहले निर्माण का परीक्षण स्वचालित रूप से नहीं करने के लिए सिस्टम को भी दोष दे सकते हैं।
डेविड

2
@tenpn - न तो अपने सहकर्मियों पर हमला कर रहा है।
डेन रे

1
क्या होगा अगर परिवर्तन बिल्ड नहीं तोड़ता है? चेक करने से पहले अपने कोड का निर्माण करना सामान्य ज्ञान है। हर तरह से अपने कोड का परीक्षण करना इतना स्पष्ट नहीं है। वहाँ हमेशा कुछ परिदृश्य आप के बावजूद नहीं हो सकता है। बस आज मैं एक चल बिन्दु गोलाई त्रुटि जो होता है केवल यदि आप सही (गलत) हैं तो आप संख्या में भाग
पीटर

2

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


0

एक आइडिया मैंने समय-समय पर इस्तेमाल किया है,

एक शाखा बनाएं और अपना कोड तोड़ें, परीक्षण चलाएं और सुनिश्चित करें कि परीक्षण त्रुटि पकड़ता है।


0

क्या आपके पास अपने कोड का परीक्षण करते समय कुछ ग्राउंड्यूल हैं?

  • हमेशा यूनिट अपने कोड का परीक्षण करें, और यथासंभव उच्च कवरेज तक पहुंचने का प्रयास करें।

कुछ अतिरिक्त सामान्य बिंदु:

  • कोड शुरू करने से पहले डिजाइन और प्लानिंग में कुछ समय का निवेश करें
  • अपने कोड को रिफलेक्टर करें!
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.