गेराल्ड वेनबर्ग की क्लासिक किताब "The Psychology of Computer Programming" परीक्षण के बारे में अच्छा जुड़ी बातें है। एक मैं विशेष रूप से पसंद है अध्याय 4 में है" Programming as a Social Activity "" बिल "एक सह कार्यकर्ता अपने कोड की समीक्षा करने के लिए कहता है और वे सिर्फ तेरह बयान में सत्रह कीड़े मिल जाए । कोड समीक्षा अतिरिक्त आँखों प्रदान करने में मदद करने के लिए कीड़े मिल जाए, अधिक आंखों आप क्या तुमने कभी-तो-सूक्ष्म कीड़े पाने की है बेहतर मौका का उपयोग करें। जैसा लीनुस ने कहा, "यह देखते हुए पर्याप्त आंखों, सभी बग उथले हैं" अपने परीक्षण मूल रूप से रोबोट आँखें हैं जो दिन या रात के किसी भी घंटे आप जितनी बार चाहें उतनी बार देखेंगे और आपको पता चलेगा कि सबकुछ अभी भी है।
कितने परीक्षण पर्याप्त हैं इस पर निर्भर करता है कि आप खरोंच से या विकास को बनाए रखते हैं या नहीं मौजूदा तंत्र।
स्क्रैच से शुरू करते समय, आप अपना पूरा समय लिखने का परीक्षण नहीं करना चाहते हैं और डिलीवरी करने में नाकाम रहे हैं क्योंकि 10% सुविधाओं को आप कोड में सक्षम करने के लिए पूरी तरह से परीक्षण कर रहे हैं। करने के लिए प्राथमिकता की कुछ राशि होगी। एक उदाहरण निजी तरीके है। चूंकि निजी तरीकों का उपयोग कोड द्वारा किया जाना चाहिए जो कुछ रूप (सार्वजनिक/पैकेज/संरक्षित) में दिखाई देता है, निजी तरीकों को अधिक दृश्यमान तरीकों के परीक्षणों के तहत कवर किया जा सकता है। यह वह जगह है जहां निजी कोड में कुछ महत्वपूर्ण या अस्पष्ट व्यवहार या किनारे के मामले हैं, तो आपको कुछ श्वेत-बॉक्स परीक्षणों को शामिल करने की आवश्यकता है।
टेस्ट मदद करनी चाहिए आप 1) आवश्यकताओं को समझते हैं, 2) testability के लिए कोडिंग से अच्छे डिजाइन प्रथाओं का पालन करना, और 3) पता है जब पहले से मौजूद कोड काम करना बंद सुनिश्चित करें। यदि आप कुछ फीचर के लिए टेस्ट का वर्णन नहीं कर सकते हैं, तो मैं शर्त लगा सकता हूं कि आप इसे स्पष्ट रूप से कोड करने के लिए पर्याप्त सुविधा को समझ नहीं पाएंगे। यूनिट टेस्ट कोड का उपयोग करके आप तर्कों के रूप में गुजरने जैसी चीजों को करने के लिए मजबूर करते हैं जैसे क्लास डेटाबेस कनेक्शन या इंस्टेंस फैक्ट्रियों जैसी कक्षाएं, कक्षा को अपने आप से बहुत अधिक तरीके से करने और 'ईश्वर' वस्तु में बदलने की प्रलोभन देने के बजाय। अपने कोड को अपने कैनरी होने दें इसका मतलब है कि आप अधिक कोड लिखने के लिए स्वतंत्र हैं। जब पहले से गुजरने वाला परीक्षण विफल रहता है तो इसका अर्थ है दो चीजों में से एक, या तो कोड अब अपेक्षित नहीं करता है या सुविधा के लिए आवश्यकताओं को बदल दिया गया है और परीक्षण को नई आवश्यकताओं के अनुरूप बस अद्यतन करने की आवश्यकता है।
मौजूदा कोड के साथ काम करते समय, आपको यह दिखाने में सक्षम होना चाहिए कि सभी ज्ञात परिदृश्य शामिल हैं ताकि जब अगला परिवर्तन अनुरोध या बग फिक्स साथ आता है, तो आप जो भी मॉड्यूल देख सकते हैं उसे खोदने के लिए स्वतंत्र हो जाएगा चिंता की बात है, "अगर मैं कुछ तोड़ूं तो क्या होगा" जिससे छोटे फिक्स का परीक्षण करने में और अधिक समय व्यतीत होता है, फिर इसे वास्तव में कोड बदलना पड़ता है।
तो, हम आपको एक कठिन और तेज संख्या में परीक्षण नहीं दे सकते हैं, लेकिन आपको कवरेज के स्तर के लिए शूट करना चाहिए जो बदलाव करने या सुविधाओं को जोड़ने की आपकी क्षमता में आपका विश्वास बढ़ाता है, अन्यथा आप शायद पहुंच गए हैं कम रिटर्न का बिंदु।
स्रोत
2009-07-10 16:22:44
यदि आप पिछले काल में 'मैं परीक्षण करने के लिए प्रयुक्त होता था' लिखना चाहता था, या वर्तमान काल में 'मैं सबकुछ परीक्षण करता हूं' लिखना चाहता हूं। – ripper234
मेरी अंग्रेजी के लिए खेद है। मैं कहना चाहता था "मैं सबकुछ परीक्षण करता हूं ", लेकिन जैसा कि लार्स ए ब्रेककेन ने यहां भी कहा, प्राथमिकता देना बहुत महत्वपूर्ण है। – Jonathan